From: APTX Date: Thu, 2 May 2013 14:53:05 +0000 (+0200) Subject: Add Search tab to localmylist-management and remove search-gui. X-Git-Url: https://gitweb.tyo.aptx.org/?a=commitdiff_plain;h=be84ed08f422028307398d22f83ead4abf2cf196;p=localmylist.git Add Search tab to localmylist-management and remove search-gui. --- diff --git a/localmylist-management/localmylist-management.pro b/localmylist-management/localmylist-management.pro index 43cd8c7..3e0a512 100644 --- a/localmylist-management/localmylist-management.pro +++ b/localmylist-management/localmylist-management.pro @@ -21,6 +21,7 @@ SOURCES += main.cpp\ tabwidget.cpp \ abstracttab.cpp \ tabs/mylisttab.cpp \ + tabs/searchtab.cpp \ tabs/reportstab.cpp \ tabs/unknownfilestab.cpp \ registertabs.cpp @@ -36,12 +37,14 @@ HEADERS += mainwindow.h \ tabwidget.h \ abstracttab.h \ tabs/mylisttab.h \ + tabs/searchtab.h \ tabs/reportstab.h \ tabs/unknownfilestab.h FORMS += mainwindow.ui \ databaseconnectiondialog.ui \ tabs/mylisttab.ui \ + tabs/searchtab.ui \ tabs/reportstab.ui \ tabs/unknownfilestab.ui diff --git a/localmylist-management/registertabs.cpp b/localmylist-management/registertabs.cpp index 9ec593d..41e7efb 100644 --- a/localmylist-management/registertabs.cpp +++ b/localmylist-management/registertabs.cpp @@ -1,11 +1,13 @@ #include "tabwidget.h" #include "tabs/mylisttab.h" +#include "tabs/searchtab.h" #include "tabs/reportstab.h" #include "tabs/unknownfilestab.h" void registerTabs() { TabWidget::registerTab(); + TabWidget::registerTab(); TabWidget::registerTab(); TabWidget::registerTab(); } diff --git a/localmylist-management/tabs/searchtab.cpp b/localmylist-management/tabs/searchtab.cpp new file mode 100644 index 0000000..01b07fd --- /dev/null +++ b/localmylist-management/tabs/searchtab.cpp @@ -0,0 +1,88 @@ +#include "searchtab.h" +#include "ui_searchtab.h" + +#include +#include + +#include "mylist.h" + +using namespace LocalMyList; + +SearchTab::SearchTab(QWidget *parent) : + AbstractTabBase(parent), + ui(new Ui::SearchTab) +{ + ui->setupUi(this); + m_label = name(); +} + +SearchTab::~SearchTab() +{ + delete ui; +} + +QString SearchTab::staticId() +{ + return "search"; +} + +QString SearchTab::name() +{ + return tr("Search"); +} + +void SearchTab::init() +{ + model = new QSqlQueryModel(this); + ui->view->setModel(model); +} + +void SearchTab::activate() +{ +} + +void SearchTab::on_input_textChanged(const QString &text) +{ + QString query; + + if (text.isEmpty()) + { + model->setQuery(QSqlQuery()); + return; + } + + if (text.length() > 3) + query = "%" + text + "%"; + else + query = text + "%"; + + QSqlQuery &q = MyList::instance()->database()->prepare( + "SELECT a.aid, b.title AS main_title, a.title, a.language, a.type FROM anime_title a " + " LEFT JOIN anime_title b on b.aid = a.aid " + " WHERE a.title ILIKE :query " + " AND b.type = 1 " + " ORDER BY a.title ASC, a.aid ASC " + " LIMIT 100"); + q.bindValue(":word", text); + q.bindValue(":query", query); + + MyList::instance()->database()->exec(q); + model->setQuery(q); + + model->setHeaderData(0, Qt::Horizontal, tr("aid")); + model->setHeaderData(1, Qt::Horizontal, tr("Main Title")); + model->setHeaderData(2, Qt::Horizontal, tr("Title")); + model->setHeaderData(3, Qt::Horizontal, tr("Language")); + model->setHeaderData(4, Qt::Horizontal, tr("Type")); + + ui->view->resizeColumnsToContents(); + +/* + "SELECT a.aid, b.title AS main_title, a.title, a.language, a.type, a.title <-> :word AS distance FROM anime_title a " + " LEFT JOIN anime_title b on b.aid = a.aid " + " WHERE a.title ILIKE :query " + " AND b.type = 1 " + " ORDER BY distance ASC, a.title ASC, a.aid ASC " + " LIMIT 100"); +*/ +} diff --git a/localmylist-management/tabs/searchtab.h b/localmylist-management/tabs/searchtab.h new file mode 100644 index 0000000..00cdbb8 --- /dev/null +++ b/localmylist-management/tabs/searchtab.h @@ -0,0 +1,35 @@ +#ifndef SEARCHTAB_H +#define SEARCHTAB_H + +#include "abstracttab.h" + +namespace Ui { +class SearchTab; +} + +class QSqlQueryModel; + +class SearchTab : public AbstractTabBase +{ + Q_OBJECT + +public: + explicit SearchTab(QWidget *parent = 0); + ~SearchTab(); + + static QString staticId(); + static QString name(); + + void init(); + void activate(); + +private slots: + void on_input_textChanged(const QString &text); + +private: + Ui::SearchTab *ui; + + QSqlQueryModel *model; +}; + +#endif // SEARCHTAB_H diff --git a/localmylist-management/tabs/searchtab.ui b/localmylist-management/tabs/searchtab.ui new file mode 100644 index 0000000..af779a8 --- /dev/null +++ b/localmylist-management/tabs/searchtab.ui @@ -0,0 +1,43 @@ + + + SearchTab + + + + 0 + 0 + 400 + 300 + + + + Form + + + + 0 + + + 0 + + + 0 + + + + + + + + + + + + FilterLineEdit + QLineEdit +
filterlineedit.h
+
+
+ + +
diff --git a/localmylist.pro b/localmylist.pro index 845238b..7c4ca36 100644 --- a/localmylist.pro +++ b/localmylist.pro @@ -11,10 +11,6 @@ SUBDIRS += localmylist !nogui { SUBDIRS += localmylist-management - - !notools { - SUBDIRS += search-gui - } } !notools { diff --git a/search-gui/main.cpp b/search-gui/main.cpp deleted file mode 100644 index 24a397b..0000000 --- a/search-gui/main.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include -#include "mainwindow.h" - -int main(int argc, char *argv[]) -{ - QApplication a(argc, argv); - MainWindow w; - w.show(); - - return a.exec(); -} diff --git a/search-gui/mainwindow.cpp b/search-gui/mainwindow.cpp deleted file mode 100644 index 08f40c3..0000000 --- a/search-gui/mainwindow.cpp +++ /dev/null @@ -1,62 +0,0 @@ -#include "mainwindow.h" -#include "ui_mainwindow.h" - -#include -#include -#include "database.h" -#include "mylist.h" - -#include - -using namespace LocalMyList; - -MainWindow::MainWindow(QWidget *parent) : - QMainWindow(parent), - ui(new Ui::MainWindow) -{ - ui->setupUi(this); - MyList::instance()->loadLocalSettings(); - MyList::instance()->database()->connect(); - - model = new QSqlQueryModel(this); - - ui->resultView->setModel(model); - on_search_textChanged(""); -} - -MainWindow::~MainWindow() -{ - delete ui; -} - -void MainWindow::on_search_textChanged(const QString &text) -{ - - QString query; - - if (text.isEmpty()) - { - model->setQuery(QSqlQuery()); - return; - } - - if (text.length() > 3) - query = "%" + text + "%"; - else - query = text + "%"; - - QSqlQuery &q = MyList::instance()->database()->prepare( - "SELECT a.aid, b.title AS main_title, a.title, a.language, a.type, a.title <-> :word AS distance FROM anime_title a " - " LEFT JOIN anime_title b on b.aid = a.aid " - " WHERE a.title ILIKE :query " - " AND b.type = 1 " - " ORDER BY distance ASC, a.title ASC, a.aid ASC " - " LIMIT 100"); - q.bindValue(":word", text); - q.bindValue(":query", query); - - MyList::instance()->database()->exec(q); - model->setQuery(q); - ui->resultView->resizeColumnsToContents(); - -} diff --git a/search-gui/mainwindow.h b/search-gui/mainwindow.h deleted file mode 100644 index 53b9ccd..0000000 --- a/search-gui/mainwindow.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef MAINWINDOW_H -#define MAINWINDOW_H - -#include -#include - -namespace Ui { - class MainWindow; -} - -namespace LocalMyList { - class Database; -} - -class MainWindow : public QMainWindow -{ - Q_OBJECT - -public: - explicit MainWindow(QWidget *parent = 0); - ~MainWindow(); - -private slots: - void on_search_textChanged(const QString &arg1); - -private: - Ui::MainWindow *ui; - QSqlQueryModel *model; - LocalMyList::Database *db; -}; - -#endif // MAINWINDOW_H diff --git a/search-gui/mainwindow.ui b/search-gui/mainwindow.ui deleted file mode 100644 index b878805..0000000 --- a/search-gui/mainwindow.ui +++ /dev/null @@ -1,49 +0,0 @@ - - - MainWindow - - - - 0 - 0 - 400 - 300 - - - - MainWindow - - - - - - - - - - - - - - - 0 - 0 - 400 - 21 - - - - - - TopToolBarArea - - - false - - - - - - - - diff --git a/search-gui/search-gui.pro b/search-gui/search-gui.pro deleted file mode 100644 index 863323f..0000000 --- a/search-gui/search-gui.pro +++ /dev/null @@ -1,21 +0,0 @@ -QT += core gui -greaterThan(QT_MAJOR_VERSION, 4): QT += widgets - -include(../config.pri) - -TARGET = lml-search-gui -DESTDIR = ../build -TEMPLATE = app - - -SOURCES += main.cpp\ - mainwindow.cpp - -HEADERS += mainwindow.h - -FORMS += mainwindow.ui - -include(../localmylist.pri) - -target.path = $${PREFIX}/bin -INSTALLS += target