summaryrefslogtreecommitdiffstats
path: root/searchwidget.cpp
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2017-02-11 06:43:49 +0100
committerArno <arno@disconnect.de>2017-02-11 06:43:49 +0100
commit274e54474010876cb7753924c4116360aa73b906 (patch)
treec088d9a1881d6f78f7b15efb3629627422f7ce95 /searchwidget.cpp
parent6786163a0c81b71435cf6070db90e0c4d4b59757 (diff)
downloadShemovCleaner-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.cpp130
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!");
+}