From a12045635b23c80e3dd9f51212c6ea89c240b94e Mon Sep 17 00:00:00 2001 From: am Date: Wed, 8 Jul 2009 15:40:49 +0000 Subject: -added messagedialog -worked on keyboard navigation and selecting items, items can now be selected like in mc git-svn-id: file:///var/svn/repos2/shemov/trunk@380 f440f766-f032-0410-8965-dc7d17de2ca0 --- fileview.cpp | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) (limited to 'fileview.cpp') diff --git a/fileview.cpp b/fileview.cpp index 541d071..db34e0a 100644 --- a/fileview.cpp +++ b/fileview.cpp @@ -9,11 +9,47 @@ #include #include #include +#include +#include +#include +#include +#include #include "fileview.h" +#include "messagedialog.h" FileView::FileView(QWidget *parent) : QTreeView(parent) { setRootIsDecorated(false); + mMarkDialog = new MessageDialog(tr("Enter pattern to mark"), this); + connect(mMarkDialog, SIGNAL(accepted()), this, SLOT(doMark())); +} + +void FileView::markFiles(){ + mMarkDialog->show(); +} + +void FileView::unmarkFiles(){ + selectionModel()->clearSelection(); +} + +void FileView::doMark(){ + int rowCount = model()->rowCount(rootIndex()); + QString sRegex = mMarkDialog->text(); + if(rowCount && !sRegex.isEmpty()){ + QRegExp re(sRegex); + QSortFilterProxyModel *proxy = static_cast(model()); + QDirModel *model = static_cast(proxy->sourceModel()); + for(int i = 0; i < rowCount; ++i){ + QModelIndex cur = rootIndex().child(i, 0); + QModelIndex sCur = proxy->mapToSource(cur); + if(model->isDir(sCur)){ + continue; + } + if(re.indexIn(cur.data().toString()) != -1){ + selectionModel()->select(cur, QItemSelectionModel::Select | QItemSelectionModel::Rows); + } + } + } } void FileView::contextMenuEvent(QContextMenuEvent *e){ @@ -39,3 +75,12 @@ void FileView::keyPressEvent(QKeyEvent *e){ QTreeView::keyPressEvent(e); } } + +void FileView::resizeEvent(QResizeEvent *e){ + if(e->size().width() != e->oldSize().width()){ + int width = e->size().width(); + int c1width = width / 2; // * 2; + setColumnWidth(0, c1width); + } +} + -- cgit v1.2.3-70-g09d2