# # # patch "guitone/res/i18n/guitone_de.ts" # from [7f11c943fc9ed5ebb69a7ba9586b94c2e53892d2] # to [065107c0776d4e4c784912d23dd9995b29b561bc] # # patch "guitone/src/model/InventoryProxyModel.cpp" # from [0a6bcce2838841f907aeda03006b9f8d13a2c0b7] # to [305b276fd10e5d3b20bcd9fe304027c9f5a82d29] # # patch "guitone/src/view/InventoryView.cpp" # from [e59f8f435f3595d675129944b2806aceaef744f9] # to [d87d55be55ef53fce73884656ba084c59aba857a] # # patch "guitone/src/view/InventoryView.h" # from [b9bd6ab533371f623c4a08e8abcbeeb5b4bb3b4f] # to [2f42802112e608d07157a625250d17b31640fa42] # ============================================================ --- guitone/res/i18n/guitone_de.ts 7f11c943fc9ed5ebb69a7ba9586b94c2e53892d2 +++ guitone/res/i18n/guitone_de.ts 065107c0776d4e4c784912d23dd9995b29b561bc @@ -428,127 +428,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 ============================================================ --- guitone/src/model/InventoryProxyModel.cpp 0a6bcce2838841f907aeda03006b9f8d13a2c0b7 +++ guitone/src/model/InventoryProxyModel.cpp 305b276fd10e5d3b20bcd9fe304027c9f5a82d29 @@ -40,7 +40,10 @@ bool InventoryProxyModel::filterAcceptsR // state of the item if (item->isCdUp()) { - return !folderTree; + // only display this item if this is not the folder tree view + // and the parent of the item's parent is invalid (i.e. there is no + // way to cdUp anymore) + return !folderTree && sourceParent.parent().isValid(); } // hide ignored files (not recursively) ============================================================ --- guitone/src/view/InventoryView.cpp e59f8f435f3595d675129944b2806aceaef744f9 +++ guitone/src/view/InventoryView.cpp d87d55be55ef53fce73884656ba084c59aba857a @@ -32,6 +32,7 @@ #include #include #include +#include InventoryView::InventoryView(QWidget* parent) : TreeView(parent) @@ -100,7 +101,7 @@ void InventoryView::setModel(QSortFilter { disconnect( oldModel, SIGNAL(modelReset()), - this, SLOT(modelReset()) + this, SLOT(delegateModelReset()) ); } @@ -108,20 +109,26 @@ void InventoryView::setModel(QSortFilter connect( newModel, SIGNAL(modelReset()), - this, SLOT(modelReset()) + this, SLOT(delegateModelReset()) ); } +void InventoryView::delegateModelReset() +{ + // give the view another event cycle to reload the new indices + QTimer::singleShot(0, this, SLOT(modelReset())); +} + void InventoryView::modelReset() { - QModelIndex index(rootIndex()); - if (!index.isValid()) return; + QModelIndex index = model()->index(0, 0, QModelIndex()); + if (!index.isValid()) + { + qCritical("InventoryView::modelReset: index invalid, aborting..."); + return; + } - index = index.child(0,0); - Q_ASSERT(index.isValid()); - InventoryItem * item = static_cast(index.internalPointer()); - qDebug(qPrintable(item->getLabel())); - if (type == FolderTree) + if (type == FileList) { setRootIndex(index); } ============================================================ --- guitone/src/view/InventoryView.h b9bd6ab533371f623c4a08e8abcbeeb5b4bb3b4f +++ guitone/src/view/InventoryView.h 2f42802112e608d07157a625250d17b31640fa42 @@ -64,6 +64,7 @@ private slots: Type type; private slots: + void delegateModelReset(); void modelReset(); void changeDirectory(const QModelIndex &);