summaryrefslogtreecommitdiffstats
path: root/tools/assistant
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2009-05-27 21:04:41 (GMT)
committerSimon Hausmann <simon.hausmann@nokia.com>2009-05-27 21:04:41 (GMT)
commitfcfdccc03b6dd26a82e87a6b6a0ca48d67f78cf6 (patch)
tree2cdd417bc0be39b12674f33052462d19d9e38ef9 /tools/assistant
parent7b1f8c542bc9f41408f0a54b853d75d0c09a2775 (diff)
parentd0bc0a26f8ac4c2f02819c262b8aa7c3dd1cad3b (diff)
downloadQt-fcfdccc03b6dd26a82e87a6b6a0ca48d67f78cf6.zip
Qt-fcfdccc03b6dd26a82e87a6b6a0ca48d67f78cf6.tar.gz
Qt-fcfdccc03b6dd26a82e87a6b6a0ca48d67f78cf6.tar.bz2
Merge branch '4.5' of git@scm.dev.nokia.troll.no:qt/qt
Conflicts: tests/auto/qtreeview/tst_qtreeview.cpp
Diffstat (limited to 'tools/assistant')
-rw-r--r--tools/assistant/tools/assistant/centralwidget.cpp166
-rw-r--r--tools/assistant/tools/assistant/centralwidget.h10
-rw-r--r--tools/assistant/translations/qt_help.pro3
-rw-r--r--tools/assistant/translations/translations.pro3
4 files changed, 108 insertions, 74 deletions
diff --git a/tools/assistant/tools/assistant/centralwidget.cpp b/tools/assistant/tools/assistant/centralwidget.cpp
index b78f346..52d48d5 100644
--- a/tools/assistant/tools/assistant/centralwidget.cpp
+++ b/tools/assistant/tools/assistant/centralwidget.cpp
@@ -87,6 +87,7 @@ namespace {
FindWidget::FindWidget(QWidget *parent)
: QWidget(parent)
+ , appPalette(qApp->palette())
{
QHBoxLayout *hboxLayout = new QHBoxLayout(this);
QString resourcePath = QLatin1String(":/trolltech/assistant/images/");
@@ -148,6 +149,34 @@ FindWidget::~FindWidget()
{
}
+void FindWidget::hideEvent(QHideEvent* event)
+{
+#if !defined(QT_NO_WEBKIT)
+ // TODO: remove this once webkit supports setting the palette
+ if (!event->spontaneous())
+ qApp->setPalette(appPalette);
+#else
+ Q_UNUSED(event);
+#endif
+}
+
+void FindWidget::showEvent(QShowEvent* event)
+{
+#if !defined(QT_NO_WEBKIT)
+ // TODO: remove this once webkit supports setting the palette
+ if (!event->spontaneous()) {
+ QPalette p = appPalette;
+ p.setColor(QPalette::Inactive, QPalette::Highlight,
+ p.color(QPalette::Active, QPalette::Highlight));
+ p.setColor(QPalette::Inactive, QPalette::HighlightedText,
+ p.color(QPalette::Active, QPalette::HighlightedText));
+ qApp->setPalette(p);
+ }
+#else
+ Q_UNUSED(event);
+#endif
+}
+
void FindWidget::updateButtons()
{
if (editFind->text().isEmpty()) {
@@ -245,12 +274,14 @@ CentralWidget::CentralWidget(QHelpEngine *engine, MainWindow *parent)
SLOT(showTabBarContextMenu(QPoint)));
}
- QPalette p = qApp->palette();
+#if defined(QT_NO_WEBKIT)
+ QPalette p = palette();
p.setColor(QPalette::Inactive, QPalette::Highlight,
p.color(QPalette::Active, QPalette::Highlight));
p.setColor(QPalette::Inactive, QPalette::HighlightedText,
p.color(QPalette::Active, QPalette::HighlightedText));
- qApp->setPalette(p);
+ setPalette(p);
+#endif
}
CentralWidget::~CentralWidget()
@@ -848,60 +879,64 @@ void CentralWidget::keyPressEvent(QKeyEvent *e)
QWidget::keyPressEvent(e);
}
-void CentralWidget::find(QString ttf, bool forward, bool backward)
+void CentralWidget::find(const QString &ttf, bool forward, bool backward)
{
- QTextCursor cursor;
- QTextDocument *doc = 0;
- QTextBrowser *browser = 0;
-
- HelpViewer *viewer = currentHelpViewer();
QPalette p = findWidget->editFind->palette();
p.setColor(QPalette::Active, QPalette::Base, Qt::white);
-#if !defined(QT_NO_WEBKIT)
- Q_UNUSED(forward)
- Q_UNUSED(doc)
- Q_UNUSED(browser)
-
- if (viewer) {
- QWebPage::FindFlags options;
- if (backward)
- options |= QWebPage::FindBackward;
+ if (!ttf.isEmpty()) {
+ HelpViewer *viewer = currentHelpViewer();
- if (findWidget->checkCase->isChecked())
- options |= QWebPage::FindCaseSensitively;
+ bool found = false;
+#if !defined(QT_NO_WEBKIT)
+ if (viewer) {
+ QWebPage::FindFlags options;
+ if (backward)
+ options |= QWebPage::FindBackward;
- bool found = viewer->findText(ttf, options);
- findWidget->labelWrapped->hide();
+ if (findWidget->checkCase->isChecked())
+ options |= QWebPage::FindCaseSensitively;
- if (!found) {
- options |= QWebPage::FindWrapsAroundDocument;
found = viewer->findText(ttf, options);
+ findWidget->labelWrapped->hide();
if (!found) {
- p.setColor(QPalette::Active, QPalette::Base, QColor(255, 102, 102));
- } else {
- findWidget->labelWrapped->show();
+ options |= QWebPage::FindWrapsAroundDocument;
+ found = viewer->findText(ttf, options);
+ if (found)
+ findWidget->labelWrapped->show();
}
+ } else if (tabWidget->currentWidget() == m_searchWidget) {
+ QTextBrowser *browser = qFindChild<QTextBrowser*>(m_searchWidget);
+ found = findInTextBrowser(browser, ttf, forward, backward);
}
- }
#else
- if (viewer) {
- doc = viewer->document();
- cursor = viewer->textCursor();
- browser = qobject_cast<QTextBrowser*>(viewer);
- }
+ QTextBrowser *browser = qobject_cast<QTextBrowser*>(viewer);
+ if (tabWidget->currentWidget() == m_searchWidget)
+ browser = qFindChild<QTextBrowser*>(m_searchWidget);
+ found = findInTextBrowser(browser, ttf, forward, backward);
+#endif
- if (tabWidget->currentWidget() == m_searchWidget) {
- QTextBrowser *browser = qFindChild<QTextBrowser*>(m_searchWidget);
- if (browser) {
- doc = browser->document();
- cursor = browser->textCursor();
- }
+ if (!found)
+ p.setColor(QPalette::Active, QPalette::Base, QColor(255, 102, 102));
}
- if (!browser || !doc || cursor.isNull())
- return;
+ if (!findWidget->isVisible())
+ findWidget->show();
+ findWidget->editFind->setPalette(p);
+}
+
+bool CentralWidget::findInTextBrowser(QTextBrowser* browser, const QString &ttf,
+ bool forward, bool backward)
+{
+ if (!browser)
+ return false;
+
+ QTextDocument *doc = browser->document();
+ QTextCursor cursor = browser->textCursor();
+
+ if (!doc || cursor.isNull())
+ return false;
QTextDocument::FindFlags options;
@@ -910,44 +945,33 @@ void CentralWidget::find(QString ttf, bool forward, bool backward)
QTextCursor::MoveAnchor);
}
- QTextCursor newCursor = cursor;
+ if (backward)
+ options |= QTextDocument::FindBackward;
- if (!ttf.isEmpty()) {
- if (backward)
- options |= QTextDocument::FindBackward;
-
- if (findWidget->checkCase->isChecked())
- options |= QTextDocument::FindCaseSensitively;
+ if (findWidget->checkCase->isChecked())
+ options |= QTextDocument::FindCaseSensitively;
- if (findWidget->checkWholeWords->isChecked())
- options |= QTextDocument::FindWholeWords;
+ if (findWidget->checkWholeWords->isChecked())
+ options |= QTextDocument::FindWholeWords;
- newCursor = doc->find(ttf, cursor, options);
- findWidget->labelWrapped->hide();
+ findWidget->labelWrapped->hide();
+ bool found = true;
+ QTextCursor newCursor = doc->find(ttf, cursor, options);
+ if (newCursor.isNull()) {
+ QTextCursor ac(doc);
+ ac.movePosition(options & QTextDocument::FindBackward
+ ? QTextCursor::End : QTextCursor::Start);
+ newCursor = doc->find(ttf, ac, options);
if (newCursor.isNull()) {
- QTextCursor ac(doc);
- ac.movePosition(options & QTextDocument::FindBackward
- ? QTextCursor::End : QTextCursor::Start);
- newCursor = doc->find(ttf, ac, options);
- if (newCursor.isNull()) {
- p.setColor(QPalette::Active, QPalette::Base, QColor(255, 102, 102));
- newCursor = cursor;
- } else {
- findWidget->labelWrapped->show();
- }
+ found = false;
+ newCursor = cursor;
+ } else {
+ findWidget->labelWrapped->show();
}
}
-#endif
-
- if (!findWidget->isVisible())
- findWidget->show();
-
-#if defined(QT_NO_WEBKIT)
- if (browser)
- browser->setTextCursor(newCursor);
-#endif
- findWidget->editFind->setPalette(p);
+ browser->setTextCursor(newCursor);
+ return found;
}
void CentralWidget::updateBrowserFont()
diff --git a/tools/assistant/tools/assistant/centralwidget.h b/tools/assistant/tools/assistant/centralwidget.h
index e3ce200..d59dbe5 100644
--- a/tools/assistant/tools/assistant/centralwidget.h
+++ b/tools/assistant/tools/assistant/centralwidget.h
@@ -55,6 +55,7 @@ class QLabel;
class QAction;
class QCheckBox;
class QLineEdit;
+class QTextBrowser;
class QToolButton;
class HelpViewer;
@@ -79,6 +80,10 @@ signals:
void findNext();
void findPrevious();
+protected:
+ void hideEvent(QHideEvent* event);
+ void showEvent(QShowEvent * event);
+
private slots:
void updateButtons();
@@ -94,6 +99,7 @@ private:
QToolButton *toolPrevious;
QCheckBox *checkWholeWords;
+ QPalette appPalette;
friend class CentralWidget;
};
@@ -176,7 +182,9 @@ private slots:
private:
void connectSignals();
bool eventFilter(QObject *object, QEvent *e);
- void find(QString ttf, bool forward, bool backward);
+ void find(const QString &ttf, bool forward, bool backward);
+ bool findInTextBrowser(QTextBrowser* browser, const QString &ttf,
+ bool forward, bool backward);
void initPrinter();
QString quoteTabTitle(const QString &title) const;
void highlightSearchTerms();
diff --git a/tools/assistant/translations/qt_help.pro b/tools/assistant/translations/qt_help.pro
index efad6bf..e6208a6 100644
--- a/tools/assistant/translations/qt_help.pro
+++ b/tools/assistant/translations/qt_help.pro
@@ -44,5 +44,6 @@ TRANSLATIONS=$$[QT_INSTALL_TRANSLATIONS]/qt_help_de.ts \
$$[QT_INSTALL_TRANSLATIONS]/qt_help_pl.ts \
$$[QT_INSTALL_TRANSLATIONS]/qt_help_untranslated.ts \
$$[QT_INSTALL_TRANSLATIONS]/qt_help_zh_CN.ts \
- $$[QT_INSTALL_TRANSLATIONS]/qt_help_zh_TW.ts
+ $$[QT_INSTALL_TRANSLATIONS]/qt_help_zh_TW.ts \
+ $$[QT_INSTALL_TRANSLATIONS]/qt_help_da.ts
error("This is a dummy profile to be used for translations ONLY.")
diff --git a/tools/assistant/translations/translations.pro b/tools/assistant/translations/translations.pro
index 58de554..8572123 100644
--- a/tools/assistant/translations/translations.pro
+++ b/tools/assistant/translations/translations.pro
@@ -45,4 +45,5 @@ TRANSLATIONS=$$[QT_INSTALL_TRANSLATIONS]/assistant_de.ts \
$$[QT_INSTALL_TRANSLATIONS]/assistant_pl.ts \
$$[QT_INSTALL_TRANSLATIONS]/assistant_untranslated.ts \
$$[QT_INSTALL_TRANSLATIONS]/assistant_zh_CN.ts \
- $$[QT_INSTALL_TRANSLATIONS]/assistant_zh_TW.ts
+ $$[QT_INSTALL_TRANSLATIONS]/assistant_zh_TW.ts \
+ $$[QT_INSTALL_TRANSLATIONS]/assistant_da.ts