diff options
Diffstat (limited to 'src/assistant/assistant')
73 files changed, 366 insertions, 195 deletions
diff --git a/src/assistant/assistant/Info_mac.plist b/src/assistant/assistant/Info_mac.plist index 76369a1c5..48b84804e 100644 --- a/src/assistant/assistant/Info_mac.plist +++ b/src/assistant/assistant/Info_mac.plist @@ -11,7 +11,7 @@ <key>CFBundleSignature</key> <string>????</string> <key>CFBundleIdentifier</key> - <string>com.trolltech.assistant</string> + <string>org.qt-project.assistant</string> <key>CFBundleExecutable</key> <string>@EXECUTABLE@</string> </dict> diff --git a/src/assistant/assistant/aboutdialog.cpp b/src/assistant/assistant/aboutdialog.cpp index 480bb7e2d..49c00b719 100644 --- a/src/assistant/assistant/aboutdialog.cpp +++ b/src/assistant/assistant/aboutdialog.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/aboutdialog.h b/src/assistant/assistant/aboutdialog.h index a0c722854..315d5af99 100644 --- a/src/assistant/assistant/aboutdialog.h +++ b/src/assistant/assistant/aboutdialog.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/assistant.pro b/src/assistant/assistant/assistant.pro index fb5b43ed8..168725c4c 100644 --- a/src/assistant/assistant/assistant.pro +++ b/src/assistant/assistant/assistant.pro @@ -2,18 +2,16 @@ TEMPLATE = app LANGUAGE = C++ TARGET = assistant DESTDIR = $$QT.help.bins -!isEmpty(QT.webkitwidgets.name) { +qtHaveModule(webkitwidgets) { QT += webkitwidgets } else { DEFINES += QT_NO_WEBKIT } !build_pass:contains(QT_CONFIG, build_all): CONFIG += release QT += widgets network help sql help -!isEmpty(QT.printsupport.name): QT += printsupport +qtHaveModule(printsupport): QT += printsupport PROJECTNAME = Assistant -DEPENDPATH += ../shared - include(../../shared/fontpanel/fontpanel.pri) QMAKE_DOCS = $$PWD/doc/qtassistant.qdocconf @@ -81,7 +79,7 @@ SOURCES += aboutdialog.cpp \ openpageswidget.cpp \ openpagesmanager.cpp \ openpagesswitcher.cpp -contains(QT_CONFIG, webkitwidgets) { +qtHaveModule(webkitwidgets) { SOURCES += helpviewer_qwv.cpp } else { SOURCES += helpviewer_qtb.cpp diff --git a/src/assistant/assistant/assistant.rc b/src/assistant/assistant/assistant.rc index d9a986ac0..d9b66e6de 100644 --- a/src/assistant/assistant/assistant.rc +++ b/src/assistant/assistant/assistant.rc @@ -18,7 +18,7 @@ BEGIN VALUE "CompanyName", "Digia Plc and/or its subsidiary(-ies)" VALUE "FileDescription", "Qt Assistant" VALUE "FileVersion", "1.0.0.0" - VALUE "LegalCopyright", "Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies)." + VALUE "LegalCopyright", "Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies)." VALUE "InternalName", "assistant.exe" VALUE "OriginalFilename", "assistant.exe" VALUE "ProductName", "Qt Assistant" diff --git a/src/assistant/assistant/bookmarkdialog.cpp b/src/assistant/assistant/bookmarkdialog.cpp index 8b9a88805..3afce9ae0 100644 --- a/src/assistant/assistant/bookmarkdialog.cpp +++ b/src/assistant/assistant/bookmarkdialog.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/bookmarkdialog.h b/src/assistant/assistant/bookmarkdialog.h index b0d1ba2e6..5e0372636 100644 --- a/src/assistant/assistant/bookmarkdialog.h +++ b/src/assistant/assistant/bookmarkdialog.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/bookmarkfiltermodel.cpp b/src/assistant/assistant/bookmarkfiltermodel.cpp index c4ac722be..e98c0316f 100644 --- a/src/assistant/assistant/bookmarkfiltermodel.cpp +++ b/src/assistant/assistant/bookmarkfiltermodel.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/bookmarkfiltermodel.h b/src/assistant/assistant/bookmarkfiltermodel.h index a19a153fd..840255e40 100644 --- a/src/assistant/assistant/bookmarkfiltermodel.h +++ b/src/assistant/assistant/bookmarkfiltermodel.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/bookmarkitem.cpp b/src/assistant/assistant/bookmarkitem.cpp index c4c76b734..98c29031f 100644 --- a/src/assistant/assistant/bookmarkitem.cpp +++ b/src/assistant/assistant/bookmarkitem.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/bookmarkitem.h b/src/assistant/assistant/bookmarkitem.h index b141396d6..0533e4b9e 100644 --- a/src/assistant/assistant/bookmarkitem.h +++ b/src/assistant/assistant/bookmarkitem.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/bookmarkmanager.cpp b/src/assistant/assistant/bookmarkmanager.cpp index 3f44a7063..f1b511f51 100644 --- a/src/assistant/assistant/bookmarkmanager.cpp +++ b/src/assistant/assistant/bookmarkmanager.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/bookmarkmanager.h b/src/assistant/assistant/bookmarkmanager.h index 9cae18f99..bbaa11a87 100644 --- a/src/assistant/assistant/bookmarkmanager.h +++ b/src/assistant/assistant/bookmarkmanager.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/bookmarkmanagerwidget.cpp b/src/assistant/assistant/bookmarkmanagerwidget.cpp index d7513b50e..c489e9306 100644 --- a/src/assistant/assistant/bookmarkmanagerwidget.cpp +++ b/src/assistant/assistant/bookmarkmanagerwidget.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/bookmarkmanagerwidget.h b/src/assistant/assistant/bookmarkmanagerwidget.h index fba0c818b..eb670af0f 100644 --- a/src/assistant/assistant/bookmarkmanagerwidget.h +++ b/src/assistant/assistant/bookmarkmanagerwidget.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/bookmarkmodel.cpp b/src/assistant/assistant/bookmarkmodel.cpp index 08e5d27d5..bc0677609 100644 --- a/src/assistant/assistant/bookmarkmodel.cpp +++ b/src/assistant/assistant/bookmarkmodel.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/bookmarkmodel.h b/src/assistant/assistant/bookmarkmodel.h index c2b0c472d..bd942e26a 100644 --- a/src/assistant/assistant/bookmarkmodel.h +++ b/src/assistant/assistant/bookmarkmodel.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/centralwidget.cpp b/src/assistant/assistant/centralwidget.cpp index 8df808f78..29648fe6f 100644 --- a/src/assistant/assistant/centralwidget.cpp +++ b/src/assistant/assistant/centralwidget.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. @@ -339,6 +339,7 @@ void CentralWidget::connectTabBar() } // -- public slots + #ifndef QT_NO_CLIPBOARD void CentralWidget::copy() { @@ -587,6 +588,17 @@ void CentralWidget::handleSourceChanged(const QUrl &url) emit sourceChanged(url); } +void CentralWidget::slotHighlighted(const QString &link) +{ + TRACE_OBJ + QString resolvedLink = m_resolvedLinks.value(link); + if (!link.isEmpty() && resolvedLink.isEmpty()) { + resolvedLink = HelpEngineWrapper::instance().findFile(link).toString(); + m_resolvedLinks.insert(link, resolvedLink); + } + emit highlighted(resolvedLink); +} + // -- private void CentralWidget::initPrinter() @@ -609,9 +621,8 @@ void CentralWidget::connectSignals(HelpViewer *page) SIGNAL(backwardAvailable(bool))); connect(page, SIGNAL(sourceChanged(QUrl)), this, SLOT(handleSourceChanged(QUrl))); - connect(page, SIGNAL(highlighted(QString)), this, - SIGNAL(highlighted(QString))); connect(page, SIGNAL(printRequested()), this, SLOT(print())); + connect(page, SIGNAL(highlighted(QString)), this, SLOT(slotHighlighted(QString))); } bool CentralWidget::eventFilter(QObject *object, QEvent *e) diff --git a/src/assistant/assistant/centralwidget.h b/src/assistant/assistant/centralwidget.h index 2c6c4eef9..c3ef835d7 100644 --- a/src/assistant/assistant/centralwidget.h +++ b/src/assistant/assistant/centralwidget.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. @@ -155,6 +155,7 @@ private slots: void highlightSearchTerms(); void printPreview(QPrinter *printer); void handleSourceChanged(const QUrl &url); + void slotHighlighted(const QString &link); private: void initPrinter(); @@ -168,6 +169,7 @@ private: FindWidget *m_findWidget; QStackedWidget *m_stackedWidget; TabBar *m_tabBar; + QHash<QString, QString> m_resolvedLinks; }; QT_END_NAMESPACE diff --git a/src/assistant/assistant/cmdlineparser.cpp b/src/assistant/assistant/cmdlineparser.cpp index 0a5015201..a695a5786 100644 --- a/src/assistant/assistant/cmdlineparser.cpp +++ b/src/assistant/assistant/cmdlineparser.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/cmdlineparser.h b/src/assistant/assistant/cmdlineparser.h index f9d1f4cb6..c04001454 100644 --- a/src/assistant/assistant/cmdlineparser.h +++ b/src/assistant/assistant/cmdlineparser.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/contentwindow.cpp b/src/assistant/assistant/contentwindow.cpp index 3237b17c2..a511de982 100644 --- a/src/assistant/assistant/contentwindow.cpp +++ b/src/assistant/assistant/contentwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/contentwindow.h b/src/assistant/assistant/contentwindow.h index 18e97b782..02c94c576 100644 --- a/src/assistant/assistant/contentwindow.h +++ b/src/assistant/assistant/contentwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/doc/qtassistant.qdocconf b/src/assistant/assistant/doc/qtassistant.qdocconf index 6c130d7f6..76e65903d 100644 --- a/src/assistant/assistant/doc/qtassistant.qdocconf +++ b/src/assistant/assistant/doc/qtassistant.qdocconf @@ -1,33 +1,33 @@ include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf) -project = qtassistant +project = QtAssistant description = Qt Assistant Manual url = http://qt-project.org/doc/qtassistant -qhp.projects = Assistant - -qhp.Assistant.file = qtassistant.qhp -qhp.Assistant.namespace = org.qt-project.assistant.500 -qhp.Assistant.virtualFolder = assistant -qhp.Assistant.indexTitle = Qt Assistant Manual - -qhp.Assistant.filterAttributes = qt 5.0.0 tools assistant -qhp.Assistant.customFilters.Assistant.name = Qt Assistant Manual -qhp.Assistant.customFilters.Assistant.filterAttributes = qt tools assistant -qhp.Assistant.subprojects = manual examples -qhp.Assistant.subprojects.manual.title = Manual -qhp.Assistant.subprojects.manual.indexTitle = Qt Assistant Manual -qhp.Assistant.subprojects.manual.selectors = fake:page -qhp.Assistant.subprojects.examples.title = Examples -qhp.Assistant.subprojects.examples.indexTitle = Qt Examples -qhp.Assistant.subprojects.examples.selectors = fake:example -qhp.Assistant.subprojects.examples.sortPages = true +qhp.projects = QtAssistant + +qhp.QtAssistant.file = qtassistant.qhp +qhp.QtAssistant.namespace = org.qt-project.assistant.500 +qhp.QtAssistant.virtualFolder = assistant +qhp.QtAssistant.indexTitle = Qt Assistant Manual + +qhp.QtAssistant.filterAttributes = qt 5.0.1 tools assistant +qhp.QtAssistant.customFilters.QtAssistant.name = Qt Assistant Manual +qhp.QtAssistant.customFilters.QtAssistant.filterAttributes = qt tools assistant +qhp.QtAssistant.subprojects = manual examples +qhp.QtAssistant.subprojects.manual.title = Manual +qhp.QtAssistant.subprojects.manual.indexTitle = Qt Assistant Manual +qhp.QtAssistant.subprojects.manual.selectors = fake:page +qhp.QtAssistant.subprojects.examples.title = Examples +qhp.QtAssistant.subprojects.examples.indexTitle = Qt Assistant Examples +qhp.QtAssistant.subprojects.examples.selectors = fake:example +qhp.QtAssistant.subprojects.examples.sortPages = true language = Cpp sourcedirs = .. -exampledirs = ../../../../examples \ +exampledirs = ../../../../examples/assistant \ snippets imagedirs = images diff --git a/src/assistant/assistant/doc/snippets/doc_src_assistant-manual.qdoc b/src/assistant/assistant/doc/snippets/doc_src_assistant-manual.qdoc index 730373cd3..beb17059b 100644 --- a/src/assistant/assistant/doc/snippets/doc_src_assistant-manual.qdoc +++ b/src/assistant/assistant/doc/snippets/doc_src_assistant-manual.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the documentation of the Qt Toolkit. diff --git a/src/assistant/assistant/doc/snippets/simpletextviewer/assistant.cpp b/src/assistant/assistant/doc/snippets/simpletextviewer/assistant.cpp index 57588f837..f379717eb 100644 --- a/src/assistant/assistant/doc/snippets/simpletextviewer/assistant.cpp +++ b/src/assistant/assistant/doc/snippets/simpletextviewer/assistant.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. diff --git a/src/assistant/assistant/doc/snippets/simpletextviewer/findfiledialog.cpp b/src/assistant/assistant/doc/snippets/simpletextviewer/findfiledialog.cpp index e423c1308..a1c96607b 100644 --- a/src/assistant/assistant/doc/snippets/simpletextviewer/findfiledialog.cpp +++ b/src/assistant/assistant/doc/snippets/simpletextviewer/findfiledialog.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. diff --git a/src/assistant/assistant/doc/snippets/simpletextviewer/mainwindow.cpp b/src/assistant/assistant/doc/snippets/simpletextviewer/mainwindow.cpp index c4609153f..1f0b79f74 100644 --- a/src/assistant/assistant/doc/snippets/simpletextviewer/mainwindow.cpp +++ b/src/assistant/assistant/doc/snippets/simpletextviewer/mainwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. diff --git a/src/assistant/assistant/doc/src/assistant-example.qdoc b/src/assistant/assistant/doc/src/assistant-example.qdoc new file mode 100644 index 000000000..0ed7e6737 --- /dev/null +++ b/src/assistant/assistant/doc/src/assistant-example.qdoc @@ -0,0 +1,51 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:FDL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Free Documentation License Usage +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. Please review the following information to ensure +** the GNU Free Documentation License version 1.3 requirements +** will be met: http://www.gnu.org/copyleft/fdl.html. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \group examples-qtassistant + \ingroup all-examples + \title Qt Assistant Examples + \brief Using Qt Assistant as a help viewer for Qt applications. + + \image assistant-examples.png + + Qt Assistant provides support for interactive help and enables you to + display customer documentation to users of your Qt applications. + + The following examples illustrate how to use Qt Assistant as a help viewer + for applications. + +*/ + +/* + \list + \li \l{simpletextviewer}{Simple Text Viewer}\raisedaster + \li \l{remotecontrol}{Remote Control} + \endlist + + Examples marked with an asterisk (*) are fully documented. +*/ diff --git a/src/assistant/assistant/doc/src/assistant-manual.qdoc b/src/assistant/assistant/doc/src/assistant-manual.qdoc index a96a4b4bb..aa426ee2f 100644 --- a/src/assistant/assistant/doc/src/assistant-manual.qdoc +++ b/src/assistant/assistant/doc/src/assistant-manual.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the documentation of the Qt Toolkit. diff --git a/src/assistant/assistant/filternamedialog.cpp b/src/assistant/assistant/filternamedialog.cpp index 6ade19e94..0460b9bfe 100644 --- a/src/assistant/assistant/filternamedialog.cpp +++ b/src/assistant/assistant/filternamedialog.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/filternamedialog.h b/src/assistant/assistant/filternamedialog.h index d3e772963..8ef59acb4 100644 --- a/src/assistant/assistant/filternamedialog.h +++ b/src/assistant/assistant/filternamedialog.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/findwidget.cpp b/src/assistant/assistant/findwidget.cpp index 0544c36f0..b9ba6bcbd 100644 --- a/src/assistant/assistant/findwidget.cpp +++ b/src/assistant/assistant/findwidget.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/findwidget.h b/src/assistant/assistant/findwidget.h index aad9aabad..c4e45ff77 100644 --- a/src/assistant/assistant/findwidget.h +++ b/src/assistant/assistant/findwidget.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/globalactions.cpp b/src/assistant/assistant/globalactions.cpp index 2af9ed425..9e3b7595e 100644 --- a/src/assistant/assistant/globalactions.cpp +++ b/src/assistant/assistant/globalactions.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Assistant module of the Qt Toolkit. diff --git a/src/assistant/assistant/globalactions.h b/src/assistant/assistant/globalactions.h index 3c5748703..65e917a9e 100644 --- a/src/assistant/assistant/globalactions.h +++ b/src/assistant/assistant/globalactions.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Assistant module of the Qt Toolkit. diff --git a/src/assistant/assistant/helpenginewrapper.cpp b/src/assistant/assistant/helpenginewrapper.cpp index 0a9d423c6..f12fd069a 100644 --- a/src/assistant/assistant/helpenginewrapper.cpp +++ b/src/assistant/assistant/helpenginewrapper.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. @@ -74,6 +74,7 @@ namespace { const QString VersionKey(QString(QLatin1String("qtVersion%1$$$%2")). arg(QLatin1String(QT_VERSION_STR))); const QString ShowTabsKey(QLatin1String("showTabs")); + const QString TopicChooserGeometryKey(QLatin1String("TopicChooserGeometry")); } // anonymous namespace class TimeoutForwarder : public QObject @@ -336,12 +337,6 @@ QString HelpEngineWrapper::error() const return d->m_helpEngine->error(); } -QString HelpEngineWrapper::virtualFolderForNameSpace(const QString &nameSpace) const -{ - TRACE_OBJ - return d->m_helpEngine->d->nameSpaceVirtualFolderMap.value(nameSpace, QString()); -} - const QStringList HelpEngineWrapper::qtDocInfo(const QString &component) const { TRACE_OBJ @@ -730,6 +725,18 @@ bool HelpEngineWrapper::fullTextSearchFallbackEnabled() const return CollectionConfiguration::fullTextSearchFallbackEnabled(*d->m_helpEngine); } +const QByteArray HelpEngineWrapper::topicChooserGeometry() const +{ + TRACE_OBJ + return d->m_helpEngine->customValue(TopicChooserGeometryKey).toByteArray(); +} + +void HelpEngineWrapper::setTopicChooserGeometry(const QByteArray &geometry) +{ + TRACE_OBJ + d->m_helpEngine->setCustomValue(TopicChooserGeometryKey, geometry); +} + // -- TimeoutForwarder TimeoutForwarder::TimeoutForwarder(const QString &fileName) diff --git a/src/assistant/assistant/helpenginewrapper.h b/src/assistant/assistant/helpenginewrapper.h index 8b8694698..994d2067d 100644 --- a/src/assistant/assistant/helpenginewrapper.h +++ b/src/assistant/assistant/helpenginewrapper.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. @@ -100,7 +100,6 @@ public: const QStringList filterAttributes() const; const QStringList filterAttributes(const QString &filterName) const; QString error() const; - QString virtualFolderForNameSpace(const QString &nameSpace) const; /* * To be called after assistant has finished looking for new documentation. @@ -192,6 +191,9 @@ public: bool fullTextSearchFallbackEnabled() const; + const QByteArray topicChooserGeometry() const; + void setTopicChooserGeometry(const QByteArray &geometry); + signals: // For asynchronous doc updates triggered by external actions. diff --git a/src/assistant/assistant/helpviewer.cpp b/src/assistant/assistant/helpviewer.cpp index 314a765e8..13c76cbb3 100644 --- a/src/assistant/assistant/helpviewer.cpp +++ b/src/assistant/assistant/helpviewer.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. @@ -143,7 +143,7 @@ QString HelpViewer::mimeFromUrl(const QUrl &url) return QLatin1String(e->mimeType); ++e; } - return QLatin1String(""); + return QLatin1String("application/octet-stream"); } bool HelpViewer::launchWithExternalApp(const QUrl &url) @@ -177,31 +177,6 @@ bool HelpViewer::launchWithExternalApp(const QUrl &url) return false; } -QString HelpViewer::fixupVirtualFolderForUrl(const HelpEngineWrapper *engine, const QUrl &url, bool *fixed) -{ - TRACE_OBJ - Q_ASSERT(engine); - - QString ret = url.toString(); - const QString virtualFolder = engine->virtualFolderForNameSpace(url.host()); - QString effectiveVirtualFolder = virtualFolder; - const QStringList tokens = url.path().split('/'); - Q_FOREACH (const QString& token, tokens) { - if (!token.isEmpty()) { - effectiveVirtualFolder = token; - break; - } - } - - if (QString::localeAwareCompare(effectiveVirtualFolder, virtualFolder)) { - ret = url.scheme() + QLatin1String("://") + url.host() + QLatin1Char('/') - + virtualFolder + QLatin1String("/..") + url.path(); - } - if (fixed && engine->findFile(ret).isValid()) - *fixed = true; - return ret; -} - // -- public slots void HelpViewer::home() diff --git a/src/assistant/assistant/helpviewer.h b/src/assistant/assistant/helpviewer.h index e61485859..7583e91f7 100644 --- a/src/assistant/assistant/helpviewer.h +++ b/src/assistant/assistant/helpviewer.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. @@ -110,7 +110,6 @@ public: static bool canOpenPage(const QString &url); static QString mimeFromUrl(const QUrl &url); static bool launchWithExternalApp(const QUrl &url); - static QString fixupVirtualFolderForUrl(const HelpEngineWrapper *engine, const QUrl &url, bool *fixed = 0); public slots: #ifndef QT_NO_CLIPBOARD diff --git a/src/assistant/assistant/helpviewer_p.h b/src/assistant/assistant/helpviewer_p.h index ab81ceaed..136950e90 100644 --- a/src/assistant/assistant/helpviewer_p.h +++ b/src/assistant/assistant/helpviewer_p.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/helpviewer_qtb.cpp b/src/assistant/assistant/helpviewer_qtb.cpp index 146a55beb..93ccf0780 100644 --- a/src/assistant/assistant/helpviewer_qtb.cpp +++ b/src/assistant/assistant/helpviewer_qtb.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. @@ -163,18 +163,14 @@ void HelpViewer::setSource(const QUrl &url) return; emit loadStarted(); - QString string = url.toString(); - const HelpEngineWrapper &engine = HelpEngineWrapper::instance(); - QUrl resolvedUrl = (string == QLatin1String("help") ? LocalHelpFile : - engine.findFile(string)); - bool fileFound = resolvedUrl.isValid(); - if (!fileFound && isLocalUrl(url)) - resolvedUrl = fixupVirtualFolderForUrl(&engine, url, &fileFound); + bool helpOrAbout = (url.toString() == QLatin1String("help")); + const QUrl resolvedUrl = (helpOrAbout ? LocalHelpFile : HelpEngineWrapper::instance().findFile(url)); QTextBrowser::setSource(resolvedUrl); - if (!fileFound) { - setHtml(string == QLatin1String("about:blank") ? AboutBlank - : PageNotFoundMessage.arg(url.toString())); + + if (!resolvedUrl.isValid()) { + helpOrAbout = (url.toString() == QLatin1String("about:blank")); + setHtml(helpOrAbout ? AboutBlank : PageNotFoundMessage.arg(url.toString())); } emit loadFinished(true); } @@ -382,7 +378,7 @@ QVariant HelpViewer::loadResource(int type, const QUrl &name) TRACE_OBJ QByteArray ba; if (type < 4) { - QUrl url = fixupVirtualFolderForUrl(&HelpEngineWrapper::instance(), name); + const QUrl url = HelpEngineWrapper::instance().findFile(name); ba = HelpEngineWrapper::instance().fileData(url); if (url.toString().endsWith(QLatin1String(".svg"), Qt::CaseInsensitive)) { QImage image; diff --git a/src/assistant/assistant/helpviewer_qwv.cpp b/src/assistant/assistant/helpviewer_qwv.cpp index 81fb82838..2d7632ac4 100644 --- a/src/assistant/assistant/helpviewer_qwv.cpp +++ b/src/assistant/assistant/helpviewer_qwv.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. @@ -47,6 +47,7 @@ #include "openpagesmanager.h" #include "tracer.h" +#include <QClipboard> #include <QtCore/QFileInfo> #include <QtCore/QString> #include <QtCore/QTimer> @@ -133,6 +134,25 @@ qint64 HelpNetworkReply::readData(char *buffer, qint64 maxlen) return len; } +// -- HelpRedirectNetworkReply + +class HelpRedirectNetworkReply : public QNetworkReply +{ +public: + HelpRedirectNetworkReply(const QNetworkRequest &request, const QUrl &newUrl) + { + setRequest(request); + setAttribute(QNetworkRequest::HttpStatusCodeAttribute, 301); + setAttribute(QNetworkRequest::RedirectionTargetAttribute, newUrl); + + QTimer::singleShot(0, this, SIGNAL(finished())); + } + +protected: + void abort() { TRACE_OBJ } + qint64 readData(char*, qint64) { TRACE_OBJ return qint64(-1); } +}; + // -- HelpNetworkAccessManager class HelpNetworkAccessManager : public QNetworkAccessManager @@ -151,24 +171,21 @@ HelpNetworkAccessManager::HelpNetworkAccessManager(QObject *parent) TRACE_OBJ } -QNetworkReply *HelpNetworkAccessManager::createRequest(Operation /*op*/, - const QNetworkRequest &request, QIODevice* /*outgoingData*/) +QNetworkReply *HelpNetworkAccessManager::createRequest(Operation, const QNetworkRequest &request, QIODevice*) { TRACE_OBJ - QString url = request.url().toString(); - const HelpEngineWrapper &engine = HelpEngineWrapper::instance(); - bool fileFound = engine.findFile(url).isValid(); - if (!fileFound && HelpViewer::isLocalUrl(request.url())) - url = HelpViewer::fixupVirtualFolderForUrl(&engine, request.url(), &fileFound); + const QUrl url = engine.findFile(request.url()); + if (url.isValid() && (url != request.url())) + return new HelpRedirectNetworkReply(request, url); - const QString &mimeType = HelpViewer::mimeFromUrl(url); - const QByteArray &data = fileFound ? engine.fileData(url) : QString::fromLatin1(g_htmlPage) - .arg(g_percent1, g_percent2, HelpViewer::tr("Error loading: %1").arg(url), g_percent4).toUtf8(); + if (url.isValid()) + return new HelpNetworkReply(request, engine.fileData(url), HelpViewer::mimeFromUrl(url)); - return new HelpNetworkReply(request, data, mimeType.isEmpty() - ? QLatin1String("application/octet-stream") : mimeType); + return new HelpNetworkReply(request, QString::fromLatin1(g_htmlPage).arg(g_percent1, g_percent2, + HelpViewer::tr("Error loading: %1").arg(request.url().toString()), g_percent4).toUtf8(), + QLatin1String("text/html")); } // -- HelpPage @@ -223,6 +240,13 @@ void HelpPage::triggerAction(WebAction action, bool checked) QWebPage::triggerAction(action, checked); break; } + +#ifndef QT_NO_CLIPBOARD + if (action == CopyLinkToClipboard || action == CopyImageUrlToClipboard) { + const QString link = QApplication::clipboard()->text(); + QApplication::clipboard()->setText(HelpEngineWrapper::instance().findFile(link).toString()); + } +#endif } bool HelpPage::acceptNavigationRequest(QWebFrame *, @@ -403,6 +427,7 @@ bool HelpViewer::findText(const QString &text, FindFlags flags, bool incremental } // -- public slots + #ifndef QT_NO_CLIPBOARD void HelpViewer::copy() { diff --git a/src/assistant/assistant/indexwindow.cpp b/src/assistant/assistant/indexwindow.cpp index 8b6ad7c7f..b0aeb72ff 100644 --- a/src/assistant/assistant/indexwindow.cpp +++ b/src/assistant/assistant/indexwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/indexwindow.h b/src/assistant/assistant/indexwindow.h index f2e6a1920..578d18710 100644 --- a/src/assistant/assistant/indexwindow.h +++ b/src/assistant/assistant/indexwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/installdialog.cpp b/src/assistant/assistant/installdialog.cpp index 18262ea45..055b035cb 100644 --- a/src/assistant/assistant/installdialog.cpp +++ b/src/assistant/assistant/installdialog.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/installdialog.h b/src/assistant/assistant/installdialog.h index e62b1b87b..159a73d1c 100644 --- a/src/assistant/assistant/installdialog.h +++ b/src/assistant/assistant/installdialog.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/main.cpp b/src/assistant/assistant/main.cpp index 8532b754a..fabad3b51 100644 --- a/src/assistant/assistant/main.cpp +++ b/src/assistant/assistant/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/mainwindow.cpp b/src/assistant/assistant/mainwindow.cpp index 1c447aff3..6f20e8221 100644 --- a/src/assistant/assistant/mainwindow.cpp +++ b/src/assistant/assistant/mainwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. @@ -374,7 +374,37 @@ void MainWindow::lookForNewQtDocumentation() << QLatin1String("designer") << QLatin1String("linguist") << QLatin1String("qmake") - << QLatin1String("qt"); + << QLatin1String("qt") + << QLatin1String("qtqmake") + << QLatin1String("activeqt") + << QLatin1String("qtassistant") + << QLatin1String("qtconcurrent") + << QLatin1String("qtcore") + << QLatin1String("qtdbus") + << QLatin1String("qtdesigner") + << QLatin1String("qtdoc") + << QLatin1String("qtgraphicaleffects") + << QLatin1String("qtgui") + << QLatin1String("qthelp") + << QLatin1String("qtimageformats") + << QLatin1String("qtlinguist") + << QLatin1String("qtmultimedia") + << QLatin1String("qtnetwork") + << QLatin1String("qtopengl") + << QLatin1String("qtprintsupport") + << QLatin1String("qtqml") + << QLatin1String("qtquick") + << QLatin1String("qtscript") + << QLatin1String("qtsql") + << QLatin1String("qtsvg") + << QLatin1String("qttestlib") + << QLatin1String("qtuitools") + << QLatin1String("qtwebkit") + << QLatin1String("qtwebkitexamples") + << QLatin1String("qtwidgets") + << QLatin1String("qtxml") + << QLatin1String("qtxmlpatterns"); + QList<QtDocInstaller::DocInfo> qtDocInfos; foreach (const QString &doc, docs) qtDocInfos.append(QtDocInstaller::DocInfo(doc, helpEngine.qtDocInfo(doc))); @@ -813,7 +843,7 @@ void MainWindow::showAboutDialog() aboutDia.setText(tr("<center>" "<h3>%1</h3>" "<p>Version %2</p></center>" - "<p>Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).</p>") + "<p>Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).</p>") .arg(tr("Qt Assistant")).arg(QLatin1String(QT_VERSION_STR)), resources); QLatin1String path(":/qt-project.org/assistant/images/assistant-128.png"); diff --git a/src/assistant/assistant/mainwindow.h b/src/assistant/assistant/mainwindow.h index 0d79ef0b9..ec35cf46e 100644 --- a/src/assistant/assistant/mainwindow.h +++ b/src/assistant/assistant/mainwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/openpagesmanager.cpp b/src/assistant/assistant/openpagesmanager.cpp index 1de433ed5..f86927cc9 100644 --- a/src/assistant/assistant/openpagesmanager.cpp +++ b/src/assistant/assistant/openpagesmanager.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Assistant module of the Qt Toolkit. diff --git a/src/assistant/assistant/openpagesmanager.h b/src/assistant/assistant/openpagesmanager.h index 364f28666..6565b6a5a 100644 --- a/src/assistant/assistant/openpagesmanager.h +++ b/src/assistant/assistant/openpagesmanager.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Assistant module of the Qt Toolkit. diff --git a/src/assistant/assistant/openpagesmodel.cpp b/src/assistant/assistant/openpagesmodel.cpp index 5b208c089..2b4e227f3 100644 --- a/src/assistant/assistant/openpagesmodel.cpp +++ b/src/assistant/assistant/openpagesmodel.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Assistant module of the Qt Toolkit. diff --git a/src/assistant/assistant/openpagesmodel.h b/src/assistant/assistant/openpagesmodel.h index a67008d09..2d955126f 100644 --- a/src/assistant/assistant/openpagesmodel.h +++ b/src/assistant/assistant/openpagesmodel.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Assistant module of the Qt Toolkit. diff --git a/src/assistant/assistant/openpagesswitcher.cpp b/src/assistant/assistant/openpagesswitcher.cpp index f19f4f0ca..fc5a97b06 100644 --- a/src/assistant/assistant/openpagesswitcher.cpp +++ b/src/assistant/assistant/openpagesswitcher.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Assistant module of the Qt Toolkit. diff --git a/src/assistant/assistant/openpagesswitcher.h b/src/assistant/assistant/openpagesswitcher.h index 6a3f9903f..1c58b8c2d 100644 --- a/src/assistant/assistant/openpagesswitcher.h +++ b/src/assistant/assistant/openpagesswitcher.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Assistant module of the Qt Toolkit. diff --git a/src/assistant/assistant/openpageswidget.cpp b/src/assistant/assistant/openpageswidget.cpp index 5ab08cfbe..c5a110aa7 100644 --- a/src/assistant/assistant/openpageswidget.cpp +++ b/src/assistant/assistant/openpageswidget.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Assistant module of the Qt Toolkit. diff --git a/src/assistant/assistant/openpageswidget.h b/src/assistant/assistant/openpageswidget.h index a195854c2..6c9faf490 100644 --- a/src/assistant/assistant/openpageswidget.h +++ b/src/assistant/assistant/openpageswidget.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Assistant module of the Qt Toolkit. diff --git a/src/assistant/assistant/preferencesdialog.cpp b/src/assistant/assistant/preferencesdialog.cpp index fdb784d3c..2df46acaa 100644 --- a/src/assistant/assistant/preferencesdialog.cpp +++ b/src/assistant/assistant/preferencesdialog.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/preferencesdialog.h b/src/assistant/assistant/preferencesdialog.h index ff5af88c4..d7ee5da0a 100644 --- a/src/assistant/assistant/preferencesdialog.h +++ b/src/assistant/assistant/preferencesdialog.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/qtdocinstaller.cpp b/src/assistant/assistant/qtdocinstaller.cpp index 042c46031..746436a61 100644 --- a/src/assistant/assistant/qtdocinstaller.cpp +++ b/src/assistant/assistant/qtdocinstaller.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/qtdocinstaller.h b/src/assistant/assistant/qtdocinstaller.h index c7a43aac4..2ecd40b62 100644 --- a/src/assistant/assistant/qtdocinstaller.h +++ b/src/assistant/assistant/qtdocinstaller.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/remotecontrol.cpp b/src/assistant/assistant/remotecontrol.cpp index d393c7053..8aa1e680a 100644 --- a/src/assistant/assistant/remotecontrol.cpp +++ b/src/assistant/assistant/remotecontrol.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/remotecontrol.h b/src/assistant/assistant/remotecontrol.h index 0d360ac71..ef374c2ca 100644 --- a/src/assistant/assistant/remotecontrol.h +++ b/src/assistant/assistant/remotecontrol.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/remotecontrol_win.h b/src/assistant/assistant/remotecontrol_win.h index 223726d38..1251b03a7 100644 --- a/src/assistant/assistant/remotecontrol_win.h +++ b/src/assistant/assistant/remotecontrol_win.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/searchwidget.cpp b/src/assistant/assistant/searchwidget.cpp index 1178ff9ab..4ac589032 100644 --- a/src/assistant/assistant/searchwidget.cpp +++ b/src/assistant/assistant/searchwidget.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/searchwidget.h b/src/assistant/assistant/searchwidget.h index bfc35b80e..256fbb038 100644 --- a/src/assistant/assistant/searchwidget.h +++ b/src/assistant/assistant/searchwidget.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/topicchooser.cpp b/src/assistant/assistant/topicchooser.cpp index 7ff830354..79329dec1 100644 --- a/src/assistant/assistant/topicchooser.cpp +++ b/src/assistant/assistant/topicchooser.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. @@ -41,47 +41,119 @@ #include "tracer.h" #include "topicchooser.h" +#include "helpenginewrapper.h" + +#include <QKeyEvent> +#include <QStandardItemModel> +#include <QSortFilterProxyModel> +#include <QUrl> QT_BEGIN_NAMESPACE -TopicChooser::TopicChooser(QWidget *parent, const QString &keyword, - const QMap<QString, QUrl> &links) +TopicChooser::TopicChooser(QWidget *parent, const QString &keyword, const QMap<QString, QUrl> &links) : QDialog(parent) + , m_filterModel(new QSortFilterProxyModel(this)) { TRACE_OBJ ui.setupUi(this); + + setFocusProxy(ui.lineEdit); + ui.lineEdit->installEventFilter(this); + ui.lineEdit->setPlaceholderText(tr("Filter")); ui.label->setText(tr("Choose a topic for <b>%1</b>:").arg(keyword)); + QStandardItemModel *model = new QStandardItemModel(this); + m_filterModel->setSourceModel(model); + m_filterModel->setFilterCaseSensitivity(Qt::CaseInsensitive); + QMap<QString, QUrl>::const_iterator it = links.constBegin(); for (; it != links.constEnd(); ++it) { - ui.listWidget->addItem(it.key()); m_links.append(it.value()); + QStandardItem *item = new QStandardItem(it.key()); + item->setToolTip(it.value().toString()); + model->appendRow(item); } - - if (ui.listWidget->count() != 0) - ui.listWidget->setCurrentRow(0); - ui.listWidget->setFocus(); - connect(ui.buttonDisplay, SIGNAL(clicked()), this, SLOT(accept())); + ui.listWidget->setModel(m_filterModel); + ui.listWidget->setUniformItemSizes(true); + ui.listWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); + + if (m_filterModel->rowCount() != 0) + ui.listWidget->setCurrentIndex(m_filterModel->index(0, 0)); + connect(ui.buttonCancel, SIGNAL(clicked()), this, SLOT(reject())); - connect(ui.listWidget, SIGNAL(itemActivated(QListWidgetItem*)), this, - SLOT(accept())); + connect(ui.buttonDisplay, SIGNAL(clicked()), this, SLOT(acceptDialog())); + connect(ui.lineEdit, SIGNAL(textChanged(QString)), this, SLOT(setFilter(QString))); + connect(ui.listWidget, SIGNAL(activated(QModelIndex)), this, SLOT(activated(QModelIndex))); + + const QByteArray ba = HelpEngineWrapper::instance().topicChooserGeometry(); + if (!ba.isEmpty()) + restoreGeometry(ba); +} + +TopicChooser::~TopicChooser() +{ + HelpEngineWrapper::instance().setTopicChooserGeometry(saveGeometry()); } QUrl TopicChooser::link() const { TRACE_OBJ - QListWidgetItem *item = ui.listWidget->currentItem(); - if (!item) - return QUrl(); + if (m_activedIndex.isValid()) + return m_links.at(m_filterModel->mapToSource(m_activedIndex).row()); + return QUrl(); +} + +void TopicChooser::acceptDialog() +{ + TRACE_OBJ + m_activedIndex = ui.listWidget->currentIndex(); + accept(); +} - QString title = item->text(); - if (title.isEmpty()) - return QUrl(); +void TopicChooser::setFilter(const QString &pattern) +{ + TRACE_OBJ + m_filterModel->setFilterFixedString(pattern); + if (m_filterModel->rowCount() != 0 && !ui.listWidget->currentIndex().isValid()) + ui.listWidget->setCurrentIndex(m_filterModel->index(0, 0)); +} - const int row = ui.listWidget->row(item); - Q_ASSERT(row < m_links.count()); - return m_links.at(row); +void TopicChooser::activated(const QModelIndex &index) +{ + TRACE_OBJ + m_activedIndex = index; + accept(); +} + +bool TopicChooser::eventFilter(QObject *object, QEvent *event) +{ + TRACE_OBJ + if (object == ui.lineEdit && event->type() == QEvent::KeyPress) { + QModelIndex idx = ui.listWidget->currentIndex(); + switch ((static_cast<QKeyEvent*>(event)->key())) { + case Qt::Key_Up: + idx = m_filterModel->index(idx.row() - 1, idx.column(), + idx.parent()); + if (idx.isValid()) + ui.listWidget->setCurrentIndex(idx); + break; + + case Qt::Key_Down: + idx = m_filterModel->index(idx.row() + 1, idx.column(), + idx.parent()); + if (idx.isValid()) + ui.listWidget->setCurrentIndex(idx); + break; + + default: ; + } + } else if (ui.lineEdit && event->type() == QEvent::FocusIn + && static_cast<QFocusEvent *>(event)->reason() != Qt::MouseFocusReason) { + ui.lineEdit->selectAll(); + ui.lineEdit->setFocus(); + } + return QDialog::eventFilter(object, event); } QT_END_NAMESPACE diff --git a/src/assistant/assistant/topicchooser.h b/src/assistant/assistant/topicchooser.h index e66a33720..1c4474a18 100644 --- a/src/assistant/assistant/topicchooser.h +++ b/src/assistant/assistant/topicchooser.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. @@ -44,28 +44,36 @@ #include "ui_topicchooser.h" -#include <QtCore/QList> -#include <QtCore/QMap> -#include <QtCore/QString> -#include <QtCore/QUrl> - #include <QtWidgets/QDialog> QT_BEGIN_NAMESPACE +class QSortFilterProxyModel; + class TopicChooser : public QDialog { Q_OBJECT public: - TopicChooser(QWidget *parent, const QString &keyword, - const QMap<QString, QUrl> &links); + TopicChooser(QWidget *parent, const QString &keyword, const QMap<QString, QUrl> &links); + ~TopicChooser(); + + QUrl link() const; + +private slots: + void acceptDialog(); + void setFilter(const QString &pattern); + void activated(const QModelIndex &index); + +private: + bool eventFilter(QObject *object, QEvent *event); - QUrl link() const; - private: Ui::TopicChooser ui; QList<QUrl> m_links; + + QModelIndex m_activedIndex; + QSortFilterProxyModel *m_filterModel; }; QT_END_NAMESPACE diff --git a/src/assistant/assistant/topicchooser.ui b/src/assistant/assistant/topicchooser.ui index d4c90bb4b..b28a5e76e 100644 --- a/src/assistant/assistant/topicchooser.ui +++ b/src/assistant/assistant/topicchooser.ui @@ -1,3 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> <UI version="4.0" stdsetdef="1" > <class>TopicChooser</class> <widget class="QDialog" name="TopicChooser" > @@ -42,17 +43,12 @@ </widget> </item> <item> - <widget class="QListWidget" name="listWidget" > - <property name="objectName" > - <string notr="true">listWidget</string> - </property> - </widget> + <widget class="QLineEdit" name="lineEdit" /> + </item> + <item> + <widget class="QListView" name="listWidget" /> </item> <item> - <widget class="QWidget" name="Layout16" > - <property name="objectName" > - <string notr="true">Layout16</string> - </property> <layout class="QHBoxLayout" > <property name="objectName" > <string notr="true">unnamed</string> @@ -107,9 +103,8 @@ <bool>true</bool> </property> </widget> - </item> - </layout> - </widget> + </item> + </layout> </item> </layout> </widget> diff --git a/src/assistant/assistant/tracer.h b/src/assistant/assistant/tracer.h index 255441b06..be8878147 100644 --- a/src/assistant/assistant/tracer.h +++ b/src/assistant/assistant/tracer.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/xbelsupport.cpp b/src/assistant/assistant/xbelsupport.cpp index 069dcb117..c55e9a99e 100644 --- a/src/assistant/assistant/xbelsupport.cpp +++ b/src/assistant/assistant/xbelsupport.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. diff --git a/src/assistant/assistant/xbelsupport.h b/src/assistant/assistant/xbelsupport.h index 5972d1ba4..fb5c15cbb 100644 --- a/src/assistant/assistant/xbelsupport.h +++ b/src/assistant/assistant/xbelsupport.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Assistant of the Qt Toolkit. |