summaryrefslogtreecommitdiff
path: root/src/frontend/searchdialog/csearchdialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontend/searchdialog/csearchdialog.cpp')
-rw-r--r--src/frontend/searchdialog/csearchdialog.cpp69
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);