History

Style

Thijs Wenker committed 12 years ago

Commit c1ed38f1 parent 0e28ff26 files · +147 −131Browse files

Showing the changes to interface/src/ui/ScriptEditorWindow.cpp (1 of 6 files). Show all

Unified · Split

interface/src/ui/ScriptEditorWindow.cpp+53−43
@@ -29,19 +29,19 @@ · 28 unmodified lines
29#include "FlowLayout.h"29#include "FlowLayout.h"
30 30
31ScriptEditorWindow::ScriptEditorWindow() :31ScriptEditorWindow::ScriptEditorWindow() :
32 ui(new Ui::ScriptEditorWindow)32 _ScriptEditorWindowUI(new Ui::ScriptEditorWindow),
33 _loadMenu(new QMenu),
34 _saveMenu(new QMenu)
33{35{
34 ui->setupUi(this);36 _ScriptEditorWindowUI->setupUi(this);
35 show();37 show();
36 addScriptEditorWidget("New script");38 addScriptEditorWidget("New script");
37 loadMenu = new QMenu();39 connect(_loadMenu, SIGNAL(aboutToShow()), this, SLOT(loadMenuAboutToShow()));
38 connect(loadMenu, SIGNAL(aboutToShow()), this, SLOT(loadMenuAboutToShow()));40 _ScriptEditorWindowUI->loadButton->setMenu(_loadMenu);
39 ui->loadButton->setMenu(loadMenu);
40 41
41 saveMenu = new QMenu();42 _saveMenu->addAction("Save as..", this, SLOT(saveScriptAsClicked()), Qt::CTRL | Qt::SHIFT | Qt::Key_S);
42 saveMenu->addAction("Save as..", this, SLOT(saveScriptAsClicked()), Qt::CTRL|Qt::SHIFT|Qt::Key_S);
43 43
44 ui->saveButton->setMenu(saveMenu);44 _ScriptEditorWindowUI->saveButton->setMenu(_saveMenu);
45 45
46 connect(new QShortcut(QKeySequence("Ctrl+N"), this), SIGNAL(activated()), this, SLOT(newScriptClicked()));46 connect(new QShortcut(QKeySequence("Ctrl+N"), this), SIGNAL(activated()), this, SLOT(newScriptClicked()));
47 connect(new QShortcut(QKeySequence("Ctrl+S"), this), SIGNAL(activated()), this, SLOT(saveScriptClicked()));47 connect(new QShortcut(QKeySequence("Ctrl+S"), this), SIGNAL(activated()), this, SLOT(saveScriptClicked()));
@@ -50,19 +50,21 @@ ScriptEditorWindow::ScriptEditorWindow() : · 2 unmodified lines
50}50}
51 51
52ScriptEditorWindow::~ScriptEditorWindow() {52ScriptEditorWindow::~ScriptEditorWindow() {
53 delete ui;53 delete _ScriptEditorWindowUI;
54}54}
55 55
56void ScriptEditorWindow::setRunningState(bool run) {56void ScriptEditorWindow::setRunningState(bool run) {
57 if (ui->tabWidget->currentIndex() != -1) {57 if (_ScriptEditorWindowUI->tabWidget->currentIndex() != -1) {
58 ((ScriptEditorWidget*)ui->tabWidget->currentWidget())->setRunning(run);58 static_cast<ScriptEditorWidget*>(_ScriptEditorWindowUI->tabWidget->currentWidget())->setRunning(run);
59 }59 }
60 this->updateButtons();60 this->updateButtons();
61}61}
62 62
63void ScriptEditorWindow::updateButtons() {63void ScriptEditorWindow::updateButtons() {
64 ui->toggleRunButton->setEnabled(ui->tabWidget->currentIndex() != -1);64 _ScriptEditorWindowUI->toggleRunButton->setEnabled(_ScriptEditorWindowUI->tabWidget->currentIndex() != -1);
65 ui->toggleRunButton->setIcon(ui->tabWidget->currentIndex() != -1 && ((ScriptEditorWidget*)ui->tabWidget->currentWidget())->isRunning() ? QIcon("../resources/icons/stop-script.svg"):QIcon("../resources/icons/start-script.svg"));65 _ScriptEditorWindowUI->toggleRunButton->setIcon(_ScriptEditorWindowUI->tabWidget->currentIndex() != -1 &&
66 static_cast<ScriptEditorWidget*>(_ScriptEditorWindowUI->tabWidget->currentWidget())->isRunning() ?
67 QIcon("../resources/icons/stop-script.svg") : QIcon("../resources/icons/start-script.svg"));
66}68}
67 69
68void ScriptEditorWindow::loadScriptMenu(const QString& scriptName) {70void ScriptEditorWindow::loadScriptMenu(const QString& scriptName) {
@@ -79,21 +81,21 @@ void ScriptEditorWindow::loadScriptClicked() { · 10 unmodified lines
79}81}
80 82
81void ScriptEditorWindow::loadMenuAboutToShow() {83void ScriptEditorWindow::loadMenuAboutToShow() {
82 loadMenu->clear();84 _loadMenu->clear();
83 QStringList runningScripts = Application::getInstance()->getRunningScripts();85 QStringList runningScripts = Application::getInstance()->getRunningScripts();
84 if (runningScripts.count() > 0) {86 if (runningScripts.count() > 0) {
85 QSignalMapper* signalMapper = new QSignalMapper(this);87 QSignalMapper* signalMapper = new QSignalMapper(this);
86 foreach (const QString& runningScript, runningScripts) {88 foreach (const QString& runningScript, runningScripts) {
87 QAction* runningScriptAction = new QAction(runningScript, loadMenu);89 QAction* runningScriptAction = new QAction(runningScript, _loadMenu);
88 connect(runningScriptAction, SIGNAL(triggered()), signalMapper, SLOT(map()));90 connect(runningScriptAction, SIGNAL(triggered()), signalMapper, SLOT(map()));
89 signalMapper->setMapping(runningScriptAction, runningScript);91 signalMapper->setMapping(runningScriptAction, runningScript);
90 loadMenu->addAction(runningScriptAction);92 _loadMenu->addAction(runningScriptAction);
91 }93 }
92 connect(signalMapper, SIGNAL(mapped(const QString &)), this, SLOT(loadScriptMenu(const QString &)));94 connect(signalMapper, SIGNAL(mapped(const QString &)), this, SLOT(loadScriptMenu(const QString&)));
93 } else {95 } else {
94 QAction* naAction = new QAction("(no running scripts)",loadMenu);96 QAction* naAction = new QAction("(no running scripts)", _loadMenu);
95 naAction->setDisabled(true);97 naAction->setDisabled(true);
96 loadMenu->addAction(naAction);98 _loadMenu->addAction(naAction);
97 }99 }
98}100}
99 101
@@ -102,19 +104,22 @@ void ScriptEditorWindow::newScriptClicked() { · 2 unmodified lines
102}104}
103 105
104void ScriptEditorWindow::toggleRunScriptClicked() {106void ScriptEditorWindow::toggleRunScriptClicked() {
105 this->setRunningState(!(ui->tabWidget->currentIndex() !=-1 && ((ScriptEditorWidget*)ui->tabWidget->currentWidget())->isRunning()));107 this->setRunningState(!(_ScriptEditorWindowUI->tabWidget->currentIndex() !=-1
108 && static_cast<ScriptEditorWidget*>(_ScriptEditorWindowUI->tabWidget->currentWidget())->isRunning()));
106}109}
107 110
108void ScriptEditorWindow::saveScriptClicked() {111void ScriptEditorWindow::saveScriptClicked() {
109 if (ui->tabWidget->currentIndex() != -1) {112 if (_ScriptEditorWindowUI->tabWidget->currentIndex() != -1) {
110 ScriptEditorWidget* currentScriptWidget = (ScriptEditorWidget*)ui->tabWidget->currentWidget();113 ScriptEditorWidget* currentScriptWidget = static_cast<ScriptEditorWidget*>(_ScriptEditorWindowUI->tabWidget
114 ->currentWidget());
111 currentScriptWidget->save();115 currentScriptWidget->save();
112 }116 }
113}117}
114 118
115void ScriptEditorWindow::saveScriptAsClicked() {119void ScriptEditorWindow::saveScriptAsClicked() {
116 if (ui->tabWidget->currentIndex() != -1) {120 if (_ScriptEditorWindowUI->tabWidget->currentIndex() != -1) {
117 ScriptEditorWidget* currentScriptWidget = (ScriptEditorWidget*)ui->tabWidget->currentWidget();121 ScriptEditorWidget* currentScriptWidget = static_cast<ScriptEditorWidget*>(_ScriptEditorWindowUI->tabWidget
122 ->currentWidget());
118 currentScriptWidget->saveAs();123 currentScriptWidget->saveAs();
119 }124 }
120}125}
@@ -124,8 +129,8 @@ ScriptEditorWidget* ScriptEditorWindow::addScriptEditorWidget(QString title) { · 3 unmodified lines
124 connect(newScriptEditorWidget, SIGNAL(scriptnameChanged()), this, SLOT(updateScriptNameOrStatus()));129 connect(newScriptEditorWidget, SIGNAL(scriptnameChanged()), this, SLOT(updateScriptNameOrStatus()));
125 connect(newScriptEditorWidget, SIGNAL(scriptModified()), this, SLOT(updateScriptNameOrStatus()));130 connect(newScriptEditorWidget, SIGNAL(scriptModified()), this, SLOT(updateScriptNameOrStatus()));
126 connect(newScriptEditorWidget, SIGNAL(runningStateChanged()), this, SLOT(updateButtons()));131 connect(newScriptEditorWidget, SIGNAL(runningStateChanged()), this, SLOT(updateButtons()));
127 ui->tabWidget->addTab(newScriptEditorWidget, title);132 _ScriptEditorWindowUI->tabWidget->addTab(newScriptEditorWidget, title);
128 ui->tabWidget->setCurrentWidget(newScriptEditorWidget);133 _ScriptEditorWindowUI->tabWidget->setCurrentWidget(newScriptEditorWidget);
129 newScriptEditorWidget->setUpdatesEnabled(true);134 newScriptEditorWidget->setUpdatesEnabled(true);
130 newScriptEditorWidget->adjustSize();135 newScriptEditorWidget->adjustSize();
131 return newScriptEditorWidget;136 return newScriptEditorWidget;
@@ -133,13 +138,14 @@ ScriptEditorWidget* ScriptEditorWindow::addScriptEditorWidget(QString title) { · 1 unmodified line
133 138
134void ScriptEditorWindow::tabSwitched(int tabIndex) {139void ScriptEditorWindow::tabSwitched(int tabIndex) {
135 this->updateButtons();140 this->updateButtons();
136 if (ui->tabWidget->currentIndex() != -1) {141 if (_ScriptEditorWindowUI->tabWidget->currentIndex() != -1) {
137 ScriptEditorWidget* currentScriptWidget = (ScriptEditorWidget*)ui->tabWidget->currentWidget();142 ScriptEditorWidget* currentScriptWidget = static_cast<ScriptEditorWidget*>(_ScriptEditorWindowUI->tabWidget
138 QString modifiedStar = (currentScriptWidget->isModified()?"*":"");143 ->currentWidget());
144 QString modifiedStar = (currentScriptWidget->isModified() ? "*" : "");
139 if (currentScriptWidget->getScriptName().length() > 0) {145 if (currentScriptWidget->getScriptName().length() > 0) {
140 this->setWindowTitle("Script Editor ["+currentScriptWidget->getScriptName()+modifiedStar+"]");146 this->setWindowTitle("Script Editor [" + currentScriptWidget->getScriptName() + modifiedStar + "]");
141 } else {147 } else {
142 this->setWindowTitle("Script Editor [New script"+modifiedStar+"]");148 this->setWindowTitle("Script Editor [New script" + modifiedStar + "]");
143 }149 }
144 } else {150 } else {
145 this->setWindowTitle("Script Editor");151 this->setWindowTitle("Script Editor");
@@ -147,21 +153,25 @@ void ScriptEditorWindow::tabSwitched(int tabIndex) { · 1 unmodified line
147}153}
148 154
149void ScriptEditorWindow::tabCloseRequested(int tabIndex) {155void ScriptEditorWindow::tabCloseRequested(int tabIndex) {
150 ScriptEditorWidget* closingScriptWidget = (ScriptEditorWidget*)ui->tabWidget->widget(tabIndex);156 ScriptEditorWidget* closingScriptWidget = static_cast<ScriptEditorWidget*>(_ScriptEditorWindowUI->tabWidget
157 ->widget(tabIndex));
151 if(closingScriptWidget->questionSave()) {158 if(closingScriptWidget->questionSave()) {
152 ui->tabWidget->removeTab(tabIndex);159 _ScriptEditorWindowUI->tabWidget->removeTab(tabIndex);
153 }160 }
154}161}
155 162
156void ScriptEditorWindow::closeEvent(QCloseEvent *event) {163void ScriptEditorWindow::closeEvent(QCloseEvent *event) {
157 bool unsaved_docs_warning = false;164 bool unsaved_docs_warning = false;
158 for (int i = 0; i < ui->tabWidget->count(); i++ && !unsaved_docs_warning){165 for (int i = 0; i < _ScriptEditorWindowUI->tabWidget->count(); i++){
159 if(((ScriptEditorWidget*)ui->tabWidget->widget(i))->isModified()){166 if(static_cast<ScriptEditorWidget*>(_ScriptEditorWindowUI->tabWidget->widget(i))->isModified()){
160 unsaved_docs_warning = true;167 unsaved_docs_warning = true;
168 break;
161 }169 }
162 }170 }
163 171
164 if (!unsaved_docs_warning || QMessageBox::warning(this, tr("Interface"), tr("There are some unsaved scripts, are you sure you want to close the editor? Changes will be lost!"), QMessageBox::Discard | QMessageBox::Cancel, QMessageBox::Cancel) == QMessageBox::Discard) {172 if (!unsaved_docs_warning || QMessageBox::warning(this, tr("Interface"),
173 tr("There are some unsaved scripts, are you sure you want to close the editor? Changes will be lost!"),
174 QMessageBox::Discard | QMessageBox::Cancel, QMessageBox::Cancel) == QMessageBox::Discard) {
165 event->accept();175 event->accept();
166 } else {176 } else {
167 event->ignore();177 event->ignore();
@@ -172,19 +182,19 @@ void ScriptEditorWindow::updateScriptNameOrStatus() { · 4 unmodified lines
172 ScriptEditorWidget* source = (ScriptEditorWidget*)QObject::sender();182 ScriptEditorWidget* source = (ScriptEditorWidget*)QObject::sender();
173 QString modifiedStar = (source->isModified()?"*":"");183 QString modifiedStar = (source->isModified()?"*":"");
174 if (source->getScriptName().length() > 0) {184 if (source->getScriptName().length() > 0) {
175 for (int i = 0; i < ui->tabWidget->count(); i++){185 for (int i = 0; i < _ScriptEditorWindowUI->tabWidget->count(); i++){
176 if (ui->tabWidget->widget(i) == source) {186 if (_ScriptEditorWindowUI->tabWidget->widget(i) == source) {
177 ui->tabWidget->setTabText(i,modifiedStar+QFileInfo(source->getScriptName()).fileName());187 _ScriptEditorWindowUI->tabWidget->setTabText(i,modifiedStar + QFileInfo(source->getScriptName()).fileName());
178 ui->tabWidget->setTabToolTip(i, source->getScriptName());188 _ScriptEditorWindowUI->tabWidget->setTabToolTip(i, source->getScriptName());
179 }189 }
180 }190 }
181 }191 }
182 192
183 if (ui->tabWidget->currentWidget() == source) {193 if (_ScriptEditorWindowUI->tabWidget->currentWidget() == source) {
184 if (source->getScriptName().length() > 0) {194 if (source->getScriptName().length() > 0) {
185 this->setWindowTitle("Script Editor ["+source->getScriptName()+modifiedStar+"]");195 this->setWindowTitle("Script Editor [" + source->getScriptName() + modifiedStar + "]");
186 } else {196 } else {
187 this->setWindowTitle("Script Editor [New script"+modifiedStar+"]");197 this->setWindowTitle("Script Editor [New script" + modifiedStar + "]");
188 }198 }
189 }199 }
190}200}