diff options
Diffstat (limited to 'examples/help/remotecontrol')
-rw-r--r-- | examples/help/remotecontrol/enter.png | bin | 0 -> 315 bytes | |||
-rw-r--r-- | examples/help/remotecontrol/main.cpp | 54 | ||||
-rw-r--r-- | examples/help/remotecontrol/remotecontrol.cpp | 175 | ||||
-rw-r--r-- | examples/help/remotecontrol/remotecontrol.h | 79 | ||||
-rw-r--r-- | examples/help/remotecontrol/remotecontrol.pro | 13 | ||||
-rw-r--r-- | examples/help/remotecontrol/remotecontrol.qrc | 5 | ||||
-rw-r--r-- | examples/help/remotecontrol/remotecontrol.ui | 228 |
7 files changed, 554 insertions, 0 deletions
diff --git a/examples/help/remotecontrol/enter.png b/examples/help/remotecontrol/enter.png Binary files differnew file mode 100644 index 0000000..f397f4b --- /dev/null +++ b/examples/help/remotecontrol/enter.png diff --git a/examples/help/remotecontrol/main.cpp b/examples/help/remotecontrol/main.cpp new file mode 100644 index 0000000..746dec4 --- /dev/null +++ b/examples/help/remotecontrol/main.cpp @@ -0,0 +1,54 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the examples of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtGui/QApplication> +#include "remotecontrol.h" + +int main(int argc, char *argv[]) +{ + Q_INIT_RESOURCE(remotecontrol); + + QApplication a(argc, argv); + RemoteControl w; + w.show(); + a.connect(&a, SIGNAL(lastWindowClosed()), &a, SLOT(quit())); + return a.exec(); +} diff --git a/examples/help/remotecontrol/remotecontrol.cpp b/examples/help/remotecontrol/remotecontrol.cpp new file mode 100644 index 0000000..8701afb --- /dev/null +++ b/examples/help/remotecontrol/remotecontrol.cpp @@ -0,0 +1,175 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the examples of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtCore/QDir> +#include <QtCore/QProcess> +#include <QtCore/QTextStream> +#include <QtCore/QLibraryInfo> + +#include <QtGui/QMessageBox> + +#include "remotecontrol.h" + +RemoteControl::RemoteControl(QWidget *parent, Qt::WFlags flags) + : QMainWindow(parent, flags) +{ + ui.setupUi(this); + connect(ui.indexLineEdit, SIGNAL(returnPressed()), + this, SLOT(on_indexButton_clicked())); + connect(ui.identifierLineEdit, SIGNAL(returnPressed()), + this, SLOT(on_identifierButton_clicked())); + connect(ui.urlLineEdit, SIGNAL(returnPressed()), + this, SLOT(on_urlButton_clicked())); + + QString rc; + QTextStream(&rc) << QLatin1String("qthelp://com.trolltech.qt.") + << (QT_VERSION >> 16) << ((QT_VERSION >> 8) & 0xFF) + << (QT_VERSION & 0xFF) + << QLatin1String("/qdoc/index.html"); + + ui.startUrlLineEdit->setText(rc); + + process = new QProcess(this); + connect(process, SIGNAL(finished(int, QProcess::ExitStatus)), + this, SLOT(helpViewerClosed())); +} + +RemoteControl::~RemoteControl() +{ + if (process->state() == QProcess::Running) { + process->terminate(); + process->waitForFinished(3000); + } +} + +void RemoteControl::on_actionQuit_triggered() +{ + close(); +} + +void RemoteControl::on_launchButton_clicked() +{ + if (process->state() == QProcess::Running) + return; + + QString app = QLibraryInfo::location(QLibraryInfo::BinariesPath) + QDir::separator(); +#if !defined(Q_OS_MAC) + app += QLatin1String("assistant"); +#else + app += QLatin1String("Assistant.app/Contents/MacOS/Assistant"); +#endif + + ui.contentsCheckBox->setChecked(true); + ui.indexCheckBox->setChecked(true); + ui.bookmarksCheckBox->setChecked(true); + + QStringList args; + args << QLatin1String("-enableRemoteControl"); + process->start(app, args); + if (!process->waitForStarted()) { + QMessageBox::critical(this, tr("Remote Control"), + tr("Could not start Qt Assistant from %1.").arg(app)); + return; + } + + if (!ui.startUrlLineEdit->text().isEmpty()) + sendCommand(QLatin1String("SetSource ") + + ui.startUrlLineEdit->text()); + + ui.launchButton->setEnabled(false); + ui.startUrlLineEdit->setEnabled(false); + ui.actionGroupBox->setEnabled(true); +} + +void RemoteControl::sendCommand(const QString &cmd) +{ + if (process->state() != QProcess::Running) + return; + process->write(cmd.toLocal8Bit() + '\0'); +} + +void RemoteControl::on_indexButton_clicked() +{ + sendCommand(QLatin1String("ActivateKeyword ") + + ui.indexLineEdit->text()); +} + +void RemoteControl::on_identifierButton_clicked() +{ + sendCommand(QLatin1String("ActivateIdentifier ") + + ui.identifierLineEdit->text()); +} + +void RemoteControl::on_urlButton_clicked() +{ + sendCommand(QLatin1String("SetSource ") + + ui.urlLineEdit->text()); +} + +void RemoteControl::on_syncContentsButton_clicked() +{ + sendCommand(QLatin1String("SyncContents")); +} + +void RemoteControl::on_contentsCheckBox_toggled(bool checked) +{ + sendCommand(checked ? + QLatin1String("Show Contents") : QLatin1String("Hide Contents")); +} + +void RemoteControl::on_indexCheckBox_toggled(bool checked) +{ + sendCommand(checked ? + QLatin1String("Show Index") : QLatin1String("Hide Index")); +} + +void RemoteControl::on_bookmarksCheckBox_toggled(bool checked) +{ + sendCommand(checked ? + QLatin1String("Show Bookmarks") : QLatin1String("Hide Bookmarks")); +} + +void RemoteControl::helpViewerClosed() +{ + ui.launchButton->setEnabled(true); + ui.startUrlLineEdit->setEnabled(true); + ui.actionGroupBox->setEnabled(false); +} diff --git a/examples/help/remotecontrol/remotecontrol.h b/examples/help/remotecontrol/remotecontrol.h new file mode 100644 index 0000000..cc1c1c8 --- /dev/null +++ b/examples/help/remotecontrol/remotecontrol.h @@ -0,0 +1,79 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the examples of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef REMOTECONTROL_H +#define REMOTECONTROL_H + +#include <QtGui/QMainWindow> +#include "ui_remotecontrol.h" + +QT_BEGIN_NAMESPACE +class QProcess; +QT_END_NAMESPACE; + +class RemoteControl : public QMainWindow +{ + Q_OBJECT + +public: + RemoteControl(QWidget *parent = 0, Qt::WFlags flags = 0); + ~RemoteControl(); + +private: + Ui::RemoteControlClass ui; + QProcess *process; + +private slots: + void on_launchButton_clicked(); + void on_actionQuit_triggered(); + void on_indexButton_clicked(); + void on_identifierButton_clicked(); + void on_urlButton_clicked(); + void on_syncContentsButton_clicked(); + void on_contentsCheckBox_toggled(bool checked); + void on_indexCheckBox_toggled(bool checked); + void on_bookmarksCheckBox_toggled(bool checked); + void helpViewerClosed(); + + void sendCommand(const QString &cmd); +}; + +#endif // REMOTECONTROL_H diff --git a/examples/help/remotecontrol/remotecontrol.pro b/examples/help/remotecontrol/remotecontrol.pro new file mode 100644 index 0000000..05fc14c --- /dev/null +++ b/examples/help/remotecontrol/remotecontrol.pro @@ -0,0 +1,13 @@ +TEMPLATE = app + +HEADERS += remotecontrol.h +SOURCES += main.cpp \ + remotecontrol.cpp +FORMS += remotecontrol.ui +RESOURCES += remotecontrol.qrc + +# install +target.path = $$[QT_INSTALL_EXAMPLES]/help/remotecontrol +sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS *.pro *.png *.doc doc +sources.path = $$[QT_INSTALL_EXAMPLES]/help/remotecontrol +INSTALLS += target sources diff --git a/examples/help/remotecontrol/remotecontrol.qrc b/examples/help/remotecontrol/remotecontrol.qrc new file mode 100644 index 0000000..9b4299d --- /dev/null +++ b/examples/help/remotecontrol/remotecontrol.qrc @@ -0,0 +1,5 @@ +<RCC> + <qresource prefix="/remotecontrol" > + <file>enter.png</file> + </qresource> +</RCC> diff --git a/examples/help/remotecontrol/remotecontrol.ui b/examples/help/remotecontrol/remotecontrol.ui new file mode 100644 index 0000000..1cfc7f5 --- /dev/null +++ b/examples/help/remotecontrol/remotecontrol.ui @@ -0,0 +1,228 @@ +<ui version="4.0" > + <class>RemoteControlClass</class> + <widget class="QMainWindow" name="RemoteControlClass" > + <property name="geometry" > + <rect> + <x>0</x> + <y>0</y> + <width>344</width> + <height>364</height> + </rect> + </property> + <property name="windowTitle" > + <string>RemoteControl</string> + </property> + <widget class="QWidget" name="centralWidget" > + <layout class="QGridLayout" > + <item row="0" column="0" > + <widget class="QLabel" name="label" > + <property name="text" > + <string>Start URL:</string> + </property> + </widget> + </item> + <item row="0" column="1" colspan="2" > + <widget class="QLineEdit" name="startUrlLineEdit" /> + </item> + <item row="1" column="1" > + <widget class="QPushButton" name="launchButton" > + <property name="text" > + <string>Launch Qt HelpViewer</string> + </property> + </widget> + </item> + <item row="1" column="2" > + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" > + <size> + <width>101</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="2" column="1" > + <spacer> + <property name="orientation" > + <enum>Qt::Vertical</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Fixed</enum> + </property> + <property name="sizeHint" > + <size> + <width>113</width> + <height>16</height> + </size> + </property> + </spacer> + </item> + <item row="3" column="0" colspan="3" > + <widget class="QGroupBox" name="actionGroupBox" > + <property name="enabled" > + <bool>false</bool> + </property> + <property name="title" > + <string>Actions</string> + </property> + <layout class="QGridLayout" > + <item row="0" column="0" > + <widget class="QLabel" name="label_2" > + <property name="text" > + <string>Search in Index:</string> + </property> + </widget> + </item> + <item row="0" column="1" colspan="2" > + <layout class="QHBoxLayout" > + <property name="spacing" > + <number>0</number> + </property> + <item> + <widget class="QLineEdit" name="indexLineEdit" /> + </item> + <item> + <widget class="QToolButton" name="indexButton" > + <property name="text" > + <string/> + </property> + <property name="icon" > + <iconset resource="remotecontrol.qrc" >:/remotecontrol/enter.png</iconset> + </property> + </widget> + </item> + </layout> + </item> + <item row="1" column="0" > + <widget class="QLabel" name="label_4" > + <property name="text" > + <string>Identifier:</string> + </property> + </widget> + </item> + <item row="1" column="1" colspan="2" > + <layout class="QHBoxLayout" > + <property name="spacing" > + <number>0</number> + </property> + <item> + <widget class="QLineEdit" name="identifierLineEdit" /> + </item> + <item> + <widget class="QToolButton" name="identifierButton" > + <property name="text" > + <string/> + </property> + <property name="icon" > + <iconset resource="remotecontrol.qrc" >:/remotecontrol/enter.png</iconset> + </property> + </widget> + </item> + </layout> + </item> + <item row="2" column="0" > + <widget class="QLabel" name="label_3" > + <property name="text" > + <string>Show URL:</string> + </property> + </widget> + </item> + <item row="2" column="1" colspan="2" > + <layout class="QHBoxLayout" > + <property name="spacing" > + <number>0</number> + </property> + <item> + <widget class="QLineEdit" name="urlLineEdit" /> + </item> + <item> + <widget class="QToolButton" name="urlButton" > + <property name="text" > + <string/> + </property> + <property name="icon" > + <iconset resource="remotecontrol.qrc" >:/remotecontrol/enter.png</iconset> + </property> + </widget> + </item> + </layout> + </item> + <item row="3" column="1" > + <widget class="QPushButton" name="syncContentsButton" > + <property name="text" > + <string>Sync Contents</string> + </property> + </widget> + </item> + <item row="3" column="2" > + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" > + <size> + <width>81</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="4" column="0" colspan="3" > + <widget class="QCheckBox" name="contentsCheckBox" > + <property name="text" > + <string>Show Contents</string> + </property> + </widget> + </item> + <item row="5" column="0" > + <widget class="QCheckBox" name="indexCheckBox" > + <property name="text" > + <string>Show Index</string> + </property> + </widget> + </item> + <item row="6" column="0" colspan="3" > + <widget class="QCheckBox" name="bookmarksCheckBox" > + <property name="text" > + <string>Show Bookmarks</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + <widget class="QMenuBar" name="menuBar" > + <property name="geometry" > + <rect> + <x>0</x> + <y>0</y> + <width>344</width> + <height>21</height> + </rect> + </property> + <widget class="QMenu" name="menuFile" > + <property name="title" > + <string>File</string> + </property> + <addaction name="actionQuit" /> + </widget> + <addaction name="menuFile" /> + </widget> + <widget class="QStatusBar" name="statusBar" /> + <action name="actionQuit" > + <property name="text" > + <string>Quit</string> + </property> + </action> + </widget> + <layoutdefault spacing="6" margin="11" /> + <resources> + <include location="remotecontrol.qrc" /> + </resources> + <connections/> +</ui> |