Added search from command line
authorMateusz Półrola <mateusz.polrola@comarch.pl>
Tue, 10 Aug 2010 07:04:51 +0000 (09:04 +0200)
committerMateusz Półrola <mateusz.polrola@comarch.pl>
Tue, 10 Aug 2010 07:04:51 +0000 (09:04 +0200)
trunk/src/base/gui/MainWindow.cpp
trunk/src/base/gui/MainWindow.h
trunk/src/base/gui/SearchBarWidget.cpp
trunk/src/base/gui/SearchBarWidget.h
trunk/src/base/gui/main.cpp
trunk/src/plugins/xdxf/src/xdxfplugin.cpp
trunk/src/plugins/xdxf/src/xdxfplugin.h

index 146b5d8..7e673d8 100644 (file)
@@ -50,6 +50,8 @@ MainWindow::MainWindow(Backbone *backbone, QWidget *parent):
 
     ui->menuBar->addAction(menuWidget);
 
+    connect(this, SIGNAL(searchWordList(QStringList)),
+            searchBarWidget, SLOT(searchWordList(QStringList)));
 
     connect(wordListWidget, SIGNAL(showTranslation(QList<Translation*>)),
             translationWidget, SLOT(show(QList<Translation*>)));
@@ -84,3 +86,7 @@ void MainWindow::closeOk() {
     closingApplication = true;
     close();*/
 }
+
+void MainWindow::search(QStringList words) {
+    emit searchWordList(words);
+}
index f9902b9..eb9b999 100644 (file)
@@ -42,6 +42,8 @@ class MainWindow : public QMainWindow
 public:
     explicit MainWindow(Backbone* backbone, QWidget *parent = 0);
     ~MainWindow();
+    void search(QStringList);
+
 
 public Q_SLOTS:
     //! Confirmation from backbone that we can close program
@@ -50,6 +52,7 @@ public Q_SLOTS:
 Q_SIGNALS:
     //! Request to backbone to stop all it's activities
     void quit();
+    void searchWordList(QStringList);
 
 protected:
     /*! When user wants to close application, we first sends signal to stop all
index 3ff3a7e..168b968 100644 (file)
@@ -55,8 +55,8 @@ SearchBarWidget::SearchBarWidget(Backbone* backbone, QWidget *parent) :
 
 
     //connects request to backbone
-    connect(this, SIGNAL(searchForTranslations(QString)),
-            backbone, SLOT(search(QString)));
+    connect(this, SIGNAL(searchForTranslations(QStringList)),
+            backbone, SLOT(search(QStringList)));
 
     connect(this, SIGNAL(stopSearching()),
             backbone, SLOT(stopSearching()));
@@ -167,7 +167,19 @@ void SearchBarWidget::searchPushButtonClicked() {
         searchPushButton->setText(tr("Stop"));
         setEnabled(false);
         _isSearching = true;
-        emit searchForTranslations(searchWordLineEdit->text());
+        QStringList searchWord;
+        searchWord << searchWordLineEdit->text();
+        emit searchForTranslations(searchWord);
+    }
+}
+
+void SearchBarWidget::searchWordList(QStringList words) {
+    if(!_isSearching) {
+        searchingProgressBar->show();
+        searchPushButton->setText(tr("Stop"));
+        setEnabled(false);
+        _isSearching = true;
+        emit searchForTranslations(words);
     }
 }
 
index ec93ed4..0c7ca2d 100644 (file)
@@ -47,7 +47,7 @@ public:
 
 Q_SIGNALS:
     //! Requests to search for translation of word passed as parameter
-    void searchForTranslations(QString);
+    void searchForTranslations(QStringList);
 
     //! Request to stop all active searchings
     void stopSearching();
@@ -60,6 +60,7 @@ public Q_SLOTS:
     */
     void setEnabled(bool enabled = true);
     void searchFinished();
+    void searchWordList(QStringList);
 
 private Q_SLOTS:
     void clearSearchWordToolButtonClicked();
index aa088bb..22ce39f 100644 (file)
 #include "MainWindow.h"
 #include "../backbone/backbone.h"
 #include "../../includes/translation.h"
+#include <QDebug>
 
-int main(int argc, char *argv[])
-{
+
+QStringList parseParameters(int argc, char *argv[]) {
+    bool wordListStarted = false;
+    QStringList result;
+    for(int i=1; i<argc; i++) {
+        QString argument(argv[i]);
+        if(!wordListStarted) {
+            if(argument == "-s") {
+                wordListStarted = true;
+            }
+        }
+        else {
+            if(!argument.startsWith("-") &&
+               !argument.startsWith("--")) {
+                result << argument;
+            }
+        }
+    }
+
+    return result;
+}
+
+int main(int argc, char *argv[]) {
     QApplication a(argc, argv);
 
+    QStringList search = parseParameters(argc, argv);
+
     qRegisterMetaType<Translation*>("Translation*");
     qRegisterMetaType<QList<Translation*> >("QList<Translation*>");
     Backbone* backbone = new Backbone;
     MainWindow* w = new MainWindow(backbone);
     w->show();
 
+    if(search.count() > 0) {
+        w->search(search);
+    }
+
     return a.exec();
 }
index 96f9e26..61a482b 100644 (file)
@@ -245,7 +245,16 @@ void XdxfPlugin::getDictionaryInfo() {
     }
 
     dictionaryFile.close();
+}
 
+QString XdxfPlugin::removeAccents(QString string) {
+    QString normalized = string.normalized(QString::NormalizationForm_D);
+    for(int i=0; i<normalized.size(); i++) {
+        if(!normalized[i].isLetterOrNumber() && !normalized[i].isSpace()) {
+            normalized.remove(i,1);
+        }
+    }
+    return normalized;
 }
 
 Q_EXPORT_PLUGIN2(xdxf, XdxfPlugin)
index 8434ada..4c9c286 100644 (file)
@@ -96,6 +96,10 @@ public Q_SLOTS:
     //! stop current operation
     void stop();
 
+
+protected:
+    QString removeAccents(QString);
+
 private:
 /*! returns true or false depending on whether the dictionary is cached
     or not, not implemented yet