# # # patch "guitone/guitone.pro" # from [93ca723e7e38213ddaadf77e761e5369c43041e0] # to [2c8b0b11f17abe08d4cd7dccfe949533fea78d3c] # # patch "guitone/res/i18n/guitone_de.ts" # from [9857927823e1d6a0339b531c120dcaadd22d25e9] # to [937a8f5b866eb89c76155a55c1c51c5efa2e2e3a] # # patch "guitone/src/model/AutomateCommand.cpp" # from [c25dc1c3acffdb6a330a5d4a45dc00333cc2e9dd] # to [f1acde5b3234c2f477d2fd190221055e20ccc3ad] # # patch "guitone/src/model/AutomateCommand.h" # from [acf4168b70c80fe599fc74d6bd2e64cc44412ae1] # to [64acc51ae628a094660e8a49916ee11352451187] # # patch "guitone/src/model/Certs.cpp" # from [e30b7cdd40723001a320f3645689be622eff148a] # to [34ffd07b2aae645acd8c2c46d8696ede4f8bde3c] # # patch "guitone/src/model/Certs.h" # from [f25270857da47be427cee705d426ff5f03d01d48] # to [d530b1b1fd84f50d3180d08034d1b2eeb72b2bf9] # # patch "guitone/src/model/Select.cpp" # from [dc17454cfa51773295dc9cf50bf670f63dcda563] # to [a69351d2de4fe4975927fffe06da306ed4c53b43] # # patch "guitone/src/model/Select.h" # from [b7da22c0c0cae473dc241336da764bf8428e9686] # to [c41074d1be0f96815391e9d2eeee0b4db373c51c] # # patch "guitone/src/monotone/Monotone.cpp" # from [1ab81b48da94ed7993c88c092d5bddfd92ce5f1d] # to [e46baa15905d582cd152e30187b73f4020243a58] # # patch "guitone/src/view/dialogs/SwitchWorkspaceRevision.cpp" # from [90124578b08ddf3d7cf83e3404b664dc753795af] # to [bd0ad69fbb460fbd87dcb1af104d4b0e82818402] # # patch "guitone/src/view/dialogs/SwitchWorkspaceRevision.h" # from [10092b56c83276560bfd0fb5cfcfe1c4c6923c36] # to [3ead290c3657c84b319bbffe4439e142a97ccf6c] # # patch "guitone/src/view/dialogs/ui_KeyManagment.h" # from [73c58ee13876e13397f97b060f0ec4bc612719b6] # to [e532d9092f7dc09f389efb32ab2ad17e3b70e043] # # patch "guitone/src/view/dialogs/ui_ancestry_graph.h" # from [7d7ebe3acf6449cd11fec0e01db71ad1d00bffa4] # to [aa2daf443204b3430afbe09b49664d7118235e79] # # patch "guitone/src/view/dialogs/ui_preferences.h" # from [1cea0d7656eef9387ee0d74c41bac919104d0511] # to [2c312b3e0473774c88af1bbe2609e1949beacaf1] # # patch "guitone/src/view/dialogs/ui_switch_workspace.h" # from [00d61ff24bb16fd78ede1b6480ed984bf3c10904] # to [a518050872fd99c4d0231c1eefa3312ef13011d5] # ============================================================ --- guitone/guitone.pro 93ca723e7e38213ddaadf77e761e5369c43041e0 +++ guitone/guitone.pro 2c8b0b11f17abe08d4cd7dccfe949533fea78d3c @@ -79,10 +79,10 @@ macx { # set this to either ppc or i386 or both if you want to create # a PowerPC, x86 or Universal OSX binary debug { - CONFIG += ppc + CONFIG += x86 } release { - CONFIG += ppc + CONFIG += x86 } # path to the OSX universal SDK QMAKE_MAC_SDK = /Developer/SDKs/MacOSX10.4u.sdk ============================================================ --- guitone/res/i18n/guitone_de.ts 9857927823e1d6a0339b531c120dcaadd22d25e9 +++ guitone/res/i18n/guitone_de.ts 937a8f5b866eb89c76155a55c1c51c5efa2e2e3a @@ -1,39 +1,52 @@ - + + AncestryGraph + + + Ancestry Graph + Historiengraph + + + + Please wait while the graph is being created... + Bitte warten Sie, der Graph wird erzeugt... + + + Attributes - + added hinzugefügt - + dropped entfernt - + changed verändert - + unchanged unverändert - + Key Schlüssel - + Value Wert - + State Status @@ -102,12 +115,12 @@ Guitone - + guitone - a frontend for monotone guitone - ein Frontend für monotone - + &File &Datei @@ -117,7 +130,7 @@ Arbeitsbereich &importieren - + &Quit &Beenden @@ -127,17 +140,17 @@ Bereit - + Select your workspace... Wählen Sie Ihren Arbeitsbereich aus... - + Loading aborted Laden abgebrochen - + Invalid workspace Ungültiger Arbeitsbereich @@ -147,17 +160,17 @@ Das gewählte Verzeichnis ist kein monotone-Arbeitsverzeichnis! - + Inventory could not be read Inventar konnte nicht gelesen werden - + The inventory could not be read. Maybe another task is still running? Das Inventar konnte nicht gelesen werden. Vielleicht läuft noch ein anderer Prozess? - + Loading workspace... Lade Arbeitsbereich... @@ -174,7 +187,7 @@ STRG+Q - + The chosen directory is no monotone workspace! Das gewählte Verzeichnis ist kein monotone-Arbeitsverzeichnis! @@ -184,7 +197,7 @@ &Importiere Arbeitsbereich - + Critical Monotone Error Kritischer monotone-Fehler @@ -195,52 +208,52 @@ STRG+I - + &View &Ansicht - + &Hide ignored files Ignorierte Dateien &verstecken - + &Show ignored files Ignorierte Dateien a&nzeigen - + &Recent Workspaces &Vorherige Arbeitsbereiche - + &Open Workspace Arbeitsbereich &öffnen - + &%1 %2 &%1 %2 - + No previous workspaces available. Keine vorherigen Arbeitsbereiche verfügbar. - + &Workspace &Arbeitsbereich - + &Switch revision Auf andere &Revision aktualisieren - + &Preferences &Einstellungen @@ -250,20 +263,30 @@ &Schlüsselverwaltung - + About &Qt Über &Qt - + &Help &Hilfe + + + &Database + &Datenbank + + + + &Show ancestry graph + &Historiengraph anzeigen + Inventory - + one level up ein Verzeichnis höher @@ -271,12 +294,12 @@ InventoryItem - + File Datei - + Status Status @@ -286,162 +309,167 @@ ein Verzeichnis höher - + Rename Source Quelle für Umbenennen - + Rename Target Ziel für Umbenennen - + Added hinzugefügt - + Dropped entfernt - + Missing fehlend Patched - verändert + verändert - + Unchanged unverändert - + Unknown unbekannt - + Ignored ignoriert + + + Modified + Verändert + InventoryView - + &Add &Hinzufügen - + Ctrl+A Add - + Add to workspace Zum Arbeitsbereich hinzufügen - + &Remove En&tfernen - + Ctrl+R Remove - + Remove from workspace Vom Arbeitsbereich entfernen - + &Commit &Einpflegen - + Ctrl+C Commit - + Commit Einpflegen - + I&gnore Datei &ignorieren - + Ctrl+G Ignore - + Ignore file Datei ignorieren - + &Unignore Datei nicht ign&orieren - + Ctrl+U Unignore - + Unignore file Datei nicht mehr ignorieren - + R&evert &Zurücksetzen - + Ctrl+E Revert - + Revert uncommitted changes Nicht eingepflegte Änderungen verwerfen - + Rena&me Um&benennen - + Ctrl+M Rename - + Rename file Datei umbenennen @@ -552,17 +580,17 @@ korrekt installiert? korrekt installiert? - + Unable to process command '%1': %2 Das Kommando '%1' konnte nicht abgearbeitet werden: %2 - + Monotone failed to start (Code %1). Please configure the path in the Preferences dialog. Monotone konnte nicht gestartet werden (Code %1). Bitte konfigurieren Sie den Pfad im Eintellungsdialog. - + The connection to the monotone process was terminated (Code %1). Check your configuration and reload the current workspace afterwards. Die Verbindung zum monotone-Prozess wurde beendet (Code %1). Prüfen Sie Ihre Konfiguration und laden Sie ggf. den Arbeitsbereich danach neu. @@ -570,32 +598,32 @@ korrekt installiert? Preferences - + Error Fehler - + The entered path is either invalid or points to an older version of monotone. Guitone requires monotone version %1 or later. Der eingegebene Pfad ist entweder ungültig oder zeigt auf eine ältere Version von monotone. Guitone benötigt Version %1 oder neuer. - + Notice Hinweis - + You need to reload your current workspace or restart guitone to use the new monotone binary. Sie müssen Ihren derzeitigen Arbeitsbereich neu laden oder guitone neu starten, um die neuen Einstellungen zu verwenden. - + Choose the monotone executable Wählen Sie die ausführbare Datei von monotone - + Binaries (mtn mtn.exe) Ausführbare Dateien (mtn mtn.exe) @@ -797,7 +825,7 @@ korrekt installiert? Select - + Revision ID Revisions-ID @@ -825,27 +853,27 @@ korrekt installiert? Abbrechen - + Branch Zweig - + Tag Marke - + Author Autor - + Date Datum - + Custom Selbstdefiniert @@ -855,20 +883,30 @@ korrekt installiert? beinhaltet - + Revision Revision - + Revision list could not be read Revisions-Liste konnte nicht gelesen werden - + The revision list could not be read. Maybe another task is still running? Die Liste der Revisionen konnte nicht gelesen werden. Eventuell ist noch ein anderer Prozess aktiv? + + + Invalid selection + Ungültige Auswahl + + + + The given selection could not be processed: %1 + Die eingegebene Auswahl kann nicht ausgeführt werden: %1 + WorkspaceItem ============================================================ --- guitone/src/model/AutomateCommand.cpp c25dc1c3acffdb6a330a5d4a45dc00333cc2e9dd +++ guitone/src/model/AutomateCommand.cpp f1acde5b3234c2f477d2fd190221055e20ccc3ad @@ -40,3 +40,10 @@ bool AutomateCommand::handleError(int re // exit of the main program (see Monotone.cpp for details) return false; } + +void AutomateCommand::clearData() +{ + data = QString(); + reset(); +} + ============================================================ --- guitone/src/model/AutomateCommand.h acf4168b70c80fe599fc74d6bd2e64cc44412ae1 +++ guitone/src/model/AutomateCommand.h 64acc51ae628a094660e8a49916ee11352451187 @@ -35,6 +35,7 @@ public: public: inline void setData(QString output) { data = output; }; + virtual void clearData(); virtual bool handleError(int); protected: @@ -44,7 +45,7 @@ protected slots: QString data; protected slots: - virtual void parseOutput(AutomateCommand*) = 0; + virtual void parseOutput(AutomateCommand*) = 0; }; #endif ============================================================ --- guitone/src/model/Certs.cpp e30b7cdd40723001a320f3645689be622eff148a +++ guitone/src/model/Certs.cpp 34ffd07b2aae645acd8c2c46d8696ede4f8bde3c @@ -234,3 +234,10 @@ QModelIndex Certs::parent(const QModelIn { return QModelIndex(); } + +void Certs::clearData() +{ + certs->clear(); + AutomateCommand::clearData(); +} + ============================================================ --- guitone/src/model/Certs.h f25270857da47be427cee705d426ff5f03d01d48 +++ guitone/src/model/Certs.h d530b1b1fd84f50d3180d08034d1b2eeb72b2bf9 @@ -40,6 +40,7 @@ public: public: Certs(QObject*); virtual ~Certs(); + void clearData(); // needed Qt Model methods QVariant data(const QModelIndex&, int) const; ============================================================ --- guitone/src/model/Select.cpp dc17454cfa51773295dc9cf50bf670f63dcda563 +++ guitone/src/model/Select.cpp a69351d2de4fe4975927fffe06da306ed4c53b43 @@ -54,6 +54,21 @@ bool Select::readSelection(const QString return mtn->triggerCommand(this, cmd); } +bool Select::handleError(int errCode) +{ + // we can't handle syntax and other basic errors + if (errCode == 1) return false; + + // since there is no other indication we assume that errCode 2 + // is always fired if a invalid selector syntax has been given + emit invalidSelection(AutomateCommand::data); + + // restore the normal cursor + qApp->restoreOverrideCursor(); + + return true; +} + void Select::parseOutput(AutomateCommand *caller) { // if not we are the caller, omit the parsing ============================================================ --- guitone/src/model/Select.h b7da22c0c0cae473dc241336da764bf8428e9686 +++ guitone/src/model/Select.h c41074d1be0f96815391e9d2eeee0b4db373c51c @@ -46,9 +46,11 @@ signals: signals: void selectionRead(); - + void invalidSelection(QString); + private: void parseOutput(AutomateCommand*); + bool handleError(int); RevisionList *selRevisions; }; ============================================================ --- guitone/src/monotone/Monotone.cpp 1ab81b48da94ed7993c88c092d5bddfd92ce5f1d +++ guitone/src/monotone/Monotone.cpp e46baa15905d582cd152e30187b73f4020243a58 @@ -238,12 +238,16 @@ void Monotone::readAndParseStdout() lastCaller->setData(output); // check if there was an error during execution - if (retCode > 0 && !lastCaller->handleError(retCode)) + if (retCode > 0) { - // the error could not be handled by the caller - // so we have no other choice but try a clean exit here + // check if the caller can handle the error + if (lastCaller->handleError(retCode)) + { + disconnect(lastCaller); + return; + } - // FIXME: further actions needed here? + // the error could not be handled, exit cleanly isCleanExit = true; process->close(); ============================================================ --- guitone/src/view/dialogs/SwitchWorkspaceRevision.cpp 90124578b08ddf3d7cf83e3404b664dc753795af +++ guitone/src/view/dialogs/SwitchWorkspaceRevision.cpp bd0ad69fbb460fbd87dcb1af104d4b0e82818402 @@ -67,6 +67,12 @@ SwitchWorkspaceRevision::SwitchWorkspace certsModel, SLOT(readCerts(const QModelIndex &)) ); + // handle selector errors + connect( + selectorModel, SIGNAL(invalidSelection(QString)), + this, SLOT(handleInvalidSelection(QString)) + ); + // disable the OK button unless we have a valid selected revision okButton->setEnabled(false); @@ -84,7 +90,7 @@ void SwitchWorkspaceRevision::triggerRev if (!selectorModel->readSelection(selector)) { - QMessageBox::information( + QMessageBox::warning( this, tr("Revision list could not be read"), tr("The revision list could not be read. Maybe another task is still running?"), @@ -92,8 +98,21 @@ void SwitchWorkspaceRevision::triggerRev ); return; } + + // remove any previously set data in this model and update the view + certsModel->clearData(); } +void SwitchWorkspaceRevision::handleInvalidSelection(QString error) +{ + QMessageBox::warning( + this, + tr("Invalid selection"), + tr("The given selection could not be processed: %1").arg(error), + QMessageBox::Ok + ); +} + void SwitchWorkspaceRevision::enableDisableOkButton(const QModelIndex & index) { if (!index.isValid()) ============================================================ --- guitone/src/view/dialogs/SwitchWorkspaceRevision.h 10092b56c83276560bfd0fb5cfcfe1c4c6923c36 +++ guitone/src/view/dialogs/SwitchWorkspaceRevision.h 3ead290c3657c84b319bbffe4439e142a97ccf6c @@ -42,6 +42,7 @@ private slots: private slots: void triggerRevisionSearch(); + void handleInvalidSelection(QString); void enableDisableOkButton(const QModelIndex&); void accept(); void reject(); ============================================================ --- guitone/src/view/dialogs/ui_KeyManagment.h 73c58ee13876e13397f97b060f0ec4bc612719b6 +++ guitone/src/view/dialogs/ui_KeyManagment.h e532d9092f7dc09f389efb32ab2ad17e3b70e043 @@ -1,8 +1,8 @@ /******************************************************************************** ** Form generated from reading ui file 'KeyManagment.ui' ** -** Created: Thu Oct 19 17:27:01 2006 -** by: Qt User Interface Compiler version 4.2.0 +** Created: Sun Nov 5 00:18:53 2006 +** by: Qt User Interface Compiler version 4.2.1 ** ** WARNING! All changes made in this file will be lost when recompiling ui file! ********************************************************************************/ ============================================================ --- guitone/src/view/dialogs/ui_ancestry_graph.h 7d7ebe3acf6449cd11fec0e01db71ad1d00bffa4 +++ guitone/src/view/dialogs/ui_ancestry_graph.h aa2daf443204b3430afbe09b49664d7118235e79 @@ -1,8 +1,8 @@ /******************************************************************************** ** Form generated from reading ui file 'ancestry_graph.ui' ** -** Created: Thu Oct 19 17:27:01 2006 -** by: Qt User Interface Compiler version 4.2.0 +** Created: Sun Nov 5 00:18:53 2006 +** by: Qt User Interface Compiler version 4.2.1 ** ** WARNING! All changes made in this file will be lost when recompiling ui file! ********************************************************************************/ ============================================================ --- guitone/src/view/dialogs/ui_preferences.h 1cea0d7656eef9387ee0d74c41bac919104d0511 +++ guitone/src/view/dialogs/ui_preferences.h 2c312b3e0473774c88af1bbe2609e1949beacaf1 @@ -1,8 +1,8 @@ /******************************************************************************** ** Form generated from reading ui file 'preferences.ui' ** -** Created: Thu Oct 19 17:27:01 2006 -** by: Qt User Interface Compiler version 4.2.0 +** Created: Sun Nov 5 00:18:53 2006 +** by: Qt User Interface Compiler version 4.2.1 ** ** WARNING! All changes made in this file will be lost when recompiling ui file! ********************************************************************************/ ============================================================ --- guitone/src/view/dialogs/ui_switch_workspace.h 00d61ff24bb16fd78ede1b6480ed984bf3c10904 +++ guitone/src/view/dialogs/ui_switch_workspace.h a518050872fd99c4d0231c1eefa3312ef13011d5 @@ -1,8 +1,8 @@ /******************************************************************************** ** Form generated from reading ui file 'switch_workspace.ui' ** -** Created: Thu Oct 19 17:27:01 2006 -** by: Qt User Interface Compiler version 4.2.0 +** Created: Sun Nov 5 00:18:53 2006 +** by: Qt User Interface Compiler version 4.2.1 ** ** WARNING! All changes made in this file will be lost when recompiling ui file! ********************************************************************************/