Skip to content

Commit 2338829

Browse files
committed
Script text saved to settings
1 parent d0f8d5d commit 2338829

File tree

4 files changed

+101
-20
lines changed

4 files changed

+101
-20
lines changed

src/Interface/Application/Settings.cc

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#include <Interface/Application/PreferencesWindow.h>
3434
#include <Interface/Application/Connection.h>
3535
#include <Interface/Application/TagManagerWindow.h>
36+
#include <Interface/Application/TriggeredEventsWindow.h>
3637
#include <Core/Application/Preferences/Preferences.h>
3738

3839
using namespace SCIRun::Gui;
@@ -53,6 +54,36 @@ namespace
5354
strs << QString::fromStdString(path.string());
5455
return strs;
5556
}
57+
58+
QStringList valueListAsString(const QList<QVariant>& qvs)
59+
{
60+
QStringList qsl;
61+
for (const auto& qv : qvs)
62+
{
63+
qsl.append(qv.toString());
64+
}
65+
return qsl;
66+
}
67+
68+
QMap<QString, QString> toStrMap(const QMap<QString, QVariant>& m)
69+
{
70+
QMap<QString, QString> ss;
71+
for (const auto& sv : m.toStdMap())
72+
{
73+
ss[sv.first] = sv.second.toString();
74+
}
75+
return ss;
76+
}
77+
78+
QMap<QString, QVariant> fromStrMap(const QMap<QString, QString>& m)
79+
{
80+
QMap<QString, QVariant> sv;
81+
for (const auto& ss : m.toStdMap())
82+
{
83+
sv[ss.first] = ss.second;
84+
}
85+
return sv;
86+
}
5687
}
5788

5889
void SCIRunMainWindow::readSettings()
@@ -227,6 +258,14 @@ void SCIRunMainWindow::readSettings()
227258
else
228259
tagManagerWindow_->setTagColors(QVector<QString>());
229260

261+
const QString triggeredScripts = "triggeredScripts";
262+
if (settings.contains(triggeredScripts))
263+
{
264+
auto scriptsMap = settings.value(triggeredScripts).toMap();
265+
GuiLogger::Instance().logInfo("Setting read: triggeredScripts = " + QStringList(scriptsMap.keys()).join(";") + " -> " + valueListAsString(scriptsMap.values()).join(";"));
266+
triggeredEventsWindow_->setScripts(toStrMap(scriptsMap));
267+
}
268+
230269
restoreGeometry(settings.value("geometry").toByteArray());
231270
restoreState(settings.value("windowState").toByteArray());
232271
}
@@ -257,6 +296,7 @@ void SCIRunMainWindow::writeSettings()
257296
settings.setValue("dataPath", convertPathList(prefs.dataPath()));
258297
settings.setValue("tagNames", tagManagerWindow_->getTagNames());
259298
settings.setValue("tagColors", tagManagerWindow_->getTagColors());
299+
settings.setValue("triggeredScripts", fromStrMap(triggeredEventsWindow_->getScripts()));
260300

261301
settings.setValue("geometry", saveGeometry());
262302
settings.setValue("windowState", saveState());

src/Interface/Application/TriggeredEventsWindow.cc

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,30 @@ using namespace SCIRun::Gui;
3737
TriggeredEventsWindow::TriggeredEventsWindow(QWidget* parent /* = 0 */) : QDockWidget(parent)
3838
{
3939
setupUi(this);
40+
connect(eventListWidget_, SIGNAL(itemSelectionChanged()), this, SLOT(updateScriptEditor()));
41+
connect(scriptPlainTextEdit_, SIGNAL(textChanged()), this, SLOT(updateScripts()));
42+
}
43+
44+
const QMap<QString, QString>& TriggeredEventsWindow::getScripts() const
45+
{
46+
return scripts_;
47+
}
48+
49+
void TriggeredEventsWindow::setScripts(const QMap<QString, QString>& scripts)
50+
{
51+
scripts_ = scripts;
52+
53+
eventListWidget_->setCurrentItem(eventListWidget_->item(1));
54+
scriptPlainTextEdit_->setPlainText(scripts_[eventListWidget_->currentItem()->text()]);
55+
}
56+
57+
void TriggeredEventsWindow::updateScriptEditor()
58+
{
59+
auto scr = scripts_[eventListWidget_->currentItem()->text()];
60+
scriptPlainTextEdit_->setPlainText(scr);
61+
}
62+
63+
void TriggeredEventsWindow::updateScripts()
64+
{
65+
scripts_[eventListWidget_->currentItem()->text()] = scriptPlainTextEdit_->toPlainText();
4066
}

src/Interface/Application/TriggeredEventsWindow.h

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
#define INTERFACE_APPLICATION_TRIGGEREDEVENTSWINDOW_H
3131

3232
#include "ui_TriggeredEventsWindow.h"
33+
#include <QMap>
3334

3435
#ifndef Q_MOC_RUN
3536
#include <Dataflow/Network/NetworkFwd.h>
@@ -46,28 +47,17 @@ class TriggeredEventsWindow : public QDockWidget, public Ui::TriggeredEvents
4647

4748
public:
4849
explicit TriggeredEventsWindow(QWidget* parent = nullptr);
49-
//void showFile(SCIRun::Dataflow::Networks::NetworkFileHandle file);
50-
//public Q_SLOTS:
51-
// void clear();
52-
// void addProvenanceItem(SCIRun::Dataflow::Engine::ProvenanceItemHandle item);
53-
// void undo();
54-
// void redo();
55-
// void undoAll();
56-
// void redoAll();
57-
//private Q_SLOTS:
58-
// void displayInfo(QListWidgetItem* item);
50+
const QMap<QString, QString>& getScripts() const;
51+
52+
void setScripts(const QMap<QString, QString>& scripts);
53+
54+
//public Q_SLOTS:
55+
private Q_SLOTS:
56+
void updateScriptEditor();
57+
void updateScripts();
5958
//Q_SIGNALS:
60-
// void modifyingNetwork(bool modifying);
61-
// void undoStateChanged(bool enabled);
62-
// void redoStateChanged(bool enabled);
63-
// void networkModified();
6459
private:
65-
//SCIRun::Dataflow::Engine::ProvenanceManagerHandle provenanceManager_;
66-
//int lastUndoRow_;
67-
//const SCIRun::Dataflow::Engine::ProvenanceManagerHandle::element_type::IOType* networkEditor_;
68-
69-
//void setUndoEnabled(bool enable);
70-
//void setRedoEnabled(bool enable);
60+
QMap<QString, QString> scripts_;
7161
};
7262

7363
}

src/Interface/Application/TriggeredEventsWindow.ui

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@
4141
<property name="text">
4242
<string>Pre module add</string>
4343
</property>
44+
<property name="font">
45+
<font>
46+
<italic>true</italic>
47+
</font>
48+
</property>
4449
<property name="flags">
4550
<set>ItemIsSelectable|ItemIsDragEnabled|ItemIsUserCheckable</set>
4651
</property>
@@ -54,6 +59,11 @@
5459
<property name="text">
5560
<string>On network load</string>
5661
</property>
62+
<property name="font">
63+
<font>
64+
<italic>true</italic>
65+
</font>
66+
</property>
5767
<property name="flags">
5868
<set>ItemIsSelectable|ItemIsDragEnabled|ItemIsUserCheckable</set>
5969
</property>
@@ -62,6 +72,11 @@
6272
<property name="text">
6373
<string>Pre execute</string>
6474
</property>
75+
<property name="font">
76+
<font>
77+
<italic>true</italic>
78+
</font>
79+
</property>
6580
<property name="flags">
6681
<set>ItemIsSelectable|ItemIsDragEnabled|ItemIsUserCheckable</set>
6782
</property>
@@ -70,10 +85,20 @@
7085
<property name="text">
7186
<string>Post execute</string>
7287
</property>
88+
<property name="font">
89+
<font>
90+
<italic>true</italic>
91+
</font>
92+
</property>
7393
<property name="flags">
7494
<set>ItemIsSelectable|ItemIsDragEnabled|ItemIsUserCheckable</set>
7595
</property>
7696
</item>
97+
<item>
98+
<property name="text">
99+
<string>Dummy</string>
100+
</property>
101+
</item>
77102
</widget>
78103
</item>
79104
</layout>

0 commit comments

Comments
 (0)