diff options
Diffstat (limited to 'src/frontend/searchdialog/csearchdialog.cpp')
-rw-r--r-- | src/frontend/searchdialog/csearchdialog.cpp | 69 |
1 files changed, 41 insertions, 28 deletions
diff --git a/src/frontend/searchdialog/csearchdialog.cpp b/src/frontend/searchdialog/csearchdialog.cpp index 221be09..8442c61 100644 --- a/src/frontend/searchdialog/csearchdialog.cpp +++ b/src/frontend/searchdialog/csearchdialog.cpp @@ -6,32 +6,31 @@ * The BibleTime source code is licensed under the GNU General Public License version 2.0. * **********/ -#include "csearchdialog.h" -#include "btsearchoptionsarea.h" -#include "btsearchresultarea.h" +#include "frontend/searchdialog/csearchdialog.h" + +#include <QDebug> +#include <QDialogButtonBox> +#include <QLineEdit> +#include <QPushButton> +#include <QSettings> +#include <QSizePolicy> +#include <QString> +#include <QRegExp> +#include <QVBoxLayout> +#include <QWidget> + +#include "backend/config/cbtconfig.h" #include "backend/cswordmodulesearch.h" #include "backend/keys/cswordkey.h" #include "backend/keys/cswordversekey.h" -#include "backend/config/cbtconfig.h" - #include "frontend/cmoduleindexdialog.h" - +#include "frontend/searchdialog/btsearchoptionsarea.h" +#include "frontend/searchdialog/btsearchresultarea.h" #include "util/cresmgr.h" -#include "util/ctoolclass.h" -#include "util/directoryutil.h" +#include "util/directory.h" +#include "util/dialogutil.h" -//Qt includes -#include <QString> -#include <QWidget> -#include <QMessageBox> -#include <QVBoxLayout> -#include <QLineEdit> -#include <QSettings> -#include <QDialogButtonBox> -#include <QPushButton> -#include <QSizePolicy> -#include <QDebug> namespace Search { @@ -64,6 +63,12 @@ void CSearchDialog::openDialog(const QList<CSwordModuleInfo*> modules, const QSt m_staticDialog->activateWindow(); } +void CSearchDialog::closeDialog() +{ + if (m_staticDialog != 0) + m_staticDialog->closeButtonClicked(); +} + CSearchDialog* CSearchDialog::getSearchDialog() { Q_ASSERT(m_staticDialog); return m_staticDialog; @@ -72,7 +77,9 @@ CSearchDialog* CSearchDialog::getSearchDialog() { CSearchDialog::CSearchDialog(QWidget *parent) : QDialog(parent), /*m_searchButton(0),*/ m_closeButton(0), m_searchResultArea(0), m_searchOptionsArea(0) { - setWindowIcon( util::filesystem::DirectoryUtil::getIcon(CResMgr::searchdialog::icon) ); + namespace DU = util::directory; + + setWindowIcon(DU::getIcon(CResMgr::searchdialog::icon)); setWindowTitle(tr("Search")); setAttribute(Qt::WA_DeleteOnClose); m_searcher.connectFinished( this, SLOT(searchFinished())); @@ -90,8 +97,13 @@ void CSearchDialog::startSearch() { QString originalSearchText(m_searchOptionsArea->searchText()); QString searchText(""); - if (originalSearchText.isEmpty()) { - return; + // first check the search string for errors + { + QString TestString(originalSearchText); + QRegExp ReservedWords("heading:|footnote:|morph:|strong:"); + if (TestString.replace(ReservedWords, "").simplified().isEmpty()) { + return; + } } searchText = prepareSearchText(originalSearchText); @@ -101,11 +113,10 @@ void CSearchDialog::startSearch() { // check that we have the indices we need for searching if (!m_searcher.modulesHaveIndices( modules() ) ) { - int result = QMessageBox::question(this, tr("Missing indices"), - tr("One or more works need indexing before they can be searched.\n" - "This could take a long time. Proceed with indexing?"), - QMessageBox::Yes | QMessageBox::Default, - QMessageBox::No | QMessageBox::Escape); + int result = util::showQuestion(this, tr("Missing indices"), + tr("One or more works need indexing before they can be searched.\n" + "This could take a long time. Proceed with indexing?"), + QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes); // In SuSE 10.0 the result is the logical or of the button type, just like it is // inputed into the QMessageBox. if ( (result == (QMessageBox::Yes | QMessageBox::Default)) || @@ -205,6 +216,8 @@ void CSearchDialog::setSearchText( const QString searchText ) { /** Initializes this object. */ void CSearchDialog::initView() { + namespace DU = util::directory; + QVBoxLayout* verticalLayout = new QVBoxLayout(this); setLayout(verticalLayout); @@ -224,7 +237,7 @@ void CSearchDialog::initView() { m_closeButton = new QPushButton(this); m_closeButton->setText(tr("&Close")); - m_closeButton->setIcon( util::filesystem::DirectoryUtil::getIcon(CResMgr::searchdialog::close_icon)); + m_closeButton->setIcon(DU::getIcon(CResMgr::searchdialog::close_icon)); horizontalLayout->addWidget(m_closeButton); verticalLayout->addLayout(horizontalLayout); |