# # # delete "guitone/res/dialogs/ancestry_graph.ui" # # rename "guitone/res/dialogs" # to "guitone/res/forms" # # rename "guitone/src/view/Guitone.cpp" # to "guitone/src/view/MainWindow.cpp" # # rename "guitone/src/view/Guitone.h" # to "guitone/src/view/MainWindow.h" # # add_file "guitone/res/forms/main_window.ui" # content [ca62158d2f56feb368e19f922bfbd8918ecdf17d] # # patch ".mtn-ignore" # from [9b4622f3f7b39d63d1f86d9aa9bd9c616cac54e3] # to [c5f2049b1e1835cb2dae0227264e739966b30248] # # patch "guitone/guitone.pro" # from [4c2dd9753ce1a6aab8f48bcffe1655e75eb52aa4] # to [733434a4d5fc2244fc090d7a268e18401edea2aa] # # patch "guitone/res/forms/key_management.ui" # from [11be469f0548a6d971dc0ca88e2fe9357681e21e] # to [4ec032a6f33b41bf455574bbe9b715fe8e332098] # # patch "guitone/res/forms/switch_workspace.ui" # from [bbec0961072d0bd0585a39a7b2810f6e3e0b7b3a] # to [61995e95a018f3cc7e11bae73dc685d6f4fdb100] # # patch "guitone/res/i18n/guitone_de.ts" # from [02ea254dfef6b8546f1d2beef94a4f21a8df6deb] # to [a2b57a5346de0c8b0c2839034b50997b93feba2b] # # patch "guitone/src/main.cpp" # from [4ffc63e768c96cee761b318d8477e3377a4f6489] # to [f4cd8cb7f906ee862d0b7c17686085013f0a84c9] # # patch "guitone/src/model/Attributes.cpp" # from [106407b09b186aabe60e7065a7a98b9b743934d2] # to [2736d85091cfa55c9bde2115dbdfac13407b2782] # # patch "guitone/src/model/AutomateCommand.h" # from [f7ded2d43c8532e573a48f191945c3adff08bcee] # to [471d5264df2c502a00e29d8d724f6d1da8213094] # # patch "guitone/src/model/Branches.cpp" # from [28cdf3be5042f184093660b5072fd4e1ae7568ce] # to [f871e83d1ef6e207b411ff7e24a303266a50a781] # # patch "guitone/src/model/Certs.cpp" # from [1473edd0b790a0f3947f3e92a8776830096d3644] # to [74b6fcd2dad170e58a04025813911b6a5b15400c] # # patch "guitone/src/model/ContentDiff.cpp" # from [7956135e454f451f5a943bd5521aae4c9f7bde4d] # to [1fe15a69c22cc20443651b87bd7f0a1d3142421c] # # patch "guitone/src/model/ContentDiff.h" # from [76f5f369923be30371154dedc3a5ec7fefd4f157] # to [67cc6a716be264f9428833707112b91e90fe22a5] # # patch "guitone/src/model/GetFile.cpp" # from [85d2c032b2f1f3a694ad55319fce154311520ffb] # to [1eaeed5e90e1fc01bc560e080ff67073c5697794] # # patch "guitone/src/model/GetFile.h" # from [62ffae7481e42c0affce2dc0fc5778d69f2c085e] # to [0cbe01fb9d0371b992a051c4442ffbf95e83d270] # # patch "guitone/src/model/Inventory.cpp" # from [45204bef5f64bbaa813299524623a7bf64d711fd] # to [a7ae242cbeae00663b494bf579ccc7b2c51826b0] # # patch "guitone/src/model/InventoryProxyModel.cpp" # from [207c67ec7e00028a1685fb78ec373917eb60356b] # to [0a6bcce2838841f907aeda03006b9f8d13a2c0b7] # # patch "guitone/src/model/InventoryProxyModel.h" # from [641f56aecdec3c5c5d170f7b28dc379a392c35e4] # to [6e67d2896fbe64b69530829c33407785583ef608] # # patch "guitone/src/model/Keys.cpp" # from [14aac7d06caf268b03e6725bc8f3cb4abaa74c9e] # to [f5ec005c6c196fe4c0d50df303f620821fc3b229] # # patch "guitone/src/model/Select.cpp" # from [d9a7d10977ce65d4590e7a062074e175c80a79a0] # to [a5f9f106a32d03bbc93cbe92b280dffc6136e7a0] # # patch "guitone/src/model/Tags.cpp" # from [eccc24f182917ff3761998124c2b96e7f0f381c4] # to [9a2312ba26213b51a6eb5970ba9aa075698a45de] # # patch "guitone/src/monotone/Monotone.cpp" # from [dce32040f36eb676c48569f9746a739bf0c423d3] # to [4c3148a9a461e31c0611e7c6a1313a994050ce33] # # patch "guitone/src/util/IconProvider.cpp" # from [4a172e07e8b4e83ef65d73cec3751f5c7371d61d] # to [b477c36ea248717a82d926af56f22fa6ca685a92] # # patch "guitone/src/view/AttributesView.cpp" # from [2a0c4aa00d943778a75ad39e34edb297f982333d] # to [622bd8e562abeaa8299ecac4d3a725a0f8eb73ae] # # patch "guitone/src/view/AttributesView.h" # from [0df660bf62b600cb11b756b8f2c578c4e70b6112] # to [6331d48f84cd19a9389ea33efd8e11278867b3eb] # # patch "guitone/src/view/DiffStatusView.cpp" # from [d959c820dae2fe20e234f55bae89340f4b3b0a20] # to [220dc080d58073f2c4265f0ee80e51cc11bc4178] # # patch "guitone/src/view/DiffStatusView.h" # from [20ff76f2cd2dad267879768b896672cbc66ab964] # to [fe66722b8b8fdf7076471e7e14c1c5d135aa4ada] # # patch "guitone/src/view/DiffView.cpp" # from [bff1c9cb3e9a2c285c95c92a98cbe744a1fef687] # to [551606bd2d60a212ccd64d99b1f527111a26a30e] # # patch "guitone/src/view/InventoryView.cpp" # from [e4be7c3162cf3f29de547bf6bf00fcc028b9c224] # to [082453d2f7dad1e28066e2d035acaeae8e5adfa4] # # patch "guitone/src/view/InventoryView.h" # from [4be916c896d8a6131f74b44eef8b4fb1a78cfdde] # to [0fa7c01c0eba891531c4a7aced4c45a8801c4729] # # patch "guitone/src/view/MainWindow.cpp" # from [e0d4c9b776a12653b75c9efdfb26c04388cc8926] # to [f2ac93f431c109b163a220a93dbefbb0edee235f] # # patch "guitone/src/view/MainWindow.h" # from [a992df3eacff5be575b93557047ca236adc2a51a] # to [d319300af10d673c50304bee327ec16085dde236] # # patch "guitone/src/view/Splitter.cpp" # from [95757ad05f6665e2ad79fb8480ff26f6c3fcda88] # to [24424aaae2510522e44ef3684caaa406b676ea9f] # # patch "guitone/src/view/TreeView.cpp" # from [bfc2dd43c021e97628605eb1118f8ae7dc919539] # to [9c24a892ef2735cebbac91ed6d8adea6b1473302] # # patch "guitone/src/view/dialogs/FileDiff.cpp" # from [c6f55eaf9f12040e496d8c079c9e6ca406eee6a8] # to [3805dd39b81bd73035563f2b145101bcd558b4c0] # # patch "guitone/src/view/dialogs/FileDiff.h" # from [0a6a2befd7b13fa6c49ee439f1cd364bd3d3e7c8] # to [59f2323c49ddba5388415b3b8afb810cdc6d7f6d] # # patch "guitone/src/view/dialogs/GenerateKeypair.cpp" # from [07e70c82a38fa7c833ae5d90563028d2fb68c23d] # to [63f31288290d16e135a90d2c75e54a81380746d6] # # patch "guitone/src/view/dialogs/KeyManagement.cpp" # from [f5f5ee8b5c5836cd633e4395af8aad29e1d72c18] # to [07a51fdecf557bccedf0f38f64d2466055fc8670] # # patch "guitone/src/view/dialogs/KeyManagement.h" # from [9bb9738009da24459af5fe634e8a200bcab6d0c0] # to [f83f2cabb4f56acf54265543de839729d78c5818] # # patch "guitone/src/view/dialogs/Preferences.cpp" # from [0baa429ddd2cc4f87bd4a81edc6ee5f24f386ccd] # to [379b849af2296a5953c11970c13e07b9b3fec0de] # # patch "guitone/src/view/dialogs/RevisionDiff.cpp" # from [8e5f7cfdc82f4ea811c72387596b40711d45ac57] # to [a19d948fb83fa9ec85d4cc46b9110b4d1804ed56] # # patch "guitone/src/view/dialogs/RevisionDiff.h" # from [30a57d9b293fa8ea65371907ef3d5ff0a5996e44] # to [be23ef4825aefd8431e4aa92719d685fbf3bb57c] # # patch "guitone/src/view/dialogs/SwitchWorkspaceRevision.cpp" # from [d05cbd2c11e69ea1bed9e1c6664c5d29af6fe16f] # to [44810b7a7d2557ac288a731fa48af1c0be056f2a] # # patch "guitone/src/view/dialogs/SwitchWorkspaceRevision.h" # from [0c450243950807dc31146792a14ad442bf38fa30] # to [5a437a9ea1b711147196df86454b3eda9deb1c1b] # ============================================================ --- guitone/res/forms/main_window.ui ca62158d2f56feb368e19f922bfbd8918ecdf17d +++ guitone/res/forms/main_window.ui ca62158d2f56feb368e19f922bfbd8918ecdf17d @@ -0,0 +1,310 @@ + + MainWindow + + + + 0 + 0 + 800 + 600 + + + + guitone - a frontend for monotone + + + + + 9 + + + 6 + + + + + Qt::Horizontal + + + + + Qt::Vertical + + + + + + + + + + + + 0 + 0 + 800 + 22 + + + + + Help + + + + + + + File + + + + Recent Workspaces + + + + + + + + + + + + + Workspace + + + + + + + View + + + + Show + + + true + + + + + + + + + + + + + + + + + + + + + + + + + Open Workspace + + + Ctrl+O + + + + + No previous workspaces available. + + + No previous workspaces available. + + + No previous workspaces available. + + + + + Preferences.... + + + Ctrl+P + + + QAction::PreferencesRole + + + + + Quit + + + Ctrl+Q + + + QAction::QuitRole + + + + + Hide ignored files + + + Ctrl+H + + + + + All files + + + A + + + + + All changed files + + + C + + + + + Patched files + + + P + + + + + Added files + + + N + + + + + Removed files + + + D + + + + + Renamed files + + + R + + + + + Missing files + + + M + + + + + Unknown files + + + U + + + + + Expand tree + + + Ctrl+T + + + + + Switch revision + + + Ctrl+R + + + + + Key management + + + Ctrl+K + + + + + About Qt + + + QAction::AboutQtRole + + + + + About guitone + + + QAction::AboutRole + + + + + Ignored files + + + I + + + + + + AttributesView + QTreeView +
../AttributesView.h
+
+ + InventoryView + QTreeView +
../InventoryView.h
+
+ + Splitter + QSplitter +
../Splitter.h
+
+
+ + + + actionQuit + triggered() + MainWindow + close() + + + 399 + 299 + + + 399 + 299 + + + + +
============================================================ --- .mtn-ignore 9b4622f3f7b39d63d1f86d9aa9bd9c616cac54e3 +++ .mtn-ignore c5f2049b1e1835cb2dae0227264e739966b30248 @@ -1,7 +1,6 @@ Info.plist Makefile .*\.xcodeproj Info.plist -guitone\/src\/view\/dialogs/ui_.*\.h guitone\/res\/i18n\/.+\.qm guitone\/tmp.* guitone\/bin/.* ============================================================ --- guitone/guitone.pro 4c2dd9753ce1a6aab8f48bcffe1655e75eb52aa4 +++ guitone/guitone.pro 733434a4d5fc2244fc090d7a268e18401edea2aa @@ -1,11 +1,18 @@ # # Common configuration # -TEMPLATE = app -TARGET = guitone -CONFIG += qt debug # precompile_header -HEADERS += src/view/Guitone.h \ +TEMPLATE = app +TARGET = guitone +CONFIG += qt debug + +INCLUDEPATH = src/ \ + src/view \ + src/view/dialogs \ + src/model \ + src/monotone \ + src/util +HEADERS += src/view/MainWindow.h \ src/view/TreeView.h \ src/view/Splitter.h \ src/view/InventoryView.h \ @@ -39,7 +46,7 @@ HEADERS += src/view/Guitone.h \ src/util/DiffParser.h \ src/util/SignalWaiter.h \ src/util/OpenFile.h -SOURCES += src/view/Guitone.cpp \ +SOURCES += src/view/MainWindow.cpp \ src/view/TreeView.cpp \ src/view/Splitter.cpp \ src/view/InventoryView.cpp \ @@ -74,15 +81,17 @@ SOURCES += src/view/Guitone.cpp \ src/util/SignalWaiter.cpp \ src/util/OpenFile.cpp \ src/main.cpp -FORMS += res/dialogs/switch_workspace.ui \ - res/dialogs/preferences.ui \ - res/dialogs/ancestry_graph.ui \ - res/dialogs/file_diff.ui \ - res/dialogs/revision_diff.ui \ - res/dialogs/key_management.ui \ - res/dialogs/generate_keypair.ui \ - res/dialogs/about.ui -UI_DIR = src/view/dialogs + +FORMS += res/forms/switch_workspace.ui \ + res/forms/preferences.ui \ + res/forms/file_diff.ui \ + res/forms/revision_diff.ui \ + res/forms/key_management.ui \ + res/forms/generate_keypair.ui \ + res/forms/about.ui \ + res/forms/main_window.ui +UI_DIR = tmp + OBJECTS_DIR = tmp MOC_DIR = tmp DESTDIR = bin ============================================================ --- guitone/res/forms/key_management.ui 11be469f0548a6d971dc0ca88e2fe9357681e21e +++ guitone/res/forms/key_management.ui 4ec032a6f33b41bf455574bbe9b715fe8e332098 @@ -88,7 +88,7 @@ TreeView QTreeView -
../TreeView.h
+
TreeView.h
============================================================ --- guitone/res/forms/switch_workspace.ui bbec0961072d0bd0585a39a7b2810f6e3e0b7b3a +++ guitone/res/forms/switch_workspace.ui 61995e95a018f3cc7e11bae73dc685d6f4fdb100 @@ -141,14 +141,14 @@ TreeView QTreeView -
../TreeView.h
+
TreeView.h
0
Splitter QSplitter -
../Splitter.h
+
Splitter.h
0
============================================================ --- guitone/res/i18n/guitone_de.ts 02ea254dfef6b8546f1d2beef94a4f21a8df6deb +++ guitone/res/i18n/guitone_de.ts a2b57a5346de0c8b0c2839034b50997b93feba2b @@ -16,30 +16,17 @@ AboutDialog - + About guitone Über guitone - + Close Schließen - AncestryGraph - - - Ancestry Graph - Historiengraph - - - - Please wait while the graph is being created... - Bitte warten Sie, der Graph wird erzeugt... - - - Attributes @@ -164,32 +151,32 @@ FileDiffDialog - + File differences of "%1" Unterschiede in der Datei "%1" - + Show Version Zeige Version - + Left links - + Right rechts - + Both beide - + Close Schließen @@ -197,22 +184,22 @@ GenerateKeypair - + Generate new Keypair Neues Schlüsselpaar erzeugen - + Key ID (e.g. email) Schlüssel-ID (z.B. E-Mail) - + Password Passwort - + Repeat password Passwort wiederholen @@ -237,16 +224,6 @@ Die eingegebenen Passwörter stimmen nicht überein. - - Error executing command - Fehler bei der Kommandoausführung - - - - Unable to execute key creation command - maybe another process is still running? - Kann Kommando zur Schlüsselerzeugung nicht ausführen - eventuell läuft noch ein anderer Prozess? - - Error creating keypair Fehler beim Erzeugen des Schlüsselpaares @@ -272,11 +249,6 @@ GetFile - - File is binary. - Datei ist eine Binärdatei. - - Line Zeile @@ -288,305 +260,6 @@ - Guitone - - - guitone - a frontend for monotone - guitone - ein Frontend für monotone - - - - &File - &Datei - - - - &Import Sandbox... - Arbeitsbereich &importieren - - - - &Quit - &Beenden - - - - Ready - Bereit - - - - Select your workspace... - Wählen Sie Ihren Arbeitsbereich aus... - - - - Loading aborted - Laden abgebrochen - - - - Invalid workspace - Ungültiger Arbeitsbereich - - - - The chosen directory is no monotone sandbox! - 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... - - - - Ctrl+I - Import - STRG+I - - - - Ctrl+Q - Quit - STRG+Q - - - - The chosen directory is no monotone workspace! - Das gewählte Verzeichnis ist kein monotone-Arbeitsverzeichnis! - - - - &Import Working Directory... - &Importiere Arbeitsbereich - - - - Critical Monotone Error - Kritischer monotone-Fehler - - - - Ctrl+I - File|Import - 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 - A&rbeitsbereich - - - - &Switch revision - Auf andere &Revision aktualisieren - - - - &Preferences - &Einstellungen - - - - &Key Managment - &Schlüsselverwaltung - - - - About &Qt - Über &Qt - - - - &Help - &Hilfe - - - - &Database - Daten&bank - - - - &Show ancestry graph - &Historiengraph anzeigen - - - - &Preferences... - &Einstellungen... - - - - &Key Management - &Schlüsselverwaltung - - - - Unable to execute command - Konnte Kommando nicht ausführen - - - - Unable to execute '%1' - maybe another command is still running? - Konnte '%1' nicht ausführen - eventuell läuft noch ein anderes Kommando? - - - - Error - Fehler - - - - The path to the monotone binary is either invalid or points to an older version of monotone. Guitone requires monotone version %1 or later. - Der Pfad zur ausführbaren Datei von monotone ist entweder ungültig oder zeigt auf eine ältere Version von monotone. Guitone benötigt Version %1 oder neuer. - - - - The path to the monotone binary is either invalid or points to an older version of monotone. Guitone requires monotone version %1 or a monotone with interface version %2 or later. - Der Pfad zur ausführbaren Datei von monotone ist entweder ungültig oder zeigt auf eine ältere Version von monotone. Guitone benötigt monotone Version %1 oder ein monotone mit einer Interface-Version %2 oder neuer. - - - - Hide &ignored files - &Ignorierte Dateien verstecken - - - - Show only &changed files - Zeige nur &geänderte Dateien - - - - Show &ignored files - &Ignorierte Dateien anzeigen - - - - Show &all files - A&lle Dateien anzeigen - - - - Show - Zeige - - - - &All files - &Alle Dateien - - - - All &changed files - Alle &geänderten Dateien - - - - &Patched files - Dateien mit I&nhaltsänderungen - - - - A&dded files - Hin&zugefügte Dateien - - - - R&emoved files - En&tfernte Dateien - - - - &Renamed files - &Umbenannte Dateien - - - - &Missing files - &Fehlende Dateien - - - - &Unknown files - Unbe&kannte Dateien - - - - I&gnored files - I&gnorierte Dateien - - - - E&xpand tree - Baum &aufklappen - - - - Co&llapse tree - Baum zuk&lappen - - - - About &guitone - Über &guitone - - - - Inventory - - - one level up - ein Verzeichnis höher - - - InventoryItem @@ -599,11 +272,6 @@ Status - - one level up - ein Verzeichnis höher - - Rename Source Quelle für Umbenennen @@ -629,11 +297,6 @@ fehlend - - Patched - verändert - - Unchanged unverändert @@ -657,127 +320,127 @@ InventoryView - + &Add &Hinzufügen - + Add to workspace Zum Arbeitsbereich hinzufügen - + &Remove En&tfernen - + Remove from workspace Vom Arbeitsbereich entfernen - + &Commit &Einpflegen - + Commit Einpflegen - + I&gnore Datei &ignorieren - + Ignore file Datei ignorieren - + &Unignore Datei nicht ign&orieren - + Unignore file Datei nicht mehr ignorieren - + R&evert &Zurücksetzen - + Revert uncommitted changes Nicht eingepflegte Änderungen verwerfen - + Rena&me Um&benennen - + Rename file Datei umbenennen - + D&iff U&nterschiede anzeigen - + Diff against base revision Unterschiede im Vergleich zur Basisrevision anzeigen - + &Go into &Wechseln zu - + Go into the directory Wechsle in das Verzeichnis - + &Open &Öffnen - + Open in default program In Standardprogramm öffnen - + Error Fehler - + The file you're trying to open does not exist. Die Datei, die Sie versucht haben zu öffnen, existiert nicht. - + Unable to open files on your platform - please contact the author about this problem. Kann keine Dateien auf Ihrer Plattform öffnen - bitte kontaktieren Sie den Autor über dieses Problem. - + D&iff all Alle U&nterschiede anzeigen - + Show all differences Zeigt Unterschiede in allen Dateien @@ -785,22 +448,17 @@ KeyManagement - + Key Management Schlüsselverwaltung - + Generate Keypair Schlüsselpaar erzeugen - - Show signed Revisions - Zeige signierte Revisionen - - - + Close Schließen @@ -831,54 +489,6 @@ - KeyManagment - - - Key Managment - Schlüsselverwaltung - - - - Hash - Prüfsumme - - - - Name - Name - - - - Pub Loc - Pfad zu öffentl. Schlüssel - - - - Priv Loc - Pfad zu priv. Schlüssel - - - - Generate - Erzeugen - - - - Remove - Entfernen - - - - OK - OK - - - - Cancel - Abbrechen - - - Keys @@ -917,352 +527,384 @@ - Manifest + MainWindow - - Attribute Name - Attributsname + + View + Ansicht - - Attribute Value - Attributswert + + Help + Hilfe - - - Monotone - - Monotone not found - Monotone nicht gefunden + + Workspace + Arbeitsbereich - - Couldn't connect to monotone. Have you installed it properly? - Konnte Verbindung zu Monotone-Prozess nicht herstellen. Ist das Programm korrekt installiert? + + File + Datei - - Process exited - Prozess beendet + + Recent Workspaces + Vorherige Arbeitsbereiche - - The internal connection to the monotone process was terminated (code %1, status %2) - Die interne Verbindung zum Monotone-Prozess wurde beendet (Code %1, Status %2) + + Open Workspace + Arbeitsbereich öffnen - - Monotone startup error - Fehler beim Starten von Monotone + + Ctrl+O + Strg+O - - Couldn't startup the monotone process (ProcessError %1). Have you installed it properly? - Konnte den monotone-Prozess nicht starten (ProcessError %1). Ist das Programm korrekt installiert? + + No previous workspaces available. + Keine vorherigen Arbeitsbereiche verfügbar. - - The connection to the monotone process was terminated (Code %1). - Die Verbindung zum monotone-Prozess wurde beendet (Code %1). + + Preferences.... + Einstellungen... - - Monotone failed to start (Code %1). Have you installed it properly? - Monotone konnte nicht gestartet -werden (Code %1). Ist das Programm -korrekt installiert? + + Ctrl+P + Strg+P - - Unable to process command '%1': %2 - Das Kommando '%1' konnte nicht abgearbeitet werden: %2 + + Quit + Beenden - - 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. + + Ctrl+Q + Strg+Q - - 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. + + Hide ignored files + Ignorierte Dateien verstecken - - - Preferences - - Error - Fehler + + Ctrl+H + Strg+H - - 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. + + All files + Alle Dateien - - Notice - Hinweis + + A + A - - 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. + + All changed files + Alle geänderten Dateien - - Choose the monotone executable - Wählen Sie die ausführbare Datei von monotone + + C + G - - Binaries (mtn mtn.exe) - Ausführbare Dateien (mtn mtn.exe) + + Patched files + Inhaltlich geänderte Dateien - - The path to the monotone binary is either invalid or points to an older version of monotone. Guitone requires monotone version %1 or later. - Der Pfad zur ausführbaren Datei von monotone ist entweder ungültig oder zeigt auf eine ältere Version von monotone. Guitone benötigt Version %1 oder neuer. + + P + P - - The path to the monotone binary is either invalid or points to an older version of monotone. Guitone requires monotone version %1 or a monotone with interface version %2 or later. - Der Pfad zur ausführbaren Datei von monotone ist entweder ungültig oder zeigt auf eine ältere Version von monotone. Guitone benötigt monotone Version %1 oder ein monotone mit einer Interface-Version %2 oder neuer. + + Added files + Hinzugefügte Dateien - - - PreferencesDialog - - Preferences - Einstellungen + + N + H - - Path to monotone executable - Pfad zur ausführbaren Datei von monotone + + Removed files + Entfernte Dateien - - Browse - Durchsuchen + + D + E - - OK - OK + + Renamed files + Umbenannte Dateien - - Cancel - Abbrechen + + R + U - - Add - Hinzufügen + + Missing files + Fehlende Dateien - - Remove - Entfernen + + M + F - - - RevisionDiff - - base revision - Basis-Revision + + Unknown files + Unbekannte Dateien - - workspace revision - Arbeitsbereich-Revision + + U + K - - - RevisionDiffDialog - - Differences in %1 between %2 and %3 - Unterschiede in %1 zwischen %2 und %3 + + Ignored files + Ignorierte Dateien - - Close - Schließen + + I + I - - - SandboxItem - - File - Datei + + Expand tree + Baum aufklappen - - Status - Status + + Ctrl+T + Strg+T - - Rename Source - Quelle für Umbenennen + + Switch revision + Revision wechseln - - Rename Target - Ziel für Umbenennen + + Ctrl+R + Strg+R - - Added - hinzugefügt + + Key management + Schlüsselverwaltung - - Dropped - entfernt + + Ctrl+K + Strg+K - - Missing - fehlend + + About Qt + Über Qt - - Patched - verändert + + About guitone + Über guitone - - Unchanged - unverändert + + Show + Zeige - - Unknown - unbekannt + + guitone - a frontend for monotone + guitone - ein Frontend für monotone - - Ignored - ignoriert + + Error + Fehler - - - SandboxView - - Hide i&gnored items - Verstecke i&gnorierte Elemente + + Critical Monotone Error + Kritischer monotone-Fehler - - File - Datei + + Select your workspace... + Wählen Sie Ihren Arbeitsbereich aus... - - Folder - Verzeichnis + + Loading aborted + Laden abgebrochen - - Status - Status + + Invalid workspace + Ungültiger Arbeitsbereich - - ROOT - WURZEL + + The chosen directory is no monotone workspace! + Das gewählte Verzeichnis ist kein monotone-Arbeitsverzeichnis! - - Rename Source - Quelle für Umbenennen + + Unable to execute command + Konnte Kommando nicht ausführen - - Rename Target - Ziel für Umbenennen + + Unable to execute '%1' - maybe another command is still running? + Konnte '%1' nicht ausführen - eventuell läuft noch ein anderes Kommando? - - Added - hinzugefügt + + Loading workspace... + Lade Arbeitsbereich... - - Dropped - entfernt + + Show ignored files + Zeige ignorierte Dateien - - Missing - fehlend + + Collapse tree + Baum zuklappen - - Patched - verändert + + &%1 %2 + &%1 %2 - - Unchanged - unverändert + + The path to the monotone binary is either invalid or points to an older version of monotone. Guitone requires monotone version %1 or a monotone with interface version %2 or later. + Der Pfad zur ausführbaren Datei von monotone ist entweder ungültig oder zeigt auf eine ältere Version von monotone. Guitone benötigt monotone Version %1 oder ein monotone mit einer Interface-Version %2 oder neuer. + + + Monotone - - Unknown - unbekannt + + 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. - - Ignored - ignoriert + + 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. + + + Preferences - - Add - Hinzufügen + + Error + Fehler - - Drop - Entfernen + + Notice + Hinweis - - Select Rename Target - Ziel für Umbenennung selektieren + + 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. - - Select Rename Source - Quelle für Umbenennung selektieren + + Choose the monotone executable + Wählen Sie die ausführbare Datei von monotone - - Revert - Änderungen verwerfen + + Binaries (mtn mtn.exe) + Ausführbare Dateien (mtn mtn.exe) - - Info - Informationen + + The path to the monotone binary is either invalid or points to an older version of monotone. Guitone requires monotone version %1 or a monotone with interface version %2 or later. + Der Pfad zur ausführbaren Datei von monotone ist entweder ungültig oder zeigt auf eine ältere Version von monotone. Guitone benötigt monotone Version %1 oder ein monotone mit einer Interface-Version %2 oder neuer. + + + PreferencesDialog - - No functionality yet, sorry! - Funktioniert leider noch nicht! + + Preferences + Einstellungen + + + Path to monotone executable + Pfad zur ausführbaren Datei von monotone + + + + Browse + Durchsuchen + + + + OK + OK + + + + Cancel + Abbrechen + + RevisionDiff + + + base revision + Basis-Revision + + + + workspace revision + Arbeitsbereich-Revision + + + + RevisionDiffDialog + + + Differences in %1 between %2 and %3 + Unterschiede in %1 zwischen %2 und %3 + + + + Close + Schließen + + + Select @@ -1273,22 +915,22 @@ korrekt installiert? SwitchWorkspaceRevision - + Switch Workspace Revision Arbeitsbereich auf andere Revision aktualisieren - + Find Finden - + OK OK - + Cancel Abbrechen @@ -1318,7 +960,7 @@ korrekt installiert? Selbstdefiniert - + contains beinhaltet @@ -1328,16 +970,6 @@ korrekt installiert? 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 @@ -1386,153 +1018,4 @@ korrekt installiert? Zweige - - WorkspaceItem - - - File - Datei - - - - Status - Status - - - - Rename Source - Quelle für Umbenennen - - - - Rename Target - Ziel für Umbenennen - - - - Added - hinzugefügt - - - - Dropped - entfernt - - - - Missing - fehlend - - - - Patched - verändert - - - - Unchanged - unverändert - - - - Unknown - unbekannt - - - - Ignored - ignoriert - - - - one level up - ein Verzeichnis höher - - - - WorkspaceView - - - &Add - &Hinzufügen - - - - &Remove - En&tfernen - - - - &Commit - &Einpflegen - - - - &Unignore - Datei nicht ign&orieren - - - - R&evert - &Zurücksetzen - - - - Rena&me - Um&benennen - - - - Add to workspace - Zum Arbeitsbereich hinzufügen - - - - Remove from workspace - Vom Arbeitsbereich entfernen - - - - Commit - Einpflegen - - - - I&gnore - Datei &ignorieren - - - - Ignore file - Datei ignorieren - - - - Unignore file - Datei nicht mehr ignorieren - - - - Revert uncommitted changes - Nicht eingepflegte Änderungen verwerfen - - - - Rename file - Datei umbenennen - - - - main - - - Unsupported OS - Nichtunterstützes Betriebssystem - - - - You're running guitone on MacOS X 10.3 or earlier, but we could only test it on MacOS X 10.4. It may run perfectly fine, but it could also crash horribly. Please give us feedback if something goes wrong. Thanks! - Sie starten guitone auf MacOS X 10.3 oder früher, wir konnten die Anwendung aber nur auf MacOS X 10.4 testen. Guitone kann ohne Probleme laufen, aber auch crashen. Bitte teilen Sie uns mit, falls etwas schiefläuft. Vielen Dank! - - ============================================================ --- guitone/src/main.cpp 4ffc63e768c96cee761b318d8477e3377a4f6489 +++ guitone/src/main.cpp f4cd8cb7f906ee862d0b7c17686085013f0a84c9 @@ -18,7 +18,7 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#include "view/Guitone.h" +#include "MainWindow.h" #include #include @@ -39,7 +39,7 @@ int main(int argc, char** argv) } // create and show the main window - Guitone *mainWnd = new Guitone(); + MainWindow *mainWnd = new MainWindow(); // try initialize the main window if (!mainWnd->init()) ============================================================ --- guitone/src/model/Attributes.cpp 106407b09b186aabe60e7065a7a98b9b743934d2 +++ guitone/src/model/Attributes.cpp 2736d85091cfa55c9bde2115dbdfac13407b2782 @@ -20,8 +20,8 @@ #include "Attributes.h" #include "InventoryItem.h" -#include "../monotone/Monotone.h" -#include "../util/StanzaParser.h" +#include "Monotone.h" +#include "StanzaParser.h" #include ============================================================ --- guitone/src/model/AutomateCommand.h f7ded2d43c8532e573a48f191945c3adff08bcee +++ guitone/src/model/AutomateCommand.h 471d5264df2c502a00e29d8d724f6d1da8213094 @@ -21,7 +21,7 @@ #ifndef AUTOMATE_COMMAND_H #define AUTOMATE_COMMAND_H -#include "../monotone/Monotone.h" +#include "Monotone.h" #include /* ============================================================ --- guitone/src/model/Branches.cpp 28cdf3be5042f184093660b5072fd4e1ae7568ce +++ guitone/src/model/Branches.cpp f871e83d1ef6e207b411ff7e24a303266a50a781 @@ -19,7 +19,7 @@ ***************************************************************************/ #include "Branches.h" -#include "../monotone/Monotone.h" +#include "Monotone.h" Branches::Branches(QObject *parent) : AutomateCommand(parent) ============================================================ --- guitone/src/model/Certs.cpp 1473edd0b790a0f3947f3e92a8776830096d3644 +++ guitone/src/model/Certs.cpp 74b6fcd2dad170e58a04025813911b6a5b15400c @@ -19,8 +19,8 @@ ***************************************************************************/ #include "Certs.h" -#include "../monotone/Monotone.h" -#include "../util/StanzaParser.h" +#include "Monotone.h" +#include "StanzaParser.h" Certs::Certs(QObject *parent) : AutomateCommand(parent) ============================================================ --- guitone/src/model/ContentDiff.cpp 7956135e454f451f5a943bd5521aae4c9f7bde4d +++ guitone/src/model/ContentDiff.cpp 1fe15a69c22cc20443651b87bd7f0a1d3142421c @@ -19,7 +19,7 @@ ***************************************************************************/ #include "ContentDiff.h" -#include "../monotone/Monotone.h" +#include "Monotone.h" #include #include ============================================================ --- guitone/src/model/ContentDiff.h 76f5f369923be30371154dedc3a5ec7fefd4f157 +++ guitone/src/model/ContentDiff.h 67cc6a716be264f9428833707112b91e90fe22a5 @@ -24,7 +24,7 @@ #define CONTENT_DIFF_H #include "AutomateCommand.h" -#include "../util/DiffParser.h" +#include "DiffParser.h" #include ============================================================ --- guitone/src/model/GetFile.cpp 85d2c032b2f1f3a694ad55319fce154311520ffb +++ guitone/src/model/GetFile.cpp 1eaeed5e90e1fc01bc560e080ff67073c5697794 @@ -19,7 +19,7 @@ ***************************************************************************/ #include "GetFile.h" -#include "../monotone/Monotone.h" +#include "Monotone.h" #include #include ============================================================ --- guitone/src/model/GetFile.h 62ffae7481e42c0affce2dc0fc5778d69f2c085e +++ guitone/src/model/GetFile.h 0cbe01fb9d0371b992a051c4442ffbf95e83d270 @@ -24,7 +24,7 @@ #define GET_FILE_H #include "AutomateCommand.h" -#include "../util/DiffParser.h" +#include "DiffParser.h" struct ContentLine { QString content; ============================================================ --- guitone/src/model/Inventory.cpp 45204bef5f64bbaa813299524623a7bf64d711fd +++ guitone/src/model/Inventory.cpp a7ae242cbeae00663b494bf579ccc7b2c51826b0 @@ -20,8 +20,8 @@ #include "Inventory.h" #include "InventoryItem.h" -#include "../monotone/Monotone.h" -#include "../util/IconProvider.h" +#include "Monotone.h" +#include "IconProvider.h" #include ============================================================ --- guitone/src/model/InventoryProxyModel.cpp 207c67ec7e00028a1685fb78ec373917eb60356b +++ guitone/src/model/InventoryProxyModel.cpp 0a6bcce2838841f907aeda03006b9f8d13a2c0b7 @@ -43,6 +43,12 @@ bool InventoryProxyModel::filterAcceptsR return !folderTree; } + // hide ignored files (not recursively) + if (item->hasStatus(InventoryItem::Ignored) && hideIgnored) + { + return false; + } + bool acceptRow = true; // check the view options @@ -65,8 +71,6 @@ bool InventoryProxyModel::filterAcceptsR acceptRow &= viewOption != Missing || missing; acceptRow &= viewOption != Ignored || ignored; - // check if we should hide ignored files - acceptRow &= !hideIgnored || !ignored; // check if we should only display folders acceptRow &= !folderTree || item->isDirectory(); return acceptRow; @@ -129,11 +133,6 @@ void InventoryProxyModel::setHideIgnored clear(); } -bool InventoryProxyModel::hideIgnoredFiles() const -{ - return hideIgnored; -} - void InventoryProxyModel::setViewOption(ViewOption opt) { if (viewOption == opt) return; ============================================================ --- guitone/src/model/InventoryProxyModel.h 641f56aecdec3c5c5d170f7b28dc379a392c35e4 +++ guitone/src/model/InventoryProxyModel.h 6e67d2896fbe64b69530829c33407785583ef608 @@ -36,7 +36,6 @@ public: bool lessThan(const QModelIndex &left, const QModelIndex &right) const; void sort(int column, Qt::SortOrder order = Qt::AscendingOrder); void setHideIgnoredFiles(bool hide); - bool hideIgnoredFiles() const; void setViewOption(ViewOption opt); private: ============================================================ --- guitone/src/model/Keys.cpp 14aac7d06caf268b03e6725bc8f3cb4abaa74c9e +++ guitone/src/model/Keys.cpp f5ec005c6c196fe4c0d50df303f620821fc3b229 @@ -19,8 +19,8 @@ ***************************************************************************/ #include "Keys.h" -#include "../monotone/Monotone.h" -#include "../util/StanzaParser.h" +#include "Monotone.h" +#include "StanzaParser.h" const int Key::Database = 1; const int Key::Keystore = 2; ============================================================ --- guitone/src/model/Select.cpp d9a7d10977ce65d4590e7a062074e175c80a79a0 +++ guitone/src/model/Select.cpp a5f9f106a32d03bbc93cbe92b280dffc6136e7a0 @@ -19,7 +19,7 @@ ***************************************************************************/ #include "Select.h" -#include "../monotone/Monotone.h" +#include "Monotone.h" #include ============================================================ --- guitone/src/model/Tags.cpp eccc24f182917ff3761998124c2b96e7f0f381c4 +++ guitone/src/model/Tags.cpp 9a2312ba26213b51a6eb5970ba9aa075698a45de @@ -19,8 +19,8 @@ ***************************************************************************/ #include "Tags.h" -#include "../monotone/Monotone.h" -#include "../util/StanzaParser.h" +#include "Monotone.h" +#include "StanzaParser.h" Tags::Tags(QObject *parent) : AutomateCommand(parent) ============================================================ --- guitone/src/monotone/Monotone.cpp dce32040f36eb676c48569f9746a739bf0c423d3 +++ guitone/src/monotone/Monotone.cpp 4c3148a9a461e31c0611e7c6a1313a994050ce33 @@ -78,9 +78,8 @@ // #include "Monotone.h" -#include "../model/AutomateCommand.h" -#include "../util/Settings.h" -#include "../util/SignalWaiter.h" +#include "Settings.h" +#include "SignalWaiter.h" #include #include @@ -149,6 +148,7 @@ void Monotone::setup(QDir *workingDirect args << QString("--automate-stdio-size=%1").arg(StdioBufferSize); // Start up monotone's executable 'mtn' + // FIXME: make this wrapper independent from the Settings class QString mtn = Settings::getMtnExePath(); qDebug("Starting mtn '%s' ...", qPrintable(mtn)); process->start(mtn, args); ============================================================ --- guitone/src/util/IconProvider.cpp 4a172e07e8b4e83ef65d73cec3751f5c7371d61d +++ guitone/src/util/IconProvider.cpp b477c36ea248717a82d926af56f22fa6ca685a92 @@ -19,7 +19,7 @@ ***************************************************************************/ #include "IconProvider.h" -#include "../model/InventoryItem.h" +#include "InventoryItem.h" #include #include ============================================================ --- guitone/src/view/AttributesView.cpp 2a0c4aa00d943778a75ad39e34edb297f982333d +++ guitone/src/view/AttributesView.cpp 622bd8e562abeaa8299ecac4d3a725a0f8eb73ae @@ -19,10 +19,9 @@ ***************************************************************************/ #include "AttributesView.h" -#include "../util/Settings.h" -AttributesView::AttributesView(QWidget* parent, QString objName) -: TreeView(parent, objName) +AttributesView::AttributesView(QWidget* parent) +: TreeView(parent) { setRootIsDecorated(false); setItemsExpandable(false); ============================================================ --- guitone/src/view/AttributesView.h 0df660bf62b600cb11b756b8f2c578c4e70b6112 +++ guitone/src/view/AttributesView.h 6331d48f84cd19a9389ea33efd8e11278867b3eb @@ -28,7 +28,7 @@ public: Q_OBJECT public: - AttributesView(QWidget*, QString); + AttributesView(QWidget*); ~AttributesView(); }; ============================================================ --- guitone/src/view/DiffStatusView.cpp d959c820dae2fe20e234f55bae89340f4b3b0a20 +++ guitone/src/view/DiffStatusView.cpp 220dc080d58073f2c4265f0ee80e51cc11bc4178 @@ -19,7 +19,6 @@ ***************************************************************************/ #include "DiffStatusView.h" -#include "../util/Settings.h" #include #include ============================================================ --- guitone/src/view/DiffStatusView.h 20ff76f2cd2dad267879768b896672cbc66ab964 +++ guitone/src/view/DiffStatusView.h fe66722b8b8fdf7076471e7e14c1c5d135aa4ada @@ -21,7 +21,7 @@ #ifndef DIFF_STATUS_VIEW_H #define DIFF_STATUS_VIEW_H -#include "../model/GetFileProxyModel.h" +#include "GetFileProxyModel.h" #include class DiffStatusView : public QWidget ============================================================ --- guitone/src/view/DiffView.cpp bff1c9cb3e9a2c285c95c92a98cbe744a1fef687 +++ guitone/src/view/DiffView.cpp 551606bd2d60a212ccd64d99b1f527111a26a30e @@ -19,7 +19,6 @@ ***************************************************************************/ #include "DiffView.h" -#include "../util/Settings.h" DiffView::DiffView(QWidget* parent) : TreeView(parent) ============================================================ --- guitone/src/view/InventoryView.cpp e4be7c3162cf3f29de547bf6bf00fcc028b9c224 +++ guitone/src/view/InventoryView.cpp 082453d2f7dad1e28066e2d035acaeae8e5adfa4 @@ -19,12 +19,12 @@ ***************************************************************************/ #include "InventoryView.h" -#include "../util/Settings.h" -#include "../util/OpenFile.h" -#include "../model/InventoryItem.h" -#include "../monotone/Monotone.h" -#include "dialogs/FileDiff.h" -#include "dialogs/RevisionDiff.h" +#include "Settings.h" +#include "OpenFile.h" +#include "InventoryItem.h" +#include "Monotone.h" +#include "FileDiff.h" +#include "RevisionDiff.h" #include #include @@ -33,20 +33,10 @@ #include #include -InventoryView::InventoryView(QWidget* parent, Type type_, QString objName) -: TreeView(parent, objName), type(type_) +InventoryView::InventoryView(QWidget* parent) +: TreeView(parent) { - if (type == FileList) - { - setRootIsDecorated(false); - setItemsExpandable(false); - } - else - { - setRootIsDecorated(true); - } - - setSelectionMode(QAbstractItemView::ExtendedSelection); + setSelectionMode(QAbstractItemView::ExtendedSelection); setDragEnabled(true); setDropIndicatorShown(true); setSortingEnabled(true); @@ -60,14 +50,30 @@ InventoryView::InventoryView(QWidget* pa this, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(itemClicked(const QModelIndex &)) ); +} + +void InventoryView::setType(Type t) +{ + type = t; - // in a folder tree a single click will already trigger actions - if (type == FolderTree) - { + if (type == FileList) + { + disconnect( + this, SIGNAL(clicked(const QModelIndex &)), + this, SLOT(itemClicked(const QModelIndex &)) + ); + + setRootIsDecorated(false); + setItemsExpandable(false); + } + else + { connect( this, SIGNAL(clicked(const QModelIndex &)), this, SLOT(itemClicked(const QModelIndex &)) ); + setRootIsDecorated(true); + setItemsExpandable(true); } } ============================================================ --- guitone/src/view/InventoryView.h 4be916c896d8a6131f74b44eef8b4fb1a78cfdde +++ guitone/src/view/InventoryView.h 0fa7c01c0eba891531c4a7aced4c45a8801c4729 @@ -34,11 +34,12 @@ public: public: enum Type { FolderTree, FileList }; - InventoryView(QWidget*, Type, QString); + InventoryView(QWidget*); ~InventoryView(); void contextMenuEvent(QContextMenuEvent *); void setModel(QSortFilterProxyModel *); + void setType(Type); signals: void directoryChanged(const QModelIndex &); ============================================================ --- guitone/src/view/Guitone.cpp e0d4c9b776a12653b75c9efdfb26c04388cc8926 +++ guitone/src/view/MainWindow.cpp f2ac93f431c109b163a220a93dbefbb0edee235f @@ -18,20 +18,20 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#include "Guitone.h" -#include "../monotone/Monotone.h" -#include "../model/Inventory.h" -#include "../model/InventoryItem.h" -#include "../model/Attributes.h" -#include "../model/InventoryProxyModel.h" -#include "../view/Splitter.h" -#include "../view/InventoryView.h" -#include "../view/AttributesView.h" -#include "../view/dialogs/SwitchWorkspaceRevision.h" -#include "../view/dialogs/Preferences.h" -#include "../view/dialogs/KeyManagement.h" -#include "../view/dialogs/About.h" -#include "../util/Settings.h" +#include "MainWindow.h" +#include "Monotone.h" +#include "Inventory.h" +#include "InventoryItem.h" +#include "Attributes.h" +#include "InventoryProxyModel.h" +#include "Splitter.h" +#include "InventoryView.h" +#include "AttributesView.h" +#include "SwitchWorkspaceRevision.h" +#include "Preferences.h" +#include "KeyManagement.h" +#include "About.h" +#include "Settings.h" #include #include @@ -39,15 +39,15 @@ #include #include -Guitone::Guitone() +MainWindow::MainWindow() : QMainWindow() { gotError = false; } -bool Guitone::init() +bool MainWindow::init() { - setWindowTitle(tr("guitone - a frontend for monotone")); + setupUi(this); // catch critical errors from the Monotone class connect( @@ -80,190 +80,23 @@ bool Guitone::init() } } - // build the UI and all dependent objects - buildMenu(); - buildModelView(); - buildConnections(); - - // FIXME: doesn't really work... - resize(Settings::getStartupSize()); - - // load the most recent previous workspace, if there is any - QStringList list = Settings::getItemList("RecentWorkspaceList"); - if (list.size() > 0) - { - loadWorkspace(list[0]); - } - - return true; -} - -Guitone::~Guitone() {} - -void Guitone::buildMenu() -{ - QAction * act; - - menu = menuBar()->addMenu(tr("&File")); - menu->addAction( - tr("&Open Workspace"), - this, - SLOT(chooseWorkspace()), - Qt::CTRL + Qt::Key_O - ); - - - // load recent workspace list - wsSubMenu = menu->addMenu(tr("&Recent Workspaces")); - updatePreviousWorkspacesMenu(); - - menu->addAction("")->setSeparator(true); - - act = menu->addAction( - tr("&Preferences..."), - this, - SLOT(openPreferencesDialog()), - Qt::CTRL + Qt::Key_P - ); - act->setMenuRole(QAction::PreferencesRole); - - menu->addAction("")->setSeparator(true); - - menu->addAction( - tr("&Quit"), - this, - SLOT(close()), - Qt::CTRL + Qt::Key_Q - ); - - menu = menuBar()->addMenu(tr("&View")); - actShowHideIgnored = menu->addAction( - tr("Hide &ignored files"), - this, - SLOT(showHideIgnoredFiles()), - Qt::CTRL + Qt::Key_H - ); - - actGroupViewOptions = new QActionGroup(this); - actGroupViewOptions->setExclusive(true); - actGroupViewOptions->addAction(tr("Show"))->setSeparator(true); - act = actGroupViewOptions->addAction(tr("&All files")); - act->setChecked(true); - act->setShortcut(Qt::Key_A); - act->setData(QVariant(InventoryProxyModel::All)); - act = actGroupViewOptions->addAction(tr("All &changed files")); - act->setShortcut(Qt::Key_C); - act->setData(QVariant(InventoryProxyModel::Changed)); - act = actGroupViewOptions->addAction(tr("&Patched files")); - act->setShortcut(Qt::Key_P); - act->setData(QVariant(InventoryProxyModel::Patched)); - act = actGroupViewOptions->addAction(tr("A&dded files")); - act->setShortcut(Qt::Key_N); - act->setData(QVariant(InventoryProxyModel::Added)); - act = actGroupViewOptions->addAction(tr("R&emoved files")); - act->setShortcut(Qt::Key_D); - act->setData(QVariant(InventoryProxyModel::Dropped)); - act = actGroupViewOptions->addAction(tr("&Renamed files")); - act->setShortcut(Qt::Key_R); - act->setData(QVariant(InventoryProxyModel::Renamed)); - act = actGroupViewOptions->addAction(tr("&Missing files")); - act->setShortcut(Qt::Key_M); - act->setData(QVariant(InventoryProxyModel::Missing)); - act = actGroupViewOptions->addAction(tr("&Unknown files")); - act->setShortcut(Qt::Key_U); - act->setData(QVariant(InventoryProxyModel::Unknown)); - act = actGroupViewOptions->addAction(tr("I&gnored files")); - act->setShortcut(Qt::Key_I); - act->setData(QVariant(InventoryProxyModel::Ignored)); - menu->addActions(actGroupViewOptions->actions()); - - menu->addAction("")->setSeparator(true); - - actExpandCollapseTree = menu->addAction( - tr("E&xpand tree"), - this, - SLOT(expandCollapseTree()), - Qt::CTRL + Qt::Key_T - ); - actExpandCollapseTree->setData(QVariant(false)); - - menu = menuBar()->addMenu(tr("&Workspace")); - menu->addAction( - tr("&Switch revision"), - this, - SLOT(openSwitchWorkspaceRevisionDialog()), - Qt::CTRL + Qt::Key_R - ); - - menu->addAction( - tr("&Key Management"), - this, - SLOT(openKeyManagementDialog()), - Qt::CTRL + Qt::Key_K - ); - - menu = menuBar()->addMenu(tr("&Help")); - act = menu->addAction( - tr("About &guitone"), - this, - SLOT(aboutGuitone()) - ); - act->setMenuRole(QAction::AboutRole); - - act = menu->addAction( - tr("About &Qt"), - qApp, - SLOT(aboutQt()) - ); - act->setMenuRole(QAction::AboutQtRole); -} - -void Guitone::buildModelView() -{ // create the main models invModel = new Inventory(this); attrModel = new Attributes(this); - // Main view - Splitter *mainSplitter = new Splitter(this, "mainSplitter"); - // ProxyModels proxyModelFolderTree = new InventoryProxyModel(this, true); proxyModelFileList = new InventoryProxyModel(this, false); proxyModelFolderTree->setSourceModel(invModel); proxyModelFileList->setSourceModel(invModel); - // folder tree - treeView = new InventoryView( - mainSplitter, - InventoryView::FolderTree, - "inventoryTreeView" - ); + // tree and list views + treeView->setType(InventoryView::FolderTree); treeView->setModel(proxyModelFolderTree); - - // file list view and properties window - Splitter *listSplitter = new Splitter(mainSplitter, "listSplitter"); - listSplitter->setOrientation(Qt::Vertical); - - listView = new InventoryView( - listSplitter, - InventoryView::FileList, - "inventoryListView" - ); + listView->setType(InventoryView::FileList); listView->setModel(proxyModelFileList); - - attrView = new AttributesView(listSplitter, "attributesView"); attrView->setModel(attrModel); - setCentralWidget(mainSplitter); - - // after laying out everything, restore the splitter views - mainSplitter->restoreState(); - listSplitter->restoreState(); -} - -void Guitone::buildConnections() -{ // attributes connect( treeView, SIGNAL(clicked(const QModelIndex &)), @@ -283,15 +116,43 @@ void Guitone::buildConnections() listView, SIGNAL(directoryChanged(const QModelIndex &)), treeView, SLOT(changeDirectory(const QModelIndex &)) ); + + // load recent workspace list + updatePreviousWorkspacesMenu(); + + // set the data for some menu elements + actionAll_files->setData(QVariant(InventoryProxyModel::All)); + actionAll_changed_files->setData(QVariant(InventoryProxyModel::Changed)); + actionPatched_files->setData(QVariant(InventoryProxyModel::Patched)); + actionAdded_files->setData(QVariant(InventoryProxyModel::Added)); + actionRemoved_files->setData(QVariant(InventoryProxyModel::Dropped)); + actionRenamed_files->setData(QVariant(InventoryProxyModel::Renamed)); + actionMissing_files->setData(QVariant(InventoryProxyModel::Missing)); + actionUnknown_files->setData(QVariant(InventoryProxyModel::Unknown)); + actionIgnored_files->setData(QVariant(InventoryProxyModel::Ignored)); + actionExpand_tree->setData(QVariant(false)); + actionHide_ignored_files->setData(QVariant(false)); - // menu actions - connect( - actGroupViewOptions, SIGNAL(triggered(QAction *)), - this, SLOT(setViewOption(QAction *)) - ); + // after laying out everything, restore the splitter views + mainSplitter->restoreState(); + listSplitter->restoreState(); + + // FIXME: doesn't really work... + resize(Settings::getStartupSize()); + + // load the most recent previous workspace, if there is any + QStringList list = Settings::getItemList("RecentWorkspaceList"); + if (list.size() > 0) + { + loadWorkspace(list[0]); + } + + return true; } -void Guitone::criticalMtnError(const QString & msg) +MainWindow::~MainWindow() {} + +void MainWindow::criticalMtnError(const QString & msg) { if (gotError == false) { @@ -305,7 +166,7 @@ void Guitone::criticalMtnError(const QSt } } -void Guitone::chooseWorkspace() +void MainWindow::on_actionOpen_Workspace_triggered() { QString fn = QFileDialog::getExistingDirectory(this, tr("Select your workspace...")); @@ -318,7 +179,7 @@ void Guitone::chooseWorkspace() loadWorkspace(fn); } -void Guitone::loadWorkspace(QString fn) +void MainWindow::loadWorkspace(QString fn) { qDebug("Last workspace %s", qPrintable(fn)); @@ -355,25 +216,27 @@ void Guitone::loadWorkspace(QString fn) statusBar()->showMessage(tr("Loading workspace..."), 2000 ); } -void Guitone::closeEvent(QCloseEvent *event) +void MainWindow::closeEvent(QCloseEvent *event) { // Do some cleanup before closing down the application Settings::setStartupSize(size()); event->accept(); } -void Guitone::showHideIgnoredFiles() +void MainWindow::on_actionHide_ignored_files_triggered() { - bool hide = proxyModelFolderTree->hideIgnoredFiles(); + bool hide = actionHide_ignored_files->data().toBool(); proxyModelFolderTree->setHideIgnoredFiles(!hide); proxyModelFileList->setHideIgnoredFiles(!hide); - actShowHideIgnored->setText( - hide ? tr("Hide &ignored files") : tr("Show &ignored files") + actionHide_ignored_files->setText( + hide ? tr("Hide ignored files") : tr("Show ignored files") ); + + actionHide_ignored_files->setData(QVariant(!hide)); } -void Guitone::setViewOption(QAction * act) +void MainWindow::on_menuShow_triggered(QAction * act) { InventoryProxyModel::ViewOption opt = (InventoryProxyModel::ViewOption) act->data().toInt(); @@ -381,23 +244,23 @@ void Guitone::setViewOption(QAction * ac proxyModelFileList->setViewOption(opt); } -void Guitone::expandCollapseTree() +void MainWindow::on_actionExpand_tree_triggered() { - bool expanded = actExpandCollapseTree->data().toBool(); + bool expanded = actionExpand_tree->data().toBool(); if (expanded) treeView->collapseAll(); else treeView->expandAll(); - actExpandCollapseTree->setText( - expanded ? tr("E&xpand tree") : tr("Co&llapse tree") + actionExpand_tree->setText( + expanded ? tr("Expand tree") : tr("Collapse tree") ); - actExpandCollapseTree->setData(QVariant(!expanded)); + actionExpand_tree->setData(QVariant(!expanded)); } -void Guitone::openRecentWorkspace() +void MainWindow::openRecentWorkspace() { QAction *action = qobject_cast(sender()); if (action) @@ -406,16 +269,16 @@ void Guitone::openRecentWorkspace() } } -void Guitone::updatePreviousWorkspacesMenu() +void MainWindow::updatePreviousWorkspacesMenu() { // clear previous actions - wsSubMenu->clear(); + menuRecent_Workspaces->clear(); QStringList previousWs = Settings::getItemList("RecentWorkspaceList"); int elemCount = previousWs.size(); if (elemCount == 0) { - wsSubMenu->addAction(tr("No previous workspaces available.")); + menuRecent_Workspaces->addAction(tr("No previous workspaces available.")); return; } @@ -423,7 +286,7 @@ void Guitone::updatePreviousWorkspacesMe // add the new actions for (int i = 0; i < elemCount; ++i) { - act = wsSubMenu->addAction( + act = menuRecent_Workspaces->addAction( tr("&%1 %2").arg(i + 1).arg(previousWs[i]), this, SLOT(openRecentWorkspace()) @@ -432,7 +295,7 @@ void Guitone::updatePreviousWorkspacesMe } } -void Guitone::openSwitchWorkspaceRevisionDialog() +void MainWindow::on_actionSwitch_revision_triggered() { // TODO: connect Inventory with the accept() signal here somehow // before this works, we obviously need a separate update command @@ -441,19 +304,19 @@ void Guitone::openSwitchWorkspaceRevisio dialog.exec(); } -void Guitone::openPreferencesDialog() +void MainWindow::on_actionPreferences_triggered() { Preferences dialog(this); dialog.exec(); } -void Guitone::openKeyManagementDialog() +void MainWindow::on_actionKey_management_triggered() { KeyManagement dialog(this); dialog.exec(); } -void Guitone::aboutGuitone() +void MainWindow::on_actionAbout_guitone_triggered() { About aboutDlg(this); aboutDlg.exec(); ============================================================ --- guitone/src/view/Guitone.h a992df3eacff5be575b93557047ca236adc2a51a +++ guitone/src/view/MainWindow.h d319300af10d673c50304bee327ec16085dde236 @@ -18,11 +18,10 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#ifndef GUITONE_H -#define GUITONE_H +#ifndef MAINWINDOW_H +#define MAINWINDOW_H -#include -#include +#include "ui_main_window.h" class QModelIndex; @@ -32,48 +31,38 @@ class AttributesView; class InventoryView; class AttributesView; -class Guitone: public QMainWindow +class MainWindow: public QMainWindow, private Ui::MainWindow { Q_OBJECT public: - Guitone(); - ~Guitone(); + MainWindow(); + ~MainWindow(); bool init(); private slots: - void chooseWorkspace(); + void on_actionOpen_Workspace_triggered(); + void on_actionHide_ignored_files_triggered(); + void on_menuShow_triggered(QAction *); + void on_actionExpand_tree_triggered(); + void on_actionSwitch_revision_triggered(); + void on_actionKey_management_triggered(); + void on_actionPreferences_triggered(); + void on_actionAbout_guitone_triggered(); + void openRecentWorkspace(); void criticalMtnError(const QString &); - void showHideIgnoredFiles(); - void setViewOption(QAction *); - void expandCollapseTree(); - void openSwitchWorkspaceRevisionDialog(); - void openPreferencesDialog(); - void openKeyManagementDialog(); - void aboutGuitone(); - + private: - void buildMenu(); - void buildModelView(); - void buildConnections(); void closeEvent(QCloseEvent *); void loadWorkspace(QString); void updatePreviousWorkspacesMenu(); - QMenu *menu; - QMenu *wsSubMenu; - QAction *actShowHideIgnored; - QActionGroup *actGroupViewOptions; - QAction *actExpandCollapseTree; Inventory *invModel; Attributes *attrModel; InventoryProxyModel *proxyModelFolderTree; InventoryProxyModel *proxyModelFileList; - InventoryView *treeView; - InventoryView *listView; - AttributesView *attrView; - + bool gotError; }; ============================================================ --- guitone/src/view/Splitter.cpp 95757ad05f6665e2ad79fb8480ff26f6c3fcda88 +++ guitone/src/view/Splitter.cpp 24424aaae2510522e44ef3684caaa406b676ea9f @@ -19,7 +19,7 @@ ***************************************************************************/ #include "Splitter.h" -#include "../util/Settings.h" +#include "Settings.h" #include ============================================================ --- guitone/src/view/TreeView.cpp bfc2dd43c021e97628605eb1118f8ae7dc919539 +++ guitone/src/view/TreeView.cpp 9c24a892ef2735cebbac91ed6d8adea6b1473302 @@ -19,7 +19,7 @@ ***************************************************************************/ #include "TreeView.h" -#include "../util/Settings.h" +#include "Settings.h" #include ============================================================ --- guitone/src/view/dialogs/FileDiff.cpp c6f55eaf9f12040e496d8c079c9e6ca406eee6a8 +++ guitone/src/view/dialogs/FileDiff.cpp 3805dd39b81bd73035563f2b145101bcd558b4c0 @@ -19,8 +19,8 @@ ***************************************************************************/ #include "FileDiff.h" -#include "../../monotone/Monotone.h" -#include "../../util/SignalWaiter.h" +#include "Monotone.h" +#include "SignalWaiter.h" #include ============================================================ --- guitone/src/view/dialogs/FileDiff.h 0a6a2befd7b13fa6c49ee439f1cd364bd3d3e7c8 +++ guitone/src/view/dialogs/FileDiff.h 59f2323c49ddba5388415b3b8afb810cdc6d7f6d @@ -22,9 +22,9 @@ #define FILE_DIFF_H #include "ui_file_diff.h" -#include "../../model/ContentDiff.h" -#include "../../model/GetFile.h" -#include "../../model/GetFileProxyModel.h" +#include "ContentDiff.h" +#include "GetFile.h" +#include "GetFileProxyModel.h" class FileDiff : public QDialog, private Ui::FileDiffDialog { ============================================================ --- guitone/src/view/dialogs/GenerateKeypair.cpp 07e70c82a38fa7c833ae5d90563028d2fb68c23d +++ guitone/src/view/dialogs/GenerateKeypair.cpp 63f31288290d16e135a90d2c75e54a81380746d6 @@ -19,7 +19,7 @@ ***************************************************************************/ #include "GenerateKeypair.h" -#include "../../monotone/Monotone.h" +#include "Monotone.h" #include #include ============================================================ --- guitone/src/view/dialogs/KeyManagement.cpp f5f5ee8b5c5836cd633e4395af8aad29e1d72c18 +++ guitone/src/view/dialogs/KeyManagement.cpp 07a51fdecf557bccedf0f38f64d2466055fc8670 @@ -20,8 +20,8 @@ #include "KeyManagement.h" #include "GenerateKeypair.h" -#include "../../util/Settings.h" -#include "../../monotone/Monotone.h" +#include "Settings.h" +#include "Monotone.h" #include #include ============================================================ --- guitone/src/view/dialogs/KeyManagement.h 9bb9738009da24459af5fe634e8a200bcab6d0c0 +++ guitone/src/view/dialogs/KeyManagement.h f83f2cabb4f56acf54265543de839729d78c5818 @@ -21,7 +21,7 @@ #ifndef KEYMANAGEMENT_H #define KEYMANAGEMENT_H -#include "../../model/Keys.h" +#include "Keys.h" #include "ui_key_management.h" #include ============================================================ --- guitone/src/view/dialogs/Preferences.cpp 0baa429ddd2cc4f87bd4a81edc6ee5f24f386ccd +++ guitone/src/view/dialogs/Preferences.cpp 379b849af2296a5953c11970c13e07b9b3fec0de @@ -19,8 +19,8 @@ ***************************************************************************/ #include "Preferences.h" -#include "../../util/Settings.h" -#include "../../monotone/Monotone.h" +#include "Settings.h" +#include "Monotone.h" #include #include ============================================================ --- guitone/src/view/dialogs/RevisionDiff.cpp 8e5f7cfdc82f4ea811c72387596b40711d45ac57 +++ guitone/src/view/dialogs/RevisionDiff.cpp a19d948fb83fa9ec85d4cc46b9110b4d1804ed56 @@ -19,7 +19,7 @@ ***************************************************************************/ #include "RevisionDiff.h" -#include "../../monotone/Monotone.h" +#include "Monotone.h" #include ============================================================ --- guitone/src/view/dialogs/RevisionDiff.h 30a57d9b293fa8ea65371907ef3d5ff0a5996e44 +++ guitone/src/view/dialogs/RevisionDiff.h be23ef4825aefd8431e4aa92719d685fbf3bb57c @@ -22,7 +22,7 @@ #define REVISION_DIFF_H #include "ui_revision_diff.h" -#include "../../model/ContentDiff.h" +#include "ContentDiff.h" class RevisionDiff : public QDialog, private Ui::RevisionDiffDialog { ============================================================ --- guitone/src/view/dialogs/SwitchWorkspaceRevision.cpp d05cbd2c11e69ea1bed9e1c6664c5d29af6fe16f +++ guitone/src/view/dialogs/SwitchWorkspaceRevision.cpp 44810b7a7d2557ac288a731fa48af1c0be056f2a @@ -22,7 +22,7 @@ #include #include -#include "../../util/Settings.h" +#include "Settings.h" SwitchWorkspaceRevision::SwitchWorkspaceRevision(QWidget* parent) : QDialog(parent) ============================================================ --- guitone/src/view/dialogs/SwitchWorkspaceRevision.h 0c450243950807dc31146792a14ad442bf38fa30 +++ guitone/src/view/dialogs/SwitchWorkspaceRevision.h 5a437a9ea1b711147196df86454b3eda9deb1c1b @@ -22,11 +22,11 @@ #define SWITCH_WORKSPACE_REVISION_H #include "ui_switch_workspace.h" -#include "../../model/Select.h" -#include "../../model/Certs.h" -#include "../../model/Branches.h" -#include "../../model/Tags.h" -#include "../../model/Keys.h" +#include "Select.h" +#include "Certs.h" +#include "Branches.h" +#include "Tags.h" +#include "Keys.h" #include