diff --git a/forms/mainwindow.ui b/forms/mainwindow.ui
index 8c0c1b40..f08bde20 100644
--- a/forms/mainwindow.ui
+++ b/forms/mainwindow.ui
@@ -2872,6 +2872,7 @@
+
+
+
-
Save All
@@ -3178,6 +3187,30 @@
Reload Project
+
+
+ true
+
+
+ Show Wild Encounter Tables
+
+
+
+
+ true
+
+
+ Monitor Project Files
+
+
+
+
+ true
+
+
+ Use PoryScript
+
+
diff --git a/include/mainwindow.h b/include/mainwindow.h
index fd5ecef8..3cd89daa 100644
--- a/include/mainwindow.h
+++ b/include/mainwindow.h
@@ -74,6 +74,9 @@ private slots:
void on_checkBox_AllowBiking_clicked(bool checked);
void on_checkBox_AllowEscapeRope_clicked(bool checked);
void on_spinBox_FloorNumber_valueChanged(int offset);
+ void on_actionUse_Encounter_Json_triggered(bool checked);
+ void on_actionMonitor_Project_Files_triggered(bool checked);
+ void on_actionUse_Poryscript_triggered(bool checked);
void on_tabWidget_currentChanged(int index);
diff --git a/include/project.h b/include/project.h
index 10b5562d..5f432b81 100644
--- a/include/project.h
+++ b/include/project.h
@@ -204,6 +204,7 @@ private:
signals:
void reloadProject();
+ void uncheckMonitorFilesAction();
};
#endif // PROJECT_H
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 081b62cc..49bc1779 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -43,7 +43,7 @@ MainWindow::MainWindow(QWidget *parent) :
QCoreApplication::setOrganizationName("pret");
QCoreApplication::setApplicationName("porymap");
QApplication::setApplicationDisplayName("porymap");
- QApplication::setWindowIcon(QIcon(":/icons/porymap-icon-1.ico"));
+ QApplication::setWindowIcon(QIcon(":/icons/porymap-icon-2.ico"));
ui->setupUi(this);
this->initWindow();
@@ -151,8 +151,10 @@ void MainWindow::initMapSortOrder() {
void MainWindow::setProjectSpecificUIVisibility()
{
- if (!projectConfig.getEncounterJsonActive())
- ui->tabWidget->removeTab(4);
+ ui->tabWidget->setTabEnabled(4, projectConfig.getEncounterJsonActive());
+
+ ui->actionUse_Encounter_Json->setChecked(projectConfig.getEncounterJsonActive());
+ ui->actionUse_Poryscript->setChecked(projectConfig.getUsePoryScript());
switch (projectConfig.getBaseGameVersion())
{
@@ -247,6 +249,7 @@ void MainWindow::loadUserSettings() {
ui->horizontalSlider_MetatileZoom->blockSignals(true);
ui->horizontalSlider_MetatileZoom->setValue(porymapConfig.getMetatilesZoom());
ui->horizontalSlider_MetatileZoom->blockSignals(false);
+ ui->actionMonitor_Project_Files->setChecked(porymapConfig.getMonitorFiles());
setTheme(porymapConfig.getTheme());
}
@@ -301,7 +304,8 @@ bool MainWindow::openProject(QString dir) {
if (!already_open) {
editor->closeProject();
editor->project = new Project(this);
- QObject::connect(editor->project, SIGNAL(reloadProject), this, SLOT(on_action_Reload_Project_triggered));
+ QObject::connect(editor->project, SIGNAL(reloadProject()), this, SLOT(on_action_Reload_Project_triggered()));
+ QObject::connect(editor->project, &Project::uncheckMonitorFilesAction, [this] () { ui->actionMonitor_Project_Files->setChecked(false); });
editor->project->set_root(dir);
success = loadDataStructures()
&& populateMapList()
@@ -1243,6 +1247,26 @@ void MainWindow::on_actionCursor_Tile_Outline_triggered()
this->editor->settings->cursorTileRectEnabled = enabled;
}
+void MainWindow::on_actionUse_Encounter_Json_triggered(bool checked)
+{
+ QMessageBox warning(this);
+ warning.setText("You must reload the project for this setting to take effect.");
+ warning.setIcon(QMessageBox::Information);
+ warning.exec();
+ projectConfig.setEncounterJsonActive(checked);
+}
+
+void MainWindow::on_actionMonitor_Project_Files_triggered(bool checked)
+{
+ editor->project->fileWatcher.blockSignals(!checked);
+ porymapConfig.setMonitorFiles(checked);
+}
+
+void MainWindow::on_actionUse_Poryscript_triggered(bool checked)
+{
+ projectConfig.setUsePoryScript(checked);
+}
+
void MainWindow::on_actionPencil_triggered()
{
on_toolButton_Paint_clicked();
diff --git a/src/project.cpp b/src/project.cpp
index 993bce85..f20b1a64 100644
--- a/src/project.cpp
+++ b/src/project.cpp
@@ -105,6 +105,7 @@ void Project::initSignals() {
if (showAgainCheck.isChecked()) {
porymapConfig.setMonitorFiles(false);
this->fileWatcher.blockSignals(true);
+ emit uncheckMonitorFilesAction();
}
}
});