summaryrefslogtreecommitdiffstats
path: root/filewidget.cpp
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2016-09-05 03:54:08 +0200
committerArno <arno@disconnect.de>2016-09-05 03:54:08 +0200
commiteaaa0c165b83aba1227304eb1074098ac0028ae8 (patch)
treec1d93053439fac34024a4620271cd94a41a2c304 /filewidget.cpp
parent2d4468d3c67795c14a21e2a9071b46d76680ce57 (diff)
downloadShemovCleaner-eaaa0c165b83aba1227304eb1074098ac0028ae8.tar.gz
ShemovCleaner-eaaa0c165b83aba1227304eb1074098ac0028ae8.tar.bz2
ShemovCleaner-eaaa0c165b83aba1227304eb1074098ac0028ae8.zip
Remove GroupBoxes from FileWidget
Sigh... Well, nothing is as easy as it seems. After removing the GroupBoxes from FileWidget because they took too much real estate, I realized that returnPressed() did not work with the QLineEdits. That happened because I set the shortcut for properties() to Qt::Key_Enter. Never, ever do that! It completely messes up keyboard navigation! Use CTRL+Enter instead and restore keyPressEvent() for Qt::Key_Enter. If it's a directory, cd into it, otherwise try properties().
Diffstat (limited to 'filewidget.cpp')
-rw-r--r--filewidget.cpp49
1 files changed, 26 insertions, 23 deletions
diff --git a/filewidget.cpp b/filewidget.cpp
index 5e05670..db3a2c7 100644
--- a/filewidget.cpp
+++ b/filewidget.cpp
@@ -57,34 +57,25 @@ void FileWidget::setupGui(){
connect(mDir, SIGNAL(returnPressed()), this, SLOT(gatherData()));
QPushButton *selDirBtn = new QPushButton(tr("&Browse..."));
connect(selDirBtn, SIGNAL(clicked()), this, SLOT(selectDir()));
- QGroupBox *dirGB = new QGroupBox(tr("Directory"));
- QHBoxLayout *dirGBL = new QHBoxLayout;
- dirGBL->addWidget(mDir);
- dirGBL->addWidget(selDirBtn);
- dirGB->setLayout(dirGBL);
mFilter = new QLineEdit;
connect(mFilter, SIGNAL(returnPressed()), this, SLOT(filter()));
- QPushButton *searchBtn = new QPushButton(tr("Filter"));
+ QPushButton *searchBtn = new QPushButton(tr("F&ilter"));
connect(searchBtn, SIGNAL(clicked()), this, SLOT(filter()));
- QPushButton *clearBtn = new QPushButton(tr("&Clear"));
- connect(clearBtn, SIGNAL(clicked()), this, SLOT(clearFilter()));
- QGroupBox *filterGB = new QGroupBox(tr("Filter"));
- QHBoxLayout *filterGBL = new QHBoxLayout;
- filterGBL->addWidget(mFilter);
- filterGBL->addWidget(clearBtn);
- filterGBL->addWidget(searchBtn);
- filterGB->setLayout(filterGBL);
+
+ QGridLayout *topL = new QGridLayout;
+ topL->addWidget(new QLabel(tr("Directory")), 0, 0);
+ topL->addWidget(mDir, 0, 1);
+ topL->addWidget(selDirBtn, 0, 2);
+ topL->addWidget(new QLabel(tr("Filter")), 1, 0);
+ topL->addWidget(mFilter, 1, 1);
+ topL->addWidget(searchBtn, 1, 2);
mFileView = new QTreeView;
mFileView->setSortingEnabled(true);
mFileView->setSelectionBehavior(QAbstractItemView::SelectRows);
mFileView->setSelectionMode(QAbstractItemView::ExtendedSelection);
connect(mFileView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(properties(QModelIndex)));
- QGroupBox *filesGB = new QGroupBox(tr("Files"));
- QHBoxLayout *filesGBL = new QHBoxLayout;
- filesGBL->addWidget(mFileView);
- filesGB->setLayout(filesGBL);
mModel = new QStandardItemModel;
mProxy = new VideoSorter;
@@ -109,9 +100,9 @@ void FileWidget::setupGui(){
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addWidget(mMenuBar);
mainLayout->addWidget(mToolBar);
- mainLayout->addWidget(dirGB);
- mainLayout->addWidget(filterGB);
- mainLayout->addWidget(filesGB);
+ mainLayout->addLayout(topL);
+ mainLayout->addWidget(new QLabel(tr("Files")));
+ mainLayout->addWidget(mFileView);
setLayout(mainLayout);
connect(mFileView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this, SLOT(fileSelectionChanged(QItemSelection,QItemSelection)));
@@ -146,7 +137,7 @@ void FileWidget::createActions(){
mDeleteA->setShortcut(Qt::Key_Delete);
connect(mDeleteA, SIGNAL(triggered()), this, SLOT(deleteFiles()));
mPropertiesA = new QAction(QIcon(":/diaper.png"), tr("Properties..."), this);
- mPropertiesA->setShortcut(Qt::Key_Return);
+ mPropertiesA->setShortcut(Qt::CTRL + Qt::Key_Return);
connect(mPropertiesA, SIGNAL(triggered()), this, SLOT(properties()));
QMenu *fileMenu = new QMenu(tr("&File"));
@@ -524,7 +515,19 @@ void FileWidget::keyPressEvent(QKeyEvent *e){
mFileView->setFocus();
goto exit;
}
- QWidget::keyPressEvent(e);
+ if(mFileView->hasFocus()){
+ if(e->key() == Qt::Key_Return){
+ QModelIndex cur = mFileView->selectionModel()->currentIndex();
+ QString mimeType = cur.sibling(cur.row(), MimeColumn).data().toString();
+ if(mimeType == "directory"){
+ cd(cur.sibling(cur.row(), NameColumn).data().toString());
+ }else{
+ properties();
+ }
+ }
+ }
+
+ return QWidget::keyPressEvent(e);
exit:
e->accept();