Pokered Save Editor 2
Pokemon Red & Blue save file editor - Qt 6 C++/QML
Loading...
Searching...
No Matches
bridge.h
Go to the documentation of this file.
1/*
2 * Copyright 2020 Twilight
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15*/
16#pragma once
17#include <QObject>
18
19#include "./settings.h"
20#include "./router.h"
21
22#include <pse-common/utility.h>
23
25
27#include "../mvc/creditsmodel.h"
30#include "../mvc/pokedexmodel.h"
40#include "../mvc/typesmodel.h"
46
47#include <pse-db/fontsdb.h>
49#include <pse-db/names.h>
54
70class Bridge : public QObject
71{
72 Q_OBJECT
73
74 Q_PROPERTY(FileManagement* file MEMBER file NOTIFY fileChanged)
75 Q_PROPERTY(RecentFilesModel* recentFilesModel MEMBER recentFilesModel NOTIFY recentFilesModelChanged)
76 Q_PROPERTY(PokedexModel* pokedexModel MEMBER pokedexModel NOTIFY pokedexModelChanged)
77 Q_PROPERTY(Router* router MEMBER router NOTIFY routerChanged)
78 Q_PROPERTY(CreditsModel* creditsModel MEMBER creditsModel NOTIFY creditsModelChanged)
79 Q_PROPERTY(PokemonStartersModel* starterModel MEMBER starterModel NOTIFY starterModelChanged)
80 Q_PROPERTY(ItemSelectModel* itemSelectModel MEMBER itemSelectModel NOTIFY itemSelectModelChanged)
81 Q_PROPERTY(ItemStorageModel* bagItemsModel MEMBER bagItemsModel NOTIFY bagItemsModelChanged)
82 Q_PROPERTY(ItemStorageModel* pcItemsModel MEMBER pcItemsModel NOTIFY pcItemsModelChanged)
83 Q_PROPERTY(ItemOverviewModel* itemOverviewModel MEMBER itemOverviewModel NOTIFY itemOverviewModelChanged)
84 Q_PROPERTY(PokemonOverviewModel* pokemonOverviewModel MEMBER pokemonOverviewModel NOTIFY pokemonOverviewModelChanged)
85 Q_PROPERTY(FontSearch* fontSearch MEMBER fontSearch NOTIFY fontSearchChanged)
86 Q_PROPERTY(FontSearchModel* fontSearchModel MEMBER fontSearchModel NOTIFY fontSearchModelChanged)
87 Q_PROPERTY(FontsDB* fonts MEMBER fonts NOTIFY fontsChanged)
88 Q_PROPERTY(NamesPlayer* randomPlayerName MEMBER randomPlayerName NOTIFY randomPlayerNameChanged)
89 Q_PROPERTY(NamesPokemon* randomPokemonName MEMBER randomPokemonName NOTIFY randomPokemonNameChanged)
90 Q_PROPERTY(Utility* util MEMBER util NOTIFY utilChanged)
91 Q_PROPERTY(ExamplesPlayer* randomExamplePlayer MEMBER randomExamplePlayer NOTIFY randomExamplePlayerChanged)
92 Q_PROPERTY(ExamplesPokemon* randomExamplePokemon MEMBER randomExamplePokemon NOTIFY randomExamplePokemonChanged)
93 Q_PROPERTY(ExamplesRival* randomExampleRival MEMBER randomExampleRival NOTIFY randomExampleRivalChanged)
94 Q_PROPERTY(Settings* settings MEMBER settings NOTIFY settingsChanged)
95 Q_PROPERTY(ItemMarketModel* marketModel MEMBER marketModel NOTIFY marketModelChanged)
96 Q_PROPERTY(ItemMarketCartModel* marketCartModel MEMBER marketCartModel NOTIFY marketCartModelChanged)
97 Q_PROPERTY(ItemMarketViewModel* marketViewModel MEMBER marketViewModel NOTIFY marketViewModelChanged)
98 Q_PROPERTY(PokemonStorageModel* pokemonStorageModel1 MEMBER pokemonStorageModel1 NOTIFY pokemonStorageModel1Changed)
99 Q_PROPERTY(PokemonStorageModel* pokemonStorageModel2 MEMBER pokemonStorageModel2 NOTIFY pokemonStorageModel2Changed)
100 Q_PROPERTY(PokemonBoxSelectModel* pokemonBoxSelectModel1 MEMBER pokemonBoxSelectModel1 NOTIFY pokemonBoxSelectModel1Changed)
101 Q_PROPERTY(PokemonBoxSelectModel* pokemonBoxSelectModel2 MEMBER pokemonBoxSelectModel2 NOTIFY pokemonBoxSelectModel2Changed)
102 Q_PROPERTY(TypesModel* typesModel MEMBER typesModel NOTIFY typesModelChanged)
103 Q_PROPERTY(SpeciesSelectModel* speciesSelectModel MEMBER speciesSelectModel NOTIFY speciesSelectModelChanged)
104 Q_PROPERTY(StatusSelectModel* statusSelectModel MEMBER statusSelectModel NOTIFY statusSelectModelChanged)
105 Q_PROPERTY(NatureSelectModel* natureSelectModel MEMBER natureSelectModel NOTIFY natureSelectModelChanged)
106 Q_PROPERTY(MoveSelectModel* moveSelectModel MEMBER moveSelectModel NOTIFY moveSelectModelChanged)
107 Q_PROPERTY(MapSelectModel* mapSelectModel MEMBER mapSelectModel NOTIFY mapSelectModelChanged)
108
109signals:
110 void fileChanged();
111 void recentFilesModelChanged();
112 void pokedexModelChanged();
113 void routerChanged();
114 void creditsModelChanged();
115 void fontSearchChanged();
116 void fontSearchModelChanged();
117 void fontsChanged();
118 void randomPlayerNameChanged();
119 void randomPokemonNameChanged();
120 void utilChanged();
121 void randomExamplePlayerChanged();
122 void randomExamplePokemonChanged();
123 void randomExampleRivalChanged();
124 void settingsChanged();
125 void starterModelChanged();
126 void itemSelectModelChanged();
127 void bagItemsModelChanged();
128 void pcItemsModelChanged();
129 void itemOverviewModelChanged();
130 void pokemonOverviewModelChanged();
131 void marketModelChanged();
132 void marketCartModelChanged();
133 void marketViewModelChanged();
134 void pokemonStorageModel1Changed();
135 void pokemonStorageModel2Changed();
136 void pokemonBoxSelectModel1Changed();
137 void pokemonBoxSelectModel2Changed();
138 void typesModelChanged();
139 void speciesSelectModelChanged();
140 void statusSelectModelChanged();
141 void natureSelectModelChanged();
142 void moveSelectModelChanged();
143 void mapSelectModelChanged();
144
145public:
148
149 FileManagement* file = nullptr;
150
153
163
186};
ExamplesRival * randomExampleRival
Definition bridge.h:161
PokemonStorageModel * pokemonStorageModel2
Definition bridge.h:174
ExamplesPlayer * randomExamplePlayer
Definition bridge.h:159
ExamplesPokemon * randomExamplePokemon
Definition bridge.h:160
ItemMarketModel * marketModel
Definition bridge.h:170
ItemStorageModel * bagItemsModel
Definition bridge.h:166
FontSearchModel * fontSearchModel
Definition bridge.h:152
ItemOverviewModel * itemOverviewModel
Definition bridge.h:168
ItemMarketViewModel * marketViewModel
Definition bridge.h:172
ItemMarketCartModel * marketCartModel
Definition bridge.h:171
FileManagement * file
Definition bridge.h:149
PokemonStorageModel * pokemonStorageModel1
Definition bridge.h:173
PokemonOverviewModel * pokemonOverviewModel
Definition bridge.h:169
FontsDB * fonts
Definition bridge.h:155
TypesModel * typesModel
Definition bridge.h:180
Router * router
Definition bridge.h:154
MoveSelectModel * moveSelectModel
Definition bridge.h:184
Bridge(FileManagement *file)
Definition bridge.cpp:33
NatureSelectModel * natureSelectModel
Definition bridge.h:183
NamesPlayer * randomPlayerName
Definition bridge.h:156
SpeciesSelectModel * speciesSelectModel
Definition bridge.h:181
Settings * settings
Definition bridge.h:162
PokemonStartersModel * starterModel
Definition bridge.h:178
FontSearch * fontSearch
Definition bridge.h:151
StatusSelectModel * statusSelectModel
Definition bridge.h:182
RecentFilesModel * recentFilesModel
Definition bridge.h:164
PokemonBoxSelectModel * pokemonBoxSelectModel2
Definition bridge.h:176
PokemonBoxSelectModel * pokemonBoxSelectModel1
Definition bridge.h:175
Utility * util
Definition bridge.h:158
CreditsModel * creditsModel
Definition bridge.h:177
MapSelectModel * mapSelectModel
Definition bridge.h:185
ItemStorageModel * pcItemsModel
Definition bridge.h:167
ItemSelectModel * itemSelectModel
Definition bridge.h:179
PokedexModel * pokedexModel
Definition bridge.h:165
NamesPokemon * randomPokemonName
Definition bridge.h:157
Exposes the credits database to QML as a list of sections, each carrying its own entries – so the Abo...
Example player-value source (an AbstractRandomString of presets).
static ExamplesPlayer * inst()
The process-wide ExamplesPlayer singleton.
Example Pokemon-value source (an AbstractRandomString of presets).
static ExamplesPokemon * inst()
The process-wide ExamplesPokemon singleton.
Example rival-value source (an AbstractRandomString of presets).
static ExamplesRival * inst()
The process-wide ExamplesRival singleton.
Owns the on-disk side of a save: the current path, the recent-files list, and the live SaveFile.
Exposes a FontSearch's current results as a list model for the keyboard.
A chainable filter ("finder") over the font glyphs.
Definition fontsearch.h:40
The font database – the in-game character set and the text codec.
Definition fontsdb.h:50
static FontsDB * inst()
< Number of font glyphs.
Definition fontsdb.cpp:367
The "cart" view of ItemMarketModel – only the rows actually on the cart.
The Poke-mart / Game Corner "market" model – buy and sell with a cart.
The left-list VIEW of ItemMarketModel – the Buy or Sell slice.
Read-only "where are my items" overview for the Bag screen's View All pane.
Item picker model (select-model variant; see SpeciesSelectModel).
Editable list model for an item box (the bag or a PC item box).
Map picker model, tied to the current AreaMap.
Move picker model – context-aware on a chosen Pokemon.
Random player-name source (an AbstractRandomString of player names).
Definition namesplayer.h:34
static NamesPlayer * inst()
The process-wide NamesPlayer singleton.
Random Pokemon-nickname source (an AbstractRandomString of names).
static NamesPokemon * inst()
The process-wide NamesPokemon singleton.
Nature picker model (select-model variant; see SpeciesSelectModel).
The Pokedex grid model – seen/owned state, with cycling sort orders.
The "which PC box" selector model (Party + 12 boxes).
Read-only "where are my Pokemon" overview for the Pokemon screen's View All pane – the Pokemon analog...
The three canonical starters as a picker model.
Editable list model for a PC box (or the party), with checkbox selection.
Recent-files list model for the start screen.
Screen navigation for the UI – the QML StackView's controller.
Definition router.h:74
App-wide UI settings: layout metrics, the colour palette, and font colours.
Definition settings.h:35
A species picker list model (the "select model" variant).
Status-condition picker model (select-model variant; see SpeciesSelectModel).
Type list model – the elemental types for type pickers.
Definition typesmodel.h:29
Grab-bag of shared helpers, and the QML entry point for the common layer.
Definition utility.h:46
static Utility * inst()
< The shared Random instance, reachable from QML as pseCommon.random.
Definition utility.cpp:31