Added settings widget
[mdictionary] / trunk / src / base / gui / TranslationWidget.cpp
index f4dcf51..04c7565 100644 (file)
 //Created by Mateusz Półrola
 
 #include "TranslationWidget.h"
+#include "TranslationWidgetAutoResizer.h"
 #include <QDebug>
 
-TranslationWidget::TranslationWidget(Backbone *backbone, QWidget *parent):
-    QWidget(parent) {
-
-    this->backbone = backbone;
+TranslationWidget::TranslationWidget(QWidget *parent):
+    QScrollArea(parent) {
 
     #ifdef Q_WS_MAEMO_5
         setAttribute(Qt::WA_Maemo5StackedWindow);
@@ -35,22 +34,103 @@ TranslationWidget::TranslationWidget(Backbone *backbone, QWidget *parent):
     setWindowFlags(windowFlags() | Qt::Window);
 
     initializeUI();
+
+    setWindowTitle(tr("Translation"));
 }
 
-void TranslationWidget::show(QModelIndex index) {
-    QWidget::show();
-    QString v = index.model()->data(index, Qt::DisplayRole).toString();
-    Translation* t = backbone->result().value(v);
-    translationTextEdit->setText(t->toHtml());
+
+void TranslationWidget::show() {
+    QScrollArea::show();
+}
+
+void TranslationWidget::show(QStringList translations) {
+
+    show();
+
+    textEdit->clear();
+
+    QString trans;
+    QString t;
+    foreach(t, translations) {
+        trans += t + "\n";
+    }
+
+    textEdit->setPlainText(trans);
+
+    textEdit->repaint(this->rect());
+
+    update(this->rect());
+
+    emit updateSize();
 }
 
 void TranslationWidget::initializeUI() {
-    verticalLayout = new QVBoxLayout;
 
-    translationTextEdit = new QTextEdit;
+    zoomInToolButton = new QToolButton;
+    zoomInToolButton->setIcon(QIcon::fromTheme("pdf_zoomin"));
+
+    zoomOutToolButton = new QToolButton;
+    zoomOutToolButton->setIcon(QIcon::fromTheme("pdf_zoomout"));
+
+   // horizontalLayout = new QHBoxLayout;
+    //horizontalLayout->addWidget(zoomInToolButton);
+   // horizontalLayout->addWidget(zoomOutToolButton);
+
+    textEdit = new QTextEdit;
+    textEdit->setReadOnly(true);
+
+    resizer = new TranslationWidgetAutoResizer(textEdit);
+    connect(this, SIGNAL(updateSize()),
+            resizer, SLOT(textEditChanged()));
+
+    QWidget*w = new QWidget;
+    verticalLayout = new QVBoxLayout(w);
+    verticalLayout->addWidget(textEdit);
+
+    textEdit->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+    textEdit->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+
+
+    this->setWidget(w);
+    this->setWidgetResizable(true);
+
+    connect(zoomInToolButton, SIGNAL(clicked()),
+            textEdit, SLOT(zoomIn()));
+
+    connect(zoomInToolButton, SIGNAL(clicked()),
+            this, SIGNAL(updateSize()));
+
+    connect(zoomOutToolButton, SIGNAL(clicked()),
+            textEdit, SLOT(zoomOut()));
+
+    connect(zoomInToolButton, SIGNAL(clicked()),
+            this, SIGNAL(updateSize()));
+
+   /* #ifdef Q_WS_MAEMO_5
+        fullScreenButton = new QToolButton(this);
+        fullScreenButton->setIcon(QIcon::fromTheme("general_fullsize"));
+        fullScreenButton->setMinimumSize(fullScreenButton->sizeHint());
+        int x = QApplication::desktop()->screenGeometry(this).width()  -
+                fullScreenButton->sizeHint().width();
+        int y = QApplication::desktop()->screenGeometry(this).height() -
+                fullScreenButton->sizeHint().height();
+        fullScreenButton->move(QPoint(x,y));
+        fullScreenButton->show();
+        fullScreenButton->setWindowOpacity(0.5);
+
 
-    verticalLayout->addWidget(translationTextEdit);
+        backButton = new QToolButton(this);
+        backButton->setIcon(QIcon::fromTheme("general_overlay_back"));
+        backButton->setMinimumSize(fullScreenButton->sizeHint());
+        x = QApplication::desktop()->screenGeometry(this).width()  -
+                backButton->sizeHint().width();
+        y = 0;
+        backButton->move(QPoint(x,y));
+        backButton->show();
+        backButton->setWindowOpacity(0.5);
 
-    setLayout(verticalLayout);
+        connect(backButton, SIGNAL(clicked()),
+                this, SLOT(hide()));
+    #endif*/
 }