diff options
author | Arno <arno@disconnect.de> | 2017-02-11 06:43:49 +0100 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2017-02-11 06:43:49 +0100 |
commit | 274e54474010876cb7753924c4116360aa73b906 (patch) | |
tree | c088d9a1881d6f78f7b15efb3629627422f7ce95 /searchwidget.cpp | |
parent | 6786163a0c81b71435cf6070db90e0c4d4b59757 (diff) | |
download | ShemovCleaner-274e54474010876cb7753924c4116360aa73b906.tar.gz ShemovCleaner-274e54474010876cb7753924c4116360aa73b906.tar.bz2 ShemovCleaner-274e54474010876cb7753924c4116360aa73b906.zip |
Create GUI for search widget
Does nothing yet, just the GUI, connections and actions...
Diffstat (limited to 'searchwidget.cpp')
-rw-r--r-- | searchwidget.cpp | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/searchwidget.cpp b/searchwidget.cpp new file mode 100644 index 0000000..5d945e1 --- /dev/null +++ b/searchwidget.cpp @@ -0,0 +1,130 @@ +#include <QLineEdit> +#include <QLabel> +#include <QPushButton> +#include <QHBoxLayout> +#include <QVBoxLayout> +#include <QTreeView> +#include <QStandardItemModel> +#include <QSortFilterProxyModel> +#include <QToolBar> +#include <QMenuBar> + +#include "searchwidget.h" +#include "globals.h" + +SearchWidget::SearchWidget(QWidget *parent) : QWidget(parent) { + setupGui(); +} + +void SearchWidget::setupGui(){ + mSearch = new QLineEdit; + connect(mSearch, SIGNAL(returnPressed()), this, SLOT(search())); + QLabel *searchL = new QLabel(tr("&Search")); + searchL->setBuddy(mSearch); + QPushButton *doSearch = new QPushButton(tr("Go!")); + connect(doSearch, SIGNAL(clicked()), this, SLOT(search())); + QHBoxLayout *searchLayout = new QHBoxLayout; + searchLayout->addWidget(searchL); + searchLayout->addWidget(mSearch); + searchLayout->addWidget(doSearch); + + mResultView = new QTreeView; + mResultView->setSortingEnabled(false); + mResultView->setSelectionBehavior(QAbstractItemView::SelectRows); + mResultView->setSelectionMode(QAbstractItemView::SingleSelection); + mResultModel = new QStandardItemModel; + mProxy = new QSortFilterProxyModel; + mProxy->setSourceModel(mResultModel); + mResultView->setModel(mProxy); + + mMenuBar = new QMenuBar; + mToolBar = new QToolBar; + mToolBar->setIconSize(QSize(16, 16)); + createActions(); + + QVBoxLayout *mainLayout = new QVBoxLayout; + mainLayout->addWidget(mMenuBar); + mainLayout->addWidget(mToolBar); + mainLayout->addLayout(searchLayout); + mainLayout->addWidget(mResultView); + setLayout(mainLayout); +} + +void SearchWidget::createActions(){ + QMenu *fileMenu = new QMenu(tr("&File"), this); + fileMenu->addAction(Globals::instance()->action(Globals::QuitAction)); + + QMenu *editMenu = new QMenu(tr("&Edit"), this); + QAction *clearA = new QAction(QIcon(":/delete.png"), tr("Clear"), this); + connect(clearA, SIGNAL(triggered()), this, SLOT(clear())); + editMenu->addAction(clearA); + editMenu->addSeparator(); + mToolBar->addAction(clearA); + mToolBar->addSeparator(); + + QAction *isRegexA = new QAction(QIcon(":/curlybrackets.png"), tr("Regex"), this); + isRegexA->setCheckable(true); + connect(isRegexA, SIGNAL(toggled(bool)), this, SLOT(setRegex(bool))); + editMenu->addAction(isRegexA); + editMenu->addSeparator(); + mToolBar->addAction(isRegexA); + mToolBar->addSeparator(); + + QActionGroup *searchModeAG = new QActionGroup(this); + mSearchFileA = new QAction(QIcon(":/huge_bra.png"), tr("Filename"), this); + mSearchFileA->setCheckable(true); + searchModeAG->addAction(mSearchFileA); + mSearchOriginA = new QAction(QIcon(":/higheels.png"), tr("Origin"), this); + mSearchOriginA->setCheckable(true); + searchModeAG->addAction(mSearchOriginA); + mSearchTitleA = new QAction(QIcon(":/hourglass_figure.png"), tr("Title"), this); + mSearchTitleA->setCheckable(true); + searchModeAG->addAction(mSearchTitleA); + mSearchSubtitleA = new QAction(QIcon(":/gaping_ass.png"), tr("Subtitle"), this); + mSearchSubtitleA->setCheckable(true); + searchModeAG->addAction(mSearchSubtitleA); + editMenu->addActions(searchModeAG->actions()); + editMenu->addSeparator(); + mToolBar->addActions(searchModeAG->actions()); + mToolBar->addSeparator(); + connect(searchModeAG, SIGNAL(triggered(QAction*)), this, SLOT(setSearchMode(QAction*))); + + editMenu->addAction(Globals::instance()->action(Globals::ConfigAction)); + mToolBar->addAction(Globals::instance()->action(Globals::ConfigAction)); + + mMenuBar->addMenu(fileMenu); + mMenuBar->addMenu(editMenu); + +} + +void SearchWidget::search(){ + +} + +void SearchWidget::clear(){ + mSearch->clear(); + mResultModel->clear(); +} + +void SearchWidget::setRegex(bool toggled){ + mIsRegex = toggled; +} + +void SearchWidget::setSearchMode(QAction *action){ + if(action == mSearchFileA){ + mSearchMode = File; + }else if(action == mSearchOriginA){ + mSearchMode = Origin; + }else if(action == mSearchTitleA){ + mSearchMode = Title; + }else if(action == mSearchSubtitleA){ + mSearchMode = Subtitle; + } +} + +QString SearchWidget::currentSearch(){ + if(!mSearch->text().isEmpty()){ + return mSearch->text(); + } + return tr("nothing!"); +} |