Skip to content

Commit cf80acc

Browse files
committed
fixed #27
1 parent ca33cf0 commit cf80acc

7 files changed

Lines changed: 48 additions & 9 deletions

File tree

omodsim/dialogs/dialogscriptsettings.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ DialogScriptSettings::DialogScriptSettings(ScriptSettings& ss, QWidget *parent)
1616
ui->lineEditInterval->setValue(ss.Interval);
1717
ui->comboBoxRunMode->setCurrentRunMode(ss.Mode);
1818
ui->checkBoxAutoComplete->setChecked(ss.UseAutoComplete);
19+
ui->checkBoxRunOnStartup->setChecked(ss.RunOnStartup);
1920
}
2021

2122
///
@@ -34,6 +35,7 @@ void DialogScriptSettings::accept()
3435
_scriptSettings.Mode = ui->comboBoxRunMode->currentRunMode();
3536
_scriptSettings.Interval = ui->lineEditInterval->value<int>();
3637
_scriptSettings.UseAutoComplete = ui->checkBoxAutoComplete->isChecked();
38+
_scriptSettings.RunOnStartup = ui->checkBoxRunOnStartup->isChecked();
3739

3840
QFixedSizeDialog::accept();
3941
}

omodsim/dialogs/dialogscriptsettings.ui

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,16 @@
66
<rect>
77
<x>0</x>
88
<y>0</y>
9-
<width>189</width>
10-
<height>126</height>
9+
<width>261</width>
10+
<height>156</height>
1111
</rect>
1212
</property>
1313
<property name="windowTitle">
1414
<string>Script Settings</string>
1515
</property>
1616
<layout class="QFormLayout" name="formLayout">
1717
<property name="labelAlignment">
18-
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
18+
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
1919
</property>
2020
<item row="0" column="0">
2121
<widget class="QLabel" name="labelRunMode">
@@ -75,19 +75,26 @@
7575
</property>
7676
</widget>
7777
</item>
78-
<item row="3" column="0" colspan="2">
78+
<item row="4" column="0" colspan="2">
7979
<widget class="QDialogButtonBox" name="buttonBox">
8080
<property name="orientation">
81-
<enum>Qt::Horizontal</enum>
81+
<enum>Qt::Orientation::Horizontal</enum>
8282
</property>
8383
<property name="standardButtons">
84-
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
84+
<set>QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok</set>
8585
</property>
8686
<property name="centerButtons">
8787
<bool>true</bool>
8888
</property>
8989
</widget>
9090
</item>
91+
<item row="3" column="0">
92+
<widget class="QCheckBox" name="checkBoxRunOnStartup">
93+
<property name="text">
94+
<string>Run script on startup</string>
95+
</property>
96+
</widget>
97+
</item>
9198
</layout>
9299
</widget>
93100
<customwidgets>

omodsim/formmodsim.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,10 @@ inline QSettings& operator >>(QSettings& in, FormModSim* frm)
244244
frm->setCodepage(in.value("Codepage").toString());
245245
frm->setScriptSettings(scriptSettings);
246246

247+
if(scriptSettings.RunOnStartup) {
248+
frm->runScript();
249+
}
250+
247251
return in;
248252
}
249253

omodsim/main.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ int main(int argc, char *argv[])
7171
MainWindow w;
7272
if(!cfg.isEmpty())
7373
{
74-
w.loadConfig(cfg);
74+
w.loadConfig(cfg, true);
7575
}
7676
w.show();
7777

omodsim/mainwindow.cpp

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,8 +195,17 @@ void MainWindow::on_awake()
195195
ui->actionBinary->setEnabled(frm != nullptr);
196196
ui->actionUInt16->setEnabled(frm != nullptr);
197197
ui->actionInt16->setEnabled(frm != nullptr);
198+
ui->actionInt32->setEnabled(frm != nullptr);
199+
ui->actionSwappedInt32->setEnabled(frm != nullptr);
200+
ui->actionUInt32->setEnabled(frm != nullptr);
201+
ui->actionSwappedUInt32->setEnabled(frm != nullptr);
202+
ui->actionInt64->setEnabled(frm != nullptr);
203+
ui->actionSwappedInt64->setEnabled(frm != nullptr);
204+
ui->actionUInt64->setEnabled(frm != nullptr);
205+
ui->actionSwappedUInt64->setEnabled(frm != nullptr);
198206
ui->actionHex->setEnabled(frm != nullptr);
199207
ui->actionAnsi->setEnabled(frm != nullptr);
208+
ui->actionHex->setEnabled(frm != nullptr);
200209
ui->actionFloatingPt->setEnabled(frm != nullptr);
201210
ui->actionSwappedFP->setEnabled(frm != nullptr);
202211
ui->actionDblFloat->setEnabled(frm != nullptr);
@@ -1280,7 +1289,7 @@ FormModSim* MainWindow::firstMdiChild() const
12801289
/// \brief MainWindow::loadConfig
12811290
/// \param filename
12821291
///
1283-
void MainWindow::loadConfig(const QString& filename)
1292+
void MainWindow::loadConfig(const QString& filename, bool startup)
12841293
{
12851294
QFile file(filename);
12861295
if(!file.open(QFile::ReadOnly))
@@ -1327,6 +1336,15 @@ void MainWindow::loadConfig(const QString& filename)
13271336
if(!filename.isEmpty())
13281337
openFile(filename);
13291338
}
1339+
1340+
if(startup) {
1341+
for(auto&& wnd : ui->mdiArea->subWindowList()) {
1342+
const auto frm = qobject_cast<FormModSim*>(wnd->widget());
1343+
if(frm->scriptSettings().RunOnStartup) {
1344+
frm->runScript();
1345+
}
1346+
}
1347+
}
13301348
}
13311349

13321350
///

omodsim/mainwindow.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class MainWindow : public QMainWindow
2424

2525
void setLanguage(const QString& lang);
2626

27-
void loadConfig(const QString& filename);
27+
void loadConfig(const QString& filename, bool startup = false);
2828
void saveConfig(const QString& filename);
2929

3030
signals:

omodsim/scriptsettings.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ struct ScriptSettings
1212
RunMode Mode = RunMode::Periodically;
1313
uint Interval = 1000;
1414
bool UseAutoComplete = true;
15+
bool RunOnStartup = false;
1516

1617
void normalize()
1718
{
@@ -32,6 +33,7 @@ inline QSettings& operator <<(QSettings& out, const ScriptSettings& ss)
3233
out.setValue("ScriptSettings/RunMode", (int)ss.Mode);
3334
out.setValue("ScriptSettings/Interval", ss.Interval);
3435
out.setValue("ScriptSettings/UseAutoComplete", ss.UseAutoComplete);
36+
out.setValue("ScriptSettings/RunOnStartup", ss.RunOnStartup);
3537

3638
return out;
3739
}
@@ -47,6 +49,7 @@ inline QSettings& operator >>(QSettings& in, ScriptSettings& ss)
4749
ss.Mode = (RunMode)in.value("ScriptSettings/RunMode").toInt();
4850
ss.Interval = in.value("ScriptSettings/Interval", 1000).toUInt();
4951
ss.UseAutoComplete = in.value("ScriptSettings/UseAutoComplete", true).toBool();
52+
ss.RunOnStartup = in.value("ScriptSettings/RunOnStartup", false).toBool();
5053

5154
ss.normalize();
5255
return in;
@@ -63,6 +66,7 @@ inline QDataStream& operator <<(QDataStream& out, const ScriptSettings& ss)
6366
out << ss.Mode;
6467
out << ss.Interval;
6568
out << ss.UseAutoComplete;
69+
out << ss.RunOnStartup;
6670

6771
return out;
6872
}
@@ -79,6 +83,10 @@ inline QDataStream& operator >>(QDataStream& in, ScriptSettings& ss)
7983
in >> ss.Interval;
8084
in >> ss.UseAutoComplete;
8185

86+
if(!in.atEnd()) {
87+
in >> ss.RunOnStartup;
88+
}
89+
8290
return in;
8391
}
8492

0 commit comments

Comments
 (0)