diff options
author | Arno <arno@disconnect.de> | 2016-09-05 03:54:08 +0200 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2016-09-05 03:54:08 +0200 |
commit | eaaa0c165b83aba1227304eb1074098ac0028ae8 (patch) | |
tree | c1d93053439fac34024a4620271cd94a41a2c304 | |
parent | 2d4468d3c67795c14a21e2a9071b46d76680ce57 (diff) | |
download | ShemovCleaner-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().
-rw-r--r-- | filewidget.cpp | 49 |
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(); |