Save & restore region map editor geometry & state from config
This commit is contained in:
parent
5624de750b
commit
daae6fe52b
4 changed files with 34 additions and 1 deletions
|
@ -52,6 +52,7 @@ public:
|
||||||
void setPrettyCursors(bool enabled);
|
void setPrettyCursors(bool enabled);
|
||||||
void setMainGeometry(QByteArray, QByteArray, QByteArray, QByteArray);
|
void setMainGeometry(QByteArray, QByteArray, QByteArray, QByteArray);
|
||||||
void setTilesetEditorGeometry(QByteArray, QByteArray);
|
void setTilesetEditorGeometry(QByteArray, QByteArray);
|
||||||
|
void setRegionMapEditorGeometry(QByteArray, QByteArray);
|
||||||
void setCollisionOpacity(int opacity);
|
void setCollisionOpacity(int opacity);
|
||||||
void setMetatilesZoom(int zoom);
|
void setMetatilesZoom(int zoom);
|
||||||
void setShowPlayerView(bool enabled);
|
void setShowPlayerView(bool enabled);
|
||||||
|
@ -65,6 +66,7 @@ public:
|
||||||
bool getPrettyCursors();
|
bool getPrettyCursors();
|
||||||
QMap<QString, QByteArray> getMainGeometry();
|
QMap<QString, QByteArray> getMainGeometry();
|
||||||
QMap<QString, QByteArray> getTilesetEditorGeometry();
|
QMap<QString, QByteArray> getTilesetEditorGeometry();
|
||||||
|
QMap<QString, QByteArray> getRegionMapEditorGeometry();
|
||||||
int getCollisionOpacity();
|
int getCollisionOpacity();
|
||||||
int getMetatilesZoom();
|
int getMetatilesZoom();
|
||||||
bool getShowPlayerView();
|
bool getShowPlayerView();
|
||||||
|
@ -92,6 +94,8 @@ private:
|
||||||
QByteArray mainSplitterState;
|
QByteArray mainSplitterState;
|
||||||
QByteArray tilesetEditorGeometry;
|
QByteArray tilesetEditorGeometry;
|
||||||
QByteArray tilesetEditorState;
|
QByteArray tilesetEditorState;
|
||||||
|
QByteArray regionMapEditorGeometry;
|
||||||
|
QByteArray regionMapEditorState;
|
||||||
int collisionOpacity;
|
int collisionOpacity;
|
||||||
int metatilesZoom;
|
int metatilesZoom;
|
||||||
bool showPlayerView;
|
bool showPlayerView;
|
||||||
|
|
|
@ -141,6 +141,10 @@ void PorymapConfig::parseConfigKeyValue(QString key, QString value) {
|
||||||
this->tilesetEditorGeometry = bytesFromString(value);
|
this->tilesetEditorGeometry = bytesFromString(value);
|
||||||
} else if (key == "tileset_editor_state") {
|
} else if (key == "tileset_editor_state") {
|
||||||
this->tilesetEditorState = bytesFromString(value);
|
this->tilesetEditorState = bytesFromString(value);
|
||||||
|
} else if (key == "region_map_editor_geometry") {
|
||||||
|
this->regionMapEditorGeometry = bytesFromString(value);
|
||||||
|
} else if (key == "region_map_editor_state") {
|
||||||
|
this->regionMapEditorState = bytesFromString(value);
|
||||||
} else if (key == "metatiles_zoom") {
|
} else if (key == "metatiles_zoom") {
|
||||||
bool ok;
|
bool ok;
|
||||||
this->metatilesZoom = qMax(10, qMin(100, value.toInt(&ok)));
|
this->metatilesZoom = qMax(10, qMin(100, value.toInt(&ok)));
|
||||||
|
@ -196,6 +200,8 @@ QMap<QString, QString> PorymapConfig::getKeyValueMap() {
|
||||||
map.insert("main_splitter_state", stringFromByteArray(this->mainSplitterState));
|
map.insert("main_splitter_state", stringFromByteArray(this->mainSplitterState));
|
||||||
map.insert("tileset_editor_geometry", stringFromByteArray(this->tilesetEditorGeometry));
|
map.insert("tileset_editor_geometry", stringFromByteArray(this->tilesetEditorGeometry));
|
||||||
map.insert("tileset_editor_state", stringFromByteArray(this->tilesetEditorState));
|
map.insert("tileset_editor_state", stringFromByteArray(this->tilesetEditorState));
|
||||||
|
map.insert("region_map_editor_geometry", stringFromByteArray(this->regionMapEditorGeometry));
|
||||||
|
map.insert("region_map_editor_state", stringFromByteArray(this->regionMapEditorState));
|
||||||
map.insert("collision_opacity", QString("%1").arg(this->collisionOpacity));
|
map.insert("collision_opacity", QString("%1").arg(this->collisionOpacity));
|
||||||
map.insert("metatiles_zoom", QString("%1").arg(this->metatilesZoom));
|
map.insert("metatiles_zoom", QString("%1").arg(this->metatilesZoom));
|
||||||
map.insert("show_player_view", this->showPlayerView ? "1" : "0");
|
map.insert("show_player_view", this->showPlayerView ? "1" : "0");
|
||||||
|
@ -264,6 +270,12 @@ void PorymapConfig::setTilesetEditorGeometry(QByteArray tilesetEditorGeometry_,
|
||||||
this->save();
|
this->save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PorymapConfig::setRegionMapEditorGeometry(QByteArray regionMapEditorGeometry_, QByteArray regionMapEditorState_) {
|
||||||
|
this->regionMapEditorGeometry = regionMapEditorGeometry_;
|
||||||
|
this->regionMapEditorState = regionMapEditorState_;
|
||||||
|
this->save();
|
||||||
|
}
|
||||||
|
|
||||||
void PorymapConfig::setCollisionOpacity(int opacity) {
|
void PorymapConfig::setCollisionOpacity(int opacity) {
|
||||||
this->collisionOpacity = opacity;
|
this->collisionOpacity = opacity;
|
||||||
// don't auto-save here because this can be called very frequently.
|
// don't auto-save here because this can be called very frequently.
|
||||||
|
@ -328,6 +340,15 @@ QMap<QString, QByteArray> PorymapConfig::getTilesetEditorGeometry() {
|
||||||
return geometry;
|
return geometry;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QMap<QString, QByteArray> PorymapConfig::getRegionMapEditorGeometry() {
|
||||||
|
QMap<QString, QByteArray> geometry;
|
||||||
|
|
||||||
|
geometry.insert("region_map_editor_geometry", this->regionMapEditorGeometry);
|
||||||
|
geometry.insert("region_map_editor_state", this->regionMapEditorState);
|
||||||
|
|
||||||
|
return geometry;
|
||||||
|
}
|
||||||
|
|
||||||
int PorymapConfig::getCollisionOpacity() {
|
int PorymapConfig::getCollisionOpacity() {
|
||||||
return this->collisionOpacity;
|
return this->collisionOpacity;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2661,7 +2661,10 @@ void MainWindow::on_actionRegion_Map_Editor_triggered() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
connect(this->regionMapEditor, &QObject::destroyed, [=](QObject *) { this->regionMapEditor = nullptr; });
|
connect(this->regionMapEditor, &QObject::destroyed, [=](QObject *) { this->regionMapEditor = nullptr; });
|
||||||
this->regionMapEditor->setAttribute(Qt::WA_DeleteOnClose);
|
logInfo("Restoring region map editor geometry from previous session.");
|
||||||
|
QMap<QString, QByteArray> geometry = porymapConfig.getRegionMapEditorGeometry();
|
||||||
|
this->regionMapEditor->restoreGeometry(geometry.value("region_map_editor_geometry"));
|
||||||
|
this->regionMapEditor->restoreState(geometry.value("region_map_editor_state"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this->regionMapEditor->isVisible()) {
|
if (!this->regionMapEditor->isVisible()) {
|
||||||
|
|
|
@ -899,6 +899,11 @@ void RegionMapEditor::closeEvent(QCloseEvent *event)
|
||||||
} else {
|
} else {
|
||||||
event->accept();
|
event->accept();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
porymapConfig.setRegionMapEditorGeometry(
|
||||||
|
this->saveGeometry(),
|
||||||
|
this->saveState()
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void RegionMapEditor::on_verticalSlider_Zoom_Map_Image_valueChanged(int val) {
|
void RegionMapEditor::on_verticalSlider_Zoom_Map_Image_valueChanged(int val) {
|
||||||
|
|
Loading…
Reference in a new issue