From af899859e87bdca71fa6f3dbcf1633ed01b4eec9 Mon Sep 17 00:00:00 2001 From: Bartosz Szatkowski Date: Tue, 31 Aug 2010 10:37:32 +0200 Subject: [PATCH] Context menu added for webkig: search, copy, selectall --- trunk/src/base/base.pro | 6 +- trunk/src/base/gui/TranslationTextEdit.cpp | 27 ++++++--- trunk/src/base/gui/TranslationTextEdit.h | 3 + trunk/src/base/gui/TranslationWidget.cpp | 25 +------- trunk/src/base/gui/TranslationWidget.h | 2 - trunk/src/base/gui/TranslationWidgetAutoResizer.h | 67 --------------------- 6 files changed, 22 insertions(+), 108 deletions(-) delete mode 100644 trunk/src/base/gui/TranslationWidgetAutoResizer.h diff --git a/trunk/src/base/base.pro b/trunk/src/base/base.pro index 632cc8b..5119976 100644 --- a/trunk/src/base/base.pro +++ b/trunk/src/base/base.pro @@ -7,7 +7,6 @@ QT += core \ xml \ xmlpatterns \ webkit - maemo5:QT += maemo5 TARGET = mdictionary TEMPLATE = app @@ -48,7 +47,6 @@ HEADERS += gui/MainWindow.h \ gui/MenuTabWidget.h \ gui/DictManagerWidget.h \ gui/DictTypeSelectDialog.h \ - gui/TranslationWidgetAutoResizer.h \ ../includes/History.h \ gui/HistoryListDialog.h \ ../includes/GUIInterface.h \ @@ -77,8 +75,7 @@ unix { INSTALLS += target \ desktop \ icon64 \ - bookmarks - + bookmarks target.path = $$BINDIR maemo5 { desktop.path = $$DATADIR/applications/hildon @@ -90,7 +87,6 @@ unix { } desktop.files += ../../../data/other/$${TARGET}.desktop icon64.files += ../../../data/icons/64x64/$${TARGET}.png - bookmarks.path = $$LIBDIR bookmarks.files += ../../../data/icons/16x16/staron.png } diff --git a/trunk/src/base/gui/TranslationTextEdit.cpp b/trunk/src/base/gui/TranslationTextEdit.cpp index 4f5766d..dd46e02 100644 --- a/trunk/src/base/gui/TranslationTextEdit.cpp +++ b/trunk/src/base/gui/TranslationTextEdit.cpp @@ -28,23 +28,30 @@ TranslationTextEdit::TranslationTextEdit(QWidget *parent) : QWebView(parent) { searchSelectedAction = new QAction(tr("Search"), this); + copySelectedAction = new QAction(tr("Copy"), this); + selectAllAction = new QAction(tr("Select All"), this); connect(searchSelectedAction, SIGNAL(triggered()), this, SIGNAL(search())); } void TranslationTextEdit::contextMenuEvent(QContextMenuEvent *e) { - //QMenu *menu = createStandardContextMenu(e->pos()); - //if(page()->selectedText().isEmpty()) - // searchSelectedAction->setEnabled(false); - //else - // searchSelectedAction->setEnabled(true); + QMenu *menu = new QMenu; + if(selectedText().isEmpty()) + searchSelectedAction->setEnabled(false); + else + searchSelectedAction->setEnabled(true); - //menu->addSeparator(); - //menu->addAction(searchSelectedAction); + menu->addAction(searchSelectedAction); + menu->addSeparator(); + menu->addAction(pageAction(QWebPage::Copy)); + menu->addAction(pageAction(QWebPage::SelectAll)); - //menu->exec(e->globalPos()); - //delete menu; + menu->exec(e->globalPos()); + delete menu; - //e->ignore(); + e->ignore(); } + + + diff --git a/trunk/src/base/gui/TranslationTextEdit.h b/trunk/src/base/gui/TranslationTextEdit.h index b6e48ae..6f3fe3b 100644 --- a/trunk/src/base/gui/TranslationTextEdit.h +++ b/trunk/src/base/gui/TranslationTextEdit.h @@ -42,6 +42,9 @@ protected: private: QAction* searchSelectedAction; + QAction* copySelectedAction; + QAction* selectAllAction; + }; #endif // TRANSLATIONTEXTEDIT_H diff --git a/trunk/src/base/gui/TranslationWidget.cpp b/trunk/src/base/gui/TranslationWidget.cpp index 379bdbe..161cf0b 100644 --- a/trunk/src/base/gui/TranslationWidget.cpp +++ b/trunk/src/base/gui/TranslationWidget.cpp @@ -22,7 +22,6 @@ //Created by Mateusz Półrola #include "TranslationWidget.h" -#include "TranslationWidgetAutoResizer.h" #include #ifdef Q_WS_MAEMO_5 #include @@ -76,19 +75,6 @@ void TranslationWidget::show(QStringList translations) { trans += t + "\n"; } - - QImage image(":icons/16x16/staron.png"); -// QTextDocument *document = textEdit->document(); -// document->addResource(QTextDocument::ImageResource, -// QUrl("mydata://image.png"), QVariant(image)); - - // QFile cssFile(QDir::homePath() + "/.mdictionary/style.css"); - // cssFile.open(QFile::ReadOnly); - // document->addResource(QTextDocument::StyleSheetResource, -// QUrl("mydata://style.css"), -// QVariant(cssFile.readAll())); - - trans=tr("") + tr("\n ") + trans + tr("\n "); trans=XslConversion(trans); @@ -102,7 +88,6 @@ void TranslationWidget::show(QStringList translations) { trans.replace("$STAR$", "/usr/lib/mdictionary/staron.png"); - qDebug () << trans; webkit->setHtml(trans, QUrl().fromLocalFile("/")); @@ -214,19 +199,11 @@ void TranslationWidget::initButtons() { void TranslationWidget::initializeUI() { webkit = new TranslationTextEdit(this); -// textEdit->setReadOnly(true); - - //resizer = new TranslationWidgetAutoResizer(textEdit); - //connect(this, SIGNAL(updateSize()), - //resizer, SLOT(textEditChanged())); QWidget*w = new QWidget(this); verticalLayout = new QVBoxLayout(w); verticalLayout->addWidget(webkit); -// textEdit->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - // textEdit->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - this->setWidget(w); this->setWidgetResizable(true); @@ -291,7 +268,7 @@ void TranslationWidget::searchSelected() { #ifdef Q_WS_MAEMO_5 hide(); #endif - Q_EMIT search(webkit->page()->selectedText()); + Q_EMIT search(webkit->selectedText().toLower()); } #ifdef Q_WS_MAEMO_5 diff --git a/trunk/src/base/gui/TranslationWidget.h b/trunk/src/base/gui/TranslationWidget.h index 8e380c9..92139d8 100644 --- a/trunk/src/base/gui/TranslationWidget.h +++ b/trunk/src/base/gui/TranslationWidget.h @@ -29,7 +29,6 @@ #include #include #include "../backbone/backbone.h" -#include "TranslationWidgetAutoResizer.h" #include #include #include "TranslationTextEdit.h" @@ -97,7 +96,6 @@ private: #endif QVBoxLayout *verticalLayout; QHBoxLayout* horizontalLayout; - TranslationWidgetAutoResizer* resizer; void initializeUI(); }; diff --git a/trunk/src/base/gui/TranslationWidgetAutoResizer.h b/trunk/src/base/gui/TranslationWidgetAutoResizer.h deleted file mode 100644 index 038e1bf..0000000 --- a/trunk/src/base/gui/TranslationWidgetAutoResizer.h +++ /dev/null @@ -1,67 +0,0 @@ -/******************************************************************************* - - This file is part of mDictionary. - - mDictionary is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - mDictionary is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with mDictionary. If not, see . - - Copyright 2010 Comarch S.A. - -*******************************************************************************/ -//! \file TranslationWidgetAutoResizer.h -//! \brief Implements translation widget auto resizer -//! \author Mateusz Półrola a - -#ifndef TRANSLATIONWIDGETAUTORESIZER_H -#define TRANSLATIONWIDGETAUTORESIZER_H - -#include -class TranslationWidgetAutoResizer : public QObject -{ - Q_OBJECT - -public: - TranslationWidgetAutoResizer(QWidget *parent) :QObject(parent), - textEdit(qobject_cast((parent))), - edit(qobject_cast((parent))) { - - // connect(parent, SIGNAL(textChanged()), this, - // SLOT(textEditChanged())); - // connect(parent, SIGNAL(cursorPositionChanged()), - // this, SLOT(textEditChanged())); - } - -public Q_SLOTS: - inline void textEditChanged(); - -private: - QTextEdit *textEdit; - QFrame *edit; -}; - -void TranslationWidgetAutoResizer::textEditChanged() { - QTextDocument *doc = textEdit->document(); - - QSize s = doc->size().toSize(); - - const QRect fr = edit->frameRect(); - const QRect cr = edit->contentsRect(); - - edit->setMinimumHeight(qMax(70, s.height() + (fr.height() - cr.height()) - - 1)); - - edit->setMinimumHeight(qMax(70, s.height() + (fr.height() - cr.height()) - - 1)); -} - -#endif // TRANSLATIONWIDGETAUTORESIZER_H -- 1.7.9.5