confirmation dialog when closing main window with open games

This commit is contained in:
Max-Wilhelm Bruker 2010-04-01 15:54:51 +02:00
parent e7c4f75921
commit 7afb866961
4 changed files with 63 additions and 35 deletions

View file

@ -31,6 +31,7 @@ public:
void retranslateUi(); void retranslateUi();
void start(Client *_client); void start(Client *_client);
void stop(); void stop();
int getGameCount() const { return gameTabs.size(); }
signals: signals:
void setMenu(QMenu *menu); void setMenu(QMenu *menu);
private slots: private slots:

View file

@ -207,8 +207,15 @@ MainWindow::MainWindow(QWidget *parent)
resize(900, 700); resize(900, 700);
} }
void MainWindow::closeEvent(QCloseEvent */*event*/) void MainWindow::closeEvent(QCloseEvent *event)
{ {
if (tabSupervisor->getGameCount()) {
if (QMessageBox::question(this, tr("Are you sure?"), tr("There are still open games. Are you sure you want to quit?"), QMessageBox::Yes | QMessageBox::No, QMessageBox::No) == QMessageBox::No) {
event->ignore();
return;
}
}
event->accept();
delete tabSupervisor; delete tabSupervisor;
} }

View file

@ -925,7 +925,7 @@
<context> <context>
<name>GameView</name> <name>GameView</name>
<message> <message>
<location filename="../src/gameview.cpp" line="15"/> <location filename="../src/gameview.cpp" line="16"/>
<source>Esc</source> <source>Esc</source>
<translation>Esc</translation> <translation>Esc</translation>
</message> </message>
@ -1084,6 +1084,16 @@
<source>&amp;Disconnect</source> <source>&amp;Disconnect</source>
<translation>Verbindung &amp;trennen</translation> <translation>Verbindung &amp;trennen</translation>
</message> </message>
<message>
<location filename="../src/window_main.cpp" line="213"/>
<source>Are you sure?</source>
<translation>Sind Sie sicher?</translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="213"/>
<source>There are still open games. Are you sure you want to quit?</source>
<translation>Es gibt noch offene Spiele. Wollen Sie das Programm wirklich beenden?</translation>
</message>
<message> <message>
<source>&amp;Restart game...</source> <source>&amp;Restart game...</source>
<translation type="obsolete">Spiel neu sta&amp;rten...</translation> <translation type="obsolete">Spiel neu sta&amp;rten...</translation>
@ -1784,57 +1794,57 @@
<context> <context>
<name>PhasesToolbar</name> <name>PhasesToolbar</name>
<message> <message>
<location filename="../src/phasestoolbar.cpp" line="115"/> <location filename="../src/phasestoolbar.cpp" line="117"/>
<source>Untap step</source> <source>Untap step</source>
<translation>Enttappsegment</translation> <translation>Enttappsegment</translation>
</message> </message>
<message> <message>
<location filename="../src/phasestoolbar.cpp" line="116"/> <location filename="../src/phasestoolbar.cpp" line="118"/>
<source>Upkeep step</source> <source>Upkeep step</source>
<translation>Versorgungssegment</translation> <translation>Versorgungssegment</translation>
</message> </message>
<message> <message>
<location filename="../src/phasestoolbar.cpp" line="117"/> <location filename="../src/phasestoolbar.cpp" line="119"/>
<source>Draw step</source> <source>Draw step</source>
<translation>Ziehsegment</translation> <translation>Ziehsegment</translation>
</message> </message>
<message> <message>
<location filename="../src/phasestoolbar.cpp" line="118"/> <location filename="../src/phasestoolbar.cpp" line="120"/>
<source>First main phase</source> <source>First main phase</source>
<translation>erste Hauptphase</translation> <translation>erste Hauptphase</translation>
</message> </message>
<message> <message>
<location filename="../src/phasestoolbar.cpp" line="119"/> <location filename="../src/phasestoolbar.cpp" line="121"/>
<source>Beginning of combat step</source> <source>Beginning of combat step</source>
<translation>Anfangssegment der Kampfphase</translation> <translation>Anfangssegment der Kampfphase</translation>
</message> </message>
<message> <message>
<location filename="../src/phasestoolbar.cpp" line="120"/> <location filename="../src/phasestoolbar.cpp" line="122"/>
<source>Declare attackers step</source> <source>Declare attackers step</source>
<translation>Angreifer-Deklarieren-Segment</translation> <translation>Angreifer-Deklarieren-Segment</translation>
</message> </message>
<message> <message>
<location filename="../src/phasestoolbar.cpp" line="121"/> <location filename="../src/phasestoolbar.cpp" line="123"/>
<source>Declare blockers step</source> <source>Declare blockers step</source>
<translation>Blocker-Deklarieren-Segment</translation> <translation>Blocker-Deklarieren-Segment</translation>
</message> </message>
<message> <message>
<location filename="../src/phasestoolbar.cpp" line="122"/> <location filename="../src/phasestoolbar.cpp" line="124"/>
<source>Combat damage step</source> <source>Combat damage step</source>
<translation>Kampfschadenssegment</translation> <translation>Kampfschadenssegment</translation>
</message> </message>
<message> <message>
<location filename="../src/phasestoolbar.cpp" line="123"/> <location filename="../src/phasestoolbar.cpp" line="125"/>
<source>End of combat step</source> <source>End of combat step</source>
<translation>Endsegment der Kampfphase</translation> <translation>Endsegment der Kampfphase</translation>
</message> </message>
<message> <message>
<location filename="../src/phasestoolbar.cpp" line="124"/> <location filename="../src/phasestoolbar.cpp" line="126"/>
<source>Second main phase</source> <source>Second main phase</source>
<translation>zweite Hauptphase</translation> <translation>zweite Hauptphase</translation>
</message> </message>
<message> <message>
<location filename="../src/phasestoolbar.cpp" line="125"/> <location filename="../src/phasestoolbar.cpp" line="127"/>
<source>End of turn step</source> <source>End of turn step</source>
<translation>Ende-des-Zuges-Segment</translation> <translation>Ende-des-Zuges-Segment</translation>
</message> </message>
@ -2176,12 +2186,12 @@
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="430"/> <location filename="../src/player.cpp" line="430"/>
<location filename="../src/player.cpp" line="965"/> <location filename="../src/player.cpp" line="964"/>
<source>Number:</source> <source>Number:</source>
<translation>Anzahl:</translation> <translation>Anzahl:</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="965"/> <location filename="../src/player.cpp" line="964"/>
<source>Set counters</source> <source>Set counters</source>
<translation>Setze Zählmarken</translation> <translation>Setze Zählmarken</translation>
</message> </message>
@ -2285,17 +2295,17 @@
<context> <context>
<name>RemoteDeckList_TreeModel</name> <name>RemoteDeckList_TreeModel</name>
<message> <message>
<location filename="../src/remotedecklist_treewidget.cpp" line="153"/> <location filename="../src/remotedecklist_treewidget.cpp" line="157"/>
<source>Name</source> <source>Name</source>
<translation>Name</translation> <translation>Name</translation>
</message> </message>
<message> <message>
<location filename="../src/remotedecklist_treewidget.cpp" line="154"/> <location filename="../src/remotedecklist_treewidget.cpp" line="158"/>
<source>ID</source> <source>ID</source>
<translation>ID</translation> <translation>ID</translation>
</message> </message>
<message> <message>
<location filename="../src/remotedecklist_treewidget.cpp" line="155"/> <location filename="../src/remotedecklist_treewidget.cpp" line="159"/>
<source>Upload time</source> <source>Upload time</source>
<translation>Änderungsdatum</translation> <translation>Änderungsdatum</translation>
</message> </message>

View file

@ -552,7 +552,7 @@
<context> <context>
<name>GameView</name> <name>GameView</name>
<message> <message>
<location filename="../src/gameview.cpp" line="15"/> <location filename="../src/gameview.cpp" line="16"/>
<source>Esc</source> <source>Esc</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -737,6 +737,16 @@
<source>&amp;Cockatrice</source> <source>&amp;Cockatrice</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../src/window_main.cpp" line="213"/>
<source>Are you sure?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="213"/>
<source>There are still open games. Are you sure you want to quit?</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>MessageLogWidget</name> <name>MessageLogWidget</name>
@ -1107,57 +1117,57 @@
<context> <context>
<name>PhasesToolbar</name> <name>PhasesToolbar</name>
<message> <message>
<location filename="../src/phasestoolbar.cpp" line="115"/> <location filename="../src/phasestoolbar.cpp" line="117"/>
<source>Untap step</source> <source>Untap step</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/phasestoolbar.cpp" line="116"/> <location filename="../src/phasestoolbar.cpp" line="118"/>
<source>Upkeep step</source> <source>Upkeep step</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/phasestoolbar.cpp" line="117"/> <location filename="../src/phasestoolbar.cpp" line="119"/>
<source>Draw step</source> <source>Draw step</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/phasestoolbar.cpp" line="118"/> <location filename="../src/phasestoolbar.cpp" line="120"/>
<source>First main phase</source> <source>First main phase</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/phasestoolbar.cpp" line="119"/> <location filename="../src/phasestoolbar.cpp" line="121"/>
<source>Beginning of combat step</source> <source>Beginning of combat step</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/phasestoolbar.cpp" line="120"/> <location filename="../src/phasestoolbar.cpp" line="122"/>
<source>Declare attackers step</source> <source>Declare attackers step</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/phasestoolbar.cpp" line="121"/> <location filename="../src/phasestoolbar.cpp" line="123"/>
<source>Declare blockers step</source> <source>Declare blockers step</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/phasestoolbar.cpp" line="122"/> <location filename="../src/phasestoolbar.cpp" line="124"/>
<source>Combat damage step</source> <source>Combat damage step</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/phasestoolbar.cpp" line="123"/> <location filename="../src/phasestoolbar.cpp" line="125"/>
<source>End of combat step</source> <source>End of combat step</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/phasestoolbar.cpp" line="124"/> <location filename="../src/phasestoolbar.cpp" line="126"/>
<source>Second main phase</source> <source>Second main phase</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/phasestoolbar.cpp" line="125"/> <location filename="../src/phasestoolbar.cpp" line="127"/>
<source>End of turn step</source> <source>End of turn step</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1463,7 +1473,7 @@
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="430"/> <location filename="../src/player.cpp" line="430"/>
<location filename="../src/player.cpp" line="965"/> <location filename="../src/player.cpp" line="964"/>
<source>Number:</source> <source>Number:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1488,7 +1498,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="965"/> <location filename="../src/player.cpp" line="964"/>
<source>Set counters</source> <source>Set counters</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1552,17 +1562,17 @@
<context> <context>
<name>RemoteDeckList_TreeModel</name> <name>RemoteDeckList_TreeModel</name>
<message> <message>
<location filename="../src/remotedecklist_treewidget.cpp" line="153"/> <location filename="../src/remotedecklist_treewidget.cpp" line="157"/>
<source>Name</source> <source>Name</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/remotedecklist_treewidget.cpp" line="154"/> <location filename="../src/remotedecklist_treewidget.cpp" line="158"/>
<source>ID</source> <source>ID</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/remotedecklist_treewidget.cpp" line="155"/> <location filename="../src/remotedecklist_treewidget.cpp" line="159"/>
<source>Upload time</source> <source>Upload time</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>