Delete some debug symbols
[mverbiste] / mainwindow.cpp
index 9e227d4..54b2d50 100644 (file)
@@ -22,15 +22,18 @@ void MainWindow::setupcodedUI()
     btlayout = new QHBoxLayout;
 
     resultPages = new QTabWidget;
-    resultPages->setTabPosition(QTabWidget::West);
+    resultPages->setStyleSheet("QTabBar::tab { height: 50px }");
     mlayout->addWidget(resultPages);
 
-    btnClear = new QPushButton;
+    btnPron = new QCheckBox();
+    btnPron->setIcon(QIcon("/usr/share/icons/hicolor/48x48/hildon/general_conference_avatar.png"));
+    btnClear = new QPushButton;   /* Clearbutton */
     btnClear->setIcon(QIcon("/usr/share/icons/hicolor/64x64/hildon/general_delete.png"));
-    wordinput = new QLineEdit;
+    wordinput = new QLineEdit;    /* Word input */
+    btlayout->addWidget(btnPron);
     btlayout->addWidget(btnClear);
     btlayout->addWidget(wordinput);
-    btnLookup = new QPushButton;  // Lookup button
+    btnLookup = new QPushButton;  /* Lookup button */
     btnLookup->setIcon(QIcon("/usr/share/icons/hicolor/64x64/hildon/general_search.png"));
     btlayout->addWidget(btnLookup);
 
@@ -42,6 +45,7 @@ void MainWindow::setupcodedUI()
 
     connect(wordinput, SIGNAL(returnPressed()), this, SLOT(startLookup()));
     connect(btnLookup, SIGNAL(clicked()), this, SLOT(startLookup()));
+    connect(btnPron, SIGNAL(clicked()), this, SLOT(startLookup()));
 
     /* Icon */
     QIcon *icon = new QIcon();
@@ -57,6 +61,17 @@ void MainWindow::setupcodedUI()
     QMenu *menu = ui->menuBar->addMenu(tr("Top menu"));
     QAction *act_about = menu->addAction(tr("About"));
     connect(act_about, SIGNAL(triggered()), aboutDialog, SLOT(show()));
+    /* Menu filters */
+    QActionGroup *filterGroup = new QActionGroup(this);
+    filterGroup->setExclusive(true);
+    filFrench = new QAction(tr("Search French"), filterGroup);
+    filFrench->setCheckable(true);
+    filFrench->setChecked(true);
+    filItalian = new QAction(tr("Search Italian"), filterGroup);
+    filItalian->setCheckable(true);
+    menu->addActions(filterGroup->actions());
+    connect(filItalian, SIGNAL(changed()), this, SLOT(switchLang()));
+    connect(filFrench, SIGNAL(changed()), this, SLOT(switchLang()));
 }
 
 MainWindow::~MainWindow()
@@ -136,6 +151,21 @@ void  MainWindow::initverbiste()
     freVerbDic = new FrenchVerbDictionary(true);
 }
 
+void MainWindow::switchLang()
+{
+    FrenchVerbDictionary::Language curlang = freVerbDic->getLanguage();
+    FrenchVerbDictionary::Language targetlang = filItalian->isChecked() ? FrenchVerbDictionary::ITALIAN
+                                                                        : FrenchVerbDictionary::FRENCH;
+    if (curlang == targetlang) {
+        return;
+    }
+    /* If lang change */
+    std::string conjFN, verbsFN;
+    FrenchVerbDictionary::getXMLFilenames(conjFN, verbsFN, targetlang);
+    delete freVerbDic;
+    freVerbDic = new FrenchVerbDictionary(conjFN, verbsFN, true, targetlang);
+}
+
 void MainWindow::startLookup()
 {
     QString input = wordinput->text().trimmed();
@@ -157,13 +187,9 @@ void MainWindow::startLookup()
      *  obtain its complete conjugation.
      */
     std::vector<InflectionDesc> infles;
-    bool includePronouns = FALSE;    // TODO: Will get this value from external
-    bool isItalian = FALSE;          // TODO: Will get this value from external
+    bool includePronouns = btnPron->isChecked();
+    bool isItalian = filItalian->isChecked();          // TODO: Will get this value from external
 
-#ifndef QT_NO_DEBUG
-    timer.start();
-    qDebug() << "Start " << timer.elapsed();
-#endif
     freVerbDic->deconjugate(word, infles);
 
     resultPages->setUpdatesEnabled(false);
@@ -175,34 +201,13 @@ void MainWindow::startLookup()
     {
         const InflectionDesc &d = *it;
 
-#ifndef QT_NO_DEBUG
-        qDebug() << ">> Infinitive " << d.infinitive.c_str();
-        qDebug() << "   Template " << d.templateName.c_str();
-#endif
         /* If this infinitive has been conjugated, we skip to the next infinitive */
         if (d.infinitive == prevUTF8Infinitive && d.templateName == prevTemplateName) {
             continue;
         }
-        /* FIXME:
-         * In original source (Verbiste), this checking is done later,
-         * after getConjugation(). I place it here to avoid calling again
-         * multitimes getConjugation(), which is very slow.
-         * We need to test more to see which place is more correct.
-         */
 
         VVVS conjug;
-#ifndef QT_NO_DEBUG
-        qDebug() << "   START getConjugation " << timer.elapsed();
-#endif
-        getConjugation(*freVerbDic, d.infinitive, d.templateName, conjug,
-               #ifndef QT_NO_DEBUG
-                       timer,
-               #endif
-                       includePronouns);
-
-#ifndef QT_NO_DEBUG
-        qDebug() << "   getConjugation() returns: " << timer.elapsed();
-#endif
+        getConjugation(*freVerbDic, d.infinitive, d.templateName, conjug, includePronouns);
 
         if (conjug.size() == 0           // if no tenses
             || conjug[0].size() == 0     // if no infinitive tense
@@ -213,10 +218,6 @@ void MainWindow::startLookup()
         }
 
         std::string utf8Infinitive = conjug[0][0][0];
-#ifndef QT_NO_DEBUG
-        qDebug() << "     Infinitive " << utf8Infinitive.c_str();
-        qDebug() << "     Template " << d.templateName.c_str();
-#endif
 
         /* Add result to GUI (not show yet) */
         ResultPage *rsp = addResultPage(utf8Infinitive);