# # # patch "i18n/guitone_de.ts" # from [26647e7950bae0db517d0122ff230c13ebd6b0ee] # to [fb312dd3b4574049e13837d110b310e569271557] # # patch "src/model/ProxyModel.cpp" # from [f3b31a260e8ed6d4eabea51f4d2a63490f7f22de] # to [1b27de97ee5a5b66212ae25020a22f639a7afb1a] # # patch "src/model/ProxyModel.h" # from [148d1e218bb9c5229ae658db2c559b87b875adc0] # to [854a4b9618de6833f8db0783ba0fa1cc761e04ea] # # patch "src/view/Guitone.cpp" # from [9479fbb59d8eb850a4c86735004ef2d25189fb66] # to [22d38d0766c14d9a0927dc23c941aea3de1b1c1d] # # patch "src/view/Guitone.h" # from [c255b20f0b057f5b04c71dc6373fdd08c7e427e3] # to [df4f6efd4141467224a52cd0d97bb92a2e4652c9] # ============================================================ --- i18n/guitone_de.ts 26647e7950bae0db517d0122ff230c13ebd6b0ee +++ i18n/guitone_de.ts fb312dd3b4574049e13837d110b310e569271557 @@ -76,6 +76,18 @@ File|Import STRG+I + + &View + &Ansicht + + + &Hide ignored files + Ignorierte Dateien &verstecken + + + &Show ignored files + Ignorierte Dateien a&nzeigen + Monotone ============================================================ --- src/model/ProxyModel.cpp f3b31a260e8ed6d4eabea51f4d2a63490f7f22de +++ src/model/ProxyModel.cpp 1b27de97ee5a5b66212ae25020a22f639a7afb1a @@ -24,7 +24,7 @@ ProxyModel::ProxyModel(QObject *parent, bool folderTree_) : QSortFilterProxyModel(parent), folderTree(folderTree_), -sortColumn(0), sortOrder(Qt::AscendingOrder) +sortColumn(0), sortOrder(Qt::AscendingOrder), hideIgnored(false) { } @@ -37,15 +37,14 @@ QModelIndex index = sourceModel()->index(sourceRow, 0, sourceParent); WorkspaceItem *item = static_cast(index.internalPointer()); - if (folderTree) - { - if(item->isDirectory()) - { - return true; - } - return false; - } - return true; + bool acceptRow = true; + + // check if we should hide ignored files + acceptRow &= !hideIgnored || !item->hasStatus(WorkspaceItem::Ignored); + // check if we should only display folders + acceptRow &= !folderTree || item->isDirectory(); + + return acceptRow; } bool ProxyModel::lessThan(const QModelIndex &left, const QModelIndex &right) const @@ -93,3 +92,15 @@ sortColumn = column; QSortFilterProxyModel::sort(column, order); } + +void ProxyModel::setHideIgnoredFiles(bool hide) +{ + if (hide == hideIgnored) return; + hideIgnored = hide; + clear(); +} + +bool ProxyModel::hideIgnoredFiles() const +{ + return hideIgnored; +} ============================================================ --- src/model/ProxyModel.h 148d1e218bb9c5229ae658db2c559b87b875adc0 +++ src/model/ProxyModel.h 854a4b9618de6833f8db0783ba0fa1cc761e04ea @@ -32,10 +32,13 @@ bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const; 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; + private: bool folderTree; int sortColumn; + bool hideIgnored; Qt::SortOrder sortOrder; }; ============================================================ --- src/view/Guitone.cpp 9479fbb59d8eb850a4c86735004ef2d25189fb66 +++ src/view/Guitone.cpp 22d38d0766c14d9a0927dc23c941aea3de1b1c1d @@ -59,6 +59,14 @@ 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 + ); + // // Toolbar // @@ -188,3 +196,14 @@ properties.setStartupSize(size()); event->accept(); } + +void Guitone::showHideIgnoredFiles() +{ + bool hide = proxyModelFolderTree->hideIgnoredFiles(); + proxyModelFolderTree->setHideIgnoredFiles(!hide); + proxyModelFileList->setHideIgnoredFiles(!hide); + + actShowHideIgnored->setText( + hide ? tr("&Hide ignored files") : tr("&Show ignored files") + ); +} ============================================================ --- src/view/Guitone.h c255b20f0b057f5b04c71dc6373fdd08c7e427e3 +++ src/view/Guitone.h df4f6efd4141467224a52cd0d97bb92a2e4652c9 @@ -46,11 +46,13 @@ //void doFindAndSelectItem( WorkspaceItem* ); void slotMapFolderTreeToFileList( const QModelIndex &proxyIndex ); void slotMapFileListToFolderTree( const QModelIndex &proxyIndex ); + void showHideIgnoredFiles(); private: void closeEvent(QCloseEvent *event); QMenu *menu; + QAction *actShowHideIgnored; QToolBar *toolBar; Workspace *myWorkspace; ProxyModel *proxyModelFolderTree;