From 8c019fa64eb551f421e4ca6996714e4ab76d29b7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mateusz=20P=C3=B3=C5=82rola?= Date: Thu, 5 Aug 2010 12:01:45 +0200 Subject: [PATCH] Added context menu to TranslationWidget --- trunk/src/base/gui/SearchBarWidget.cpp | 8 ++++---- trunk/src/base/gui/TranslationWidget.cpp | 25 ++++++++++++++++++------- trunk/src/base/gui/TranslationWidget.h | 9 ++++++--- trunk/src/base/gui/WordListWidget.cpp | 2 +- 4 files changed, 29 insertions(+), 15 deletions(-) diff --git a/trunk/src/base/gui/SearchBarWidget.cpp b/trunk/src/base/gui/SearchBarWidget.cpp index 4009da1..6ff6694 100644 --- a/trunk/src/base/gui/SearchBarWidget.cpp +++ b/trunk/src/base/gui/SearchBarWidget.cpp @@ -88,7 +88,7 @@ void SearchBarWidget::initializeUI() { clearSearchWordToolButton = new QToolButton(); - clearSearchWordToolButton->setIcon(QIcon("sowa.svg")); + clearSearchWordToolButton->setIcon(QIcon::fromTheme("gtk-delete")); //tool buttons will have size 2 times smaller clearSearchWordToolButton->setMaximumSize( clearSearchWordToolButton->sizeHint().width()/2, @@ -96,21 +96,21 @@ void SearchBarWidget::initializeUI() { historyNextToolButton = new QToolButton(); - historyNextToolButton->setIcon(QIcon("sowa.svg")); + historyNextToolButton->setIcon(QIcon::fromTheme("gtk-go-forward")); historyNextToolButton->setMaximumSize( historyNextToolButton->sizeHint().width()/2, historyNextToolButton->sizeHint().height()/2); historyPrevToolButton = new QToolButton(); - historyPrevToolButton->setIcon(QIcon("sowa.svg")); + historyPrevToolButton->setIcon(QIcon::fromTheme("gtk-go-back")); historyPrevToolButton->setMaximumSize( historyPrevToolButton->sizeHint().width()/2, historyPrevToolButton->sizeHint().height()/2); historyShowToolButton = new QToolButton(); - historyShowToolButton->setIcon(QIcon("sowa.svg")); + historyShowToolButton->setIcon(QIcon::fromTheme("gtk-go-up")); historyShowToolButton->setMaximumSize( historyShowToolButton->sizeHint().width()/2, historyShowToolButton->sizeHint().height()/2); diff --git a/trunk/src/base/gui/TranslationWidget.cpp b/trunk/src/base/gui/TranslationWidget.cpp index a14b821..78e7b3d 100644 --- a/trunk/src/base/gui/TranslationWidget.cpp +++ b/trunk/src/base/gui/TranslationWidget.cpp @@ -25,30 +25,41 @@ #include TranslationWidget::TranslationWidget(Backbone *backbone, QWidget *parent): - QWidget(parent) { + QTextEdit(parent) { this->backbone = backbone; setAttribute(Qt::WA_Maemo5StackedWindow); setWindowFlags(windowFlags() | Qt::Window); + setContextMenuPolicy(Qt::CustomContextMenu); + + setReadOnly(true); + + connect(this, SIGNAL(customContextMenuRequested(QPoint)), + this, SLOT(showContextMenu(QPoint))); + initializeUI(); } void TranslationWidget::show(QModelIndex index) { QWidget::show(); + clear(); QString v = index.model()->data(index, Qt::DisplayRole).toString(); Translation* t = backbone->result().value(v); - translationTextEdit->setText(t->toHtml()); + setText(t->toHtml()); + update(); } void TranslationWidget::initializeUI() { - verticalLayout = new QVBoxLayout; + contextMenu = new QMenu; - translationTextEdit = new QTextEdit; - - verticalLayout->addWidget(translationTextEdit); + contextMenu->addAction(tr("Copy"), this, SLOT(copy())); + contextMenu->addAction(tr("Paste"), this, SLOT(paste())); + contextMenu->addAction(tr("Select all"), this, SLOT(selectAll())); +} - setLayout(verticalLayout); +void TranslationWidget::showContextMenu(QPoint pos) { + contextMenu->exec(pos); } diff --git a/trunk/src/base/gui/TranslationWidget.h b/trunk/src/base/gui/TranslationWidget.h index 721f702..f4afadd 100644 --- a/trunk/src/base/gui/TranslationWidget.h +++ b/trunk/src/base/gui/TranslationWidget.h @@ -33,7 +33,7 @@ /*! Display many translation of word, formatted as html. */ -class TranslationWidget : public QWidget { +class TranslationWidget : public QTextEdit { Q_OBJECT public: explicit TranslationWidget(Backbone* backbone, QWidget *parent = 0); @@ -44,10 +44,13 @@ public Q_SLOTS: //! Request to show translation of word passed as QModelIndex from word list void show(QModelIndex); +private Q_SLOTS: + void showContextMenu(QPoint pos); + private: Backbone *backbone; - QTextEdit* translationTextEdit; - QVBoxLayout* verticalLayout; + QMenu *contextMenu; + void initializeUI(); diff --git a/trunk/src/base/gui/WordListWidget.cpp b/trunk/src/base/gui/WordListWidget.cpp index 3174537..2ad4e49 100644 --- a/trunk/src/base/gui/WordListWidget.cpp +++ b/trunk/src/base/gui/WordListWidget.cpp @@ -67,5 +67,5 @@ void WordListWidget::showSearchResults() { addWord(i.key(), i.value()); } - wordListModel->sort(0, Qt::DescendingOrder); + wordListModel->sort(0, Qt::AscendingOrder); } -- 1.7.9.5