starDict dialog in qml
authorjakub <jakub.jaszczynski@comarch.com>
Fri, 14 Jan 2011 11:25:50 +0000 (12:25 +0100)
committerjakub <jakub.jaszczynski@comarch.com>
Fri, 14 Jan 2011 11:25:50 +0000 (12:25 +0100)
src/mdictionary/qml/XdxfDialog.qml
src/plugins/stardict/StarDialog.cpp
src/plugins/stardict/StarDialog.h
src/plugins/stardict/stardict.png [deleted file]
src/plugins/stardict/stardict.pro
src/plugins/xdxf/XdxfDialog.cpp
src/plugins/xdxf/xdxf.pro

index 567c455..1b71ff3 100644 (file)
@@ -38,7 +38,6 @@ Rectangle{
         newPlugin=bool;
     }
     function setPath(string){
-        console.log("new path");
         textPath.text=string;
     }
 
index 9936646..fcfa6be 100644 (file)
 #include <QFile>
 
 StarDialog::StarDialog(StarDictPlugin *plugin, StarDialogType type,
-                       QWidget *parent) : QDialog(parent) {
+                       QWidget *parent) : QDialog(parent) {                                        
    this->plugin = plugin;
    this->type = type;
-   initializeUI();
+
+#ifndef Q_WS_MAEMO_5
+    view= new QDeclarativeView();
+    view->setSource(QUrl::fromLocalFile("/usr/share/mdictionary/qml/StarDictDialog.qml"));
+    view->setResizeMode(QDeclarativeView::SizeRootObjectToView);
+    view->setAlignment(Qt::AlignCenter);
+    view->show();
+
+    mainLayout = new QVBoxLayout;
+    mainLayout->addWidget(view);
+    setLayout(mainLayout);
+    view->setWindowTitle(tr("StarDict Settings"));
+
+    QGraphicsObject *rootObject = view->rootObject();
+
+    connect(this, SIGNAL(setInfo(QVariant)),
+           rootObject, SLOT(setInfo(QVariant)));
+    connect(this,SIGNAL(setButtonText(QVariant)),
+            rootObject, SLOT(setButtonText(QVariant)));
+    connect(this,SIGNAL(setNew(QVariant)),
+            rootObject, SLOT(setNew(QVariant)));
+    connect(this,SIGNAL(setPath(QVariant)),
+            rootObject, SLOT(setPath(QVariant)));
+
+    connect(rootObject, SIGNAL(saveButtonClicked()),
+            this, SLOT(accept()));
+    connect(rootObject, SIGNAL(browseButtonClicked()),
+            this, SLOT(selectFile()));
+    connect(rootObject, SIGNAL(heightChange(int)),
+            this, SLOT(heightChange(int)));
+
+#else
    if(type == New)
        connect(browseButton, SIGNAL(clicked()),this, SLOT(selectFile()));
    connect(confirmButton, SIGNAL(clicked()),this, SLOT(accept()));
+#endif
+    initializeUI();
+}
+
+void StarDialog::heightChange(int height){
+    if(height>sizeHint().height())
+        resize(sizeHint().width(),height);
+    lastHeight=height;
 }
 
+void StarDialog::resizeEvent(QResizeEvent *e){
+    QDialog::resizeEvent(e);
+    if(lastHeight>sizeHint().height()){
+        resize(sizeHint().width(),lastHeight);
+    }
+}
 
 void StarDialog::initializeUI() {
+#ifndef Q_WS_MAEMO_5
+    if(type != New){
+        emit setNew(false);
+        QString info=tr("Plugin: ") + plugin->type().toUpper() +"\n" +
+            tr("Book name: ") + plugin->settings()->value("bookname") + "\n" +
+            tr("Version: ") + plugin->settings()->value("version") + "\n" +
+            tr("Word count: ") + plugin->settings()->value("wordcount") + "\n" +
+            tr("Author: ") + plugin->settings()->value("author") + "\n" +
+            tr("E-mail: ") + plugin->settings()->value("email") + "\n" +
+            tr("Website: ") + plugin->settings()->value("website") + "\n" +
+            tr("Description: ") + plugin->settings()->value("description")+"\n"+
+            tr("Date: ") + plugin->settings()->value("date");
+        emit setInfo(info);
+        emit setButtonText("Save settings");
+    }
+    else{
+        emit setNew(true);
+        emit setButtonText("Add");
+    }
+
+    if(!plugin)
+        _dictionaryFilePath = "";
+
+#else
     mainVerticalLayout = new QVBoxLayout;
     widget = new QWidget;
     widget->setLayout(mainVerticalLayout);
@@ -54,7 +123,6 @@ void StarDialog::initializeUI() {
         browseButton->setMaximumWidth(150);
         infoLabel->setText(tr("Dictionary file: not selected"));
         setWindowTitle(tr("Add new StarDict dictionary"));
-        infoLabel->setText(tr("Dictionary file: not selected"));
         browseLayout->addWidget(infoLabel, 0, Qt::AlignLeft);
         browseLayout->addLayout(buttonLayout);
         browseLayout->addWidget(browseButton, 0, Qt::AlignRight);
@@ -114,6 +182,7 @@ void StarDialog::initializeUI() {
     scrollArea->setLineWidth(0);
     scrollArea->setMidLineWidth(0);
     scrollArea->setFrameStyle(QFrame::NoFrame);
+#endif
 }
 
 
@@ -125,20 +194,31 @@ void StarDialog::selectFile() {
                      NULL,
                      NULL);
     if (!fileName.isEmpty()) {
+#ifndef Q_WS_MAEMO_5
+        emit setPath(tr("Dictionary file: %1").arg(fileName));
+#else
         infoLabel->setText(tr("Dictionary file: %1").arg(fileName));
+#endif
         _dictionaryFilePath = fileName;
         if (_dictionaryFilePath.endsWith(".tar.bz2"))
             _isCompressed = true;
         else
             _isCompressed = false;
+#ifndef Q_WS_MAEMO_5
+     //   qDebug()<<"hint"<<view->sizeHint();
+      //  qDebug()<<"size"<<view->size();
+        resize(view->sizeHint());
+
+#else
         updateGeometry();
+#endif
     }
 }
 
 
 void StarDialog::saveSettings() {
-    _settings = new Settings;
 
+    _settings = new Settings;
     if(plugin)
         foreach(QString key, plugin->settings()->keys())
             _settings->setValue(key, plugin->settings()->value(key));
@@ -158,7 +238,6 @@ void StarDialog::saveSettings() {
         else
             _settings->setValue("dictFileName", _dictName + ".dict");
     }
-
     if(_settings->value("synFileName")=="")
         if (QFile::exists(_dictName + ".syn") == true)
             _settings->setValue("synFileName", _dictName + ".syn");
index 3153491..876e341 100644 (file)
@@ -31,6 +31,7 @@
 #include <QDialog>
 #include "../../include/settings.h"
 #include <QtGui>
+#include <QDeclarativeView>
 #include "StarDictPlugin.h"
 
 
@@ -78,6 +79,11 @@ Q_SIGNALS:
     //! Requests to show notification
     void notify(Notify::NotifyType, QString);
 
+    void setInfo(QVariant info);
+    void setButtonText(QVariant text);
+    void setNew(QVariant text);
+    void setPath(QVariant path);
+
 public Q_SLOTS:
     /*!
         Reimplemented accept method, to check if all necessary fields in
@@ -86,11 +92,21 @@ public Q_SLOTS:
     */
     void accept();
 
+
+
 private Q_SLOTS:
+    void resizeEvent(QResizeEvent *e);
+
     //! displays dialog to browse and select file
     void selectFile();
 
+    void heightChange(int height);
+
 private:
+    QVBoxLayout* mainLayout;
+    QDeclarativeView *view;
+    int lastHeight;
+
     //! create a user interface
     void initializeUI();
 
diff --git a/src/plugins/stardict/stardict.png b/src/plugins/stardict/stardict.png
deleted file mode 100644 (file)
index 19ab37c..0000000
Binary files a/src/plugins/stardict/stardict.png and /dev/null differ
index 8ae6fe1..47a8f38 100644 (file)
@@ -5,7 +5,8 @@ include(../plugin.pri)
 QT = core \
     gui \
     xml \
-    sql
+    sql \
+    declarative
 
 maemo5:QT += maemo5
 
@@ -20,7 +21,6 @@ SOURCES +=  \
     UncompressedReader.cpp \
     StarDictReaderFactory.cpp
 
-
 HEADERS += \
     StarDictPlugin.h \
     TranslationStarDict.h \
@@ -35,20 +35,35 @@ HEADERS += \
     StarDictReaderFactory.h \
     StarDictReader.h
 
-RESOURCES += \
-    StarDict.qrc
+RESOURCES += StarDict.qrc
 
 TRANSLATIONS += pl_PL.ts \
                 en_US.ts
     
 unix {
-  INSTALLS += plugin-icon
-
+    meego {
+        qmls.path = $$DATA_DIR/qml
+        qmls.files += ../../mdictionary/qml/StarDictDialog.qml
+    }
+    else:maemo5 {
+        qmls.path = $$DATA_DIR/qml
+        qmls.files += ../../mdictionary/qml/StarDictDialog.qml
+    }
+    else {
+        qmls.path = $$DATA_DIR/qml
+        qmls.files += ../../mdictionary/qml/StarDictDialog.qml
+    }
 
+    plugin-icon.path = $$DATA_DIR
+    plugin-icon.files += stardict.png
 
-  plugin-icon.path = $$DATA_DIR
-  plugin-icon.files += stardict.png
+    INSTALLS += plugin-icon \
+                qmls
 }
 
-check.commands = echo 'No check here'
+check.commands = echo \
+                'No check here'
 QMAKE_EXTRA_TARGETS += check
+
+OTHER_FILES += \
+    ../../mdictionary/qml/StarDictDialog.qml \
index 32abb55..7053030 100644 (file)
@@ -112,7 +112,6 @@ XdxfDialog::XdxfDialog(XdxfPlugin *plugin,
     connect(confirmButton, SIGNAL(clicked()),
             this, SLOT(accept()));
 #endif
-
     initializeUI();
 }
 
@@ -127,8 +126,10 @@ void XdxfDialog::initializeUI() {
         emit setTo(plugin->langTo());
         emit setDescription(plugin->name());
         emit setInfo(plugin->infoNote());
+        emit setButtonText("Save settings");
     }
     else{
+        emit setButtonText("Add");
         emit setNew(true);
         connect(&XdxfPlugin::dictDownloader, SIGNAL(fileDownloaded(QString)),
                 this, SLOT(fileDownloaded(QString)));
@@ -161,10 +162,6 @@ void XdxfDialog::initializeUI() {
             _accents = false;
         }
     }
-    if(type == New)
-        emit setButtonText("Add");
-    else
-        emit setButtonText("Save settings");
 
 #else
     mainVerticalLayout = new QVBoxLayout;
index f91a16a..f342bfb 100644 (file)
@@ -1,5 +1,7 @@
 TARGET = xdxf
+
 include(../plugin.pri)
+
 QT = core \
     gui \
     xml \
@@ -15,8 +17,8 @@ maemo5 {
     LIBS += -ltar \
         -lbz2
 }
-
 maemo5:QT += maemo5
+
 SOURCES += xdxfplugin.cpp \
     TranslationXdxf.cpp \
     XdxfDictDialog.cpp \
@@ -27,6 +29,7 @@ SOURCES += xdxfplugin.cpp \
     XdxfDictDownloadProgressDialog.cpp \
     DictsModel.cpp \
     HttpDownloader.cpp
+
 HEADERS += xdxfplugin.h \
     TranslationXdxf.h \
     ../../include/DictDialog.h \
@@ -43,13 +46,15 @@ HEADERS += xdxfplugin.h \
     DictsModel.h \
     DictsProxyModel.h \
     HttpDownloader.h
+
 RESOURCES += xdxf.qrc
+
 TRANSLATIONS += pl_PL.ts \
-    en_US.ts
+                en_US.ts
+
 OTHER_FILES += \
     ../../mdictionary/qml/XdxfDialog.qml
 
-
 unix {
     dicts.path = $$PLUGINS_DIR
     dicts.files += ../../../data/dicts/eng-us.xdxf
@@ -75,7 +80,5 @@ unix {
         qmls
 }
 check.commands = echo \
-    'No check here'
+                'No check here'
 QMAKE_EXTRA_TARGETS += check
-
-