summaryrefslogtreecommitdiffstats
path: root/searchwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'searchwidget.cpp')
-rw-r--r--searchwidget.cpp200
1 files changed, 0 insertions, 200 deletions
diff --git a/searchwidget.cpp b/searchwidget.cpp
deleted file mode 100644
index c303e37..0000000
--- a/searchwidget.cpp
+++ /dev/null
@@ -1,200 +0,0 @@
-#include <QLineEdit>
-#include <QLabel>
-#include <QPushButton>
-#include <QHBoxLayout>
-#include <QVBoxLayout>
-#include <QTreeView>
-#include <QStandardItemModel>
-#include <QSortFilterProxyModel>
-#include <QToolBar>
-#include <QMenuBar>
-#include <QSettings>
-#include <QHeaderView>
-#include <QSqlDatabase>
-#include <QSqlQuery>
-
-#include "searchwidget.h"
-#include "globals.h"
-#include "helper.h"
-
-SearchWidget::SearchWidget(QWidget *parent) : QWidget(parent) {
- setupGui();
-}
-
-SearchWidget::~SearchWidget(){
- writeSettings();
-}
-
-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();
-
- 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(){
- mResultView->setSortingEnabled(false);
- QString fn = mSearch->text();
- if(fn.isEmpty()){
- return;
- }
- QSqlDatabase db = QSqlDatabase::database("shemovdb");
- if(!db.isOpen()){
- db.open();
- }
- mResultModel->clear();
- QStandardItem *root = mResultModel->invisibleRootItem();
- mResultModel->setHorizontalHeaderLabels(QStringList() << QChar(0x26A7) << tr("Name") << tr("Size") << tr("Duration") << "");
- QSqlQuery q(db);
- if(mSearchMode == File){
- q.prepare("SELECT tfilename, bisize, iduration FROM files WHERE tfilename ~ :fn");
- }else if(mSearchMode == Origin){
- q.prepare("SELECT files_origin.tname, files_origin.bisize, files.iduration FROM files, files_origin WHERE files_origin.tname ~ :fn AND files_origin.ifiles_id = files.ifiles_id");
- }else if(mSearchMode == Title){
- q.prepare("SELECT files.tfilename, files.bisize, files.iduration FROM files, seriesparts, series WHERE series.iseries_id = seriesparts.iseries_id AND seriesparts.iseriesparts_id = files.iseriespart_id AND series.tseries_name ~ :fn");
- }else if(mSearchMode == Subtitle){
- q.prepare("SELECT files.tfilename, files.bisize, files.iduration FROM files, seriesparts, series WHERE series.iseries_id = seriesparts.iseries_id AND seriesparts.iseriesparts_id = files.iseriespart_id AND seriesparts.tsubtitle ~ :fn");
- }else{
- return;
- }
- q.bindValue(":fn", fn);
- q.exec();
- while(q.next()){
- QList<QStandardItem*> data;
- for(int i = 0; i < NumColumns + 1; ++i){
- QStandardItem *item = new QStandardItem;
- item->setEditable(false);
- data << item;
- if(i == SizeColumn || i == DurationColumn){
- item->setFont(QFont("courier new"));
- item->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter);
- }
- }
- data[IconColumn]->setIcon(QIcon(":/diaper.png"));
- data[NameColumn]->setText(q.value(0).toString());
- qint64 sizemb = q.value(1).toLongLong();
- QLocale l;
- QString size = QString("%1").arg(l.toString(sizemb));
- data[SizeColumn]->setText(size);
- Helper::Duration dur(q.value(2).toLongLong());
- data[DurationColumn]->setText(dur.toString());
- root->appendRow(data);
- }
- for(int i = 0; i < NumColumns; ++i){
- mResultView->resizeColumnToContents(i);
- }
- mResultView->setSortingEnabled(true);
-}
-
-void SearchWidget::clear(){
- mSearch->clear();
- mResultModel->clear();
-}
-
-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!");
-}
-
-void SearchWidget::readSettings(){
- QSettings s;
- mSearchMode = s.value("search/mode").toInt();
- if(mSearchMode == File){
- mSearchFileA->toggle();
- }else if(mSearchMode == Origin){
- mSearchOriginA->toggle();
- }else if(mSearchMode == Title){
- mSearchTitleA->toggle();
- }else if(mSearchMode == Subtitle){
- mSearchSubtitleA->toggle();
- }
- mSearch->setText(s.value("search/string").toString());
- mResultView->header()->restoreState(s.value("search/header").toByteArray());
-}
-
-void SearchWidget::writeSettings(){
- QSettings s;
- s.setValue("search/mode", mSearchMode);
- s.setValue("search/string", mSearch->text());
- s.setValue("search/header", mResultView->header()->saveState());
-}