Use QProcess instead of deprecated QAssistentClient to show custom help

Does not yet work: the QtAssistent gets stuck in the background
This commit is contained in:
Manuel Caroli 2010-07-05 15:16:07 +00:00
parent acd9a77bf7
commit 3cf9ee4c67
7 changed files with 88 additions and 40 deletions

5
.gitattributes vendored
View File

@ -2574,7 +2574,10 @@ Periodic_3_triangulation_3/demo/Periodic_3_triangulation_3/MainWindow.ui -text
Periodic_3_triangulation_3/demo/Periodic_3_triangulation_3/Periodic_3_triangulation_3.qrc -text
Periodic_3_triangulation_3/demo/Periodic_3_triangulation_3/data/oneH.xyz -text
Periodic_3_triangulation_3/demo/Periodic_3_triangulation_3/data/oneK.xyz -text
Periodic_3_triangulation_3/demo/Periodic_3_triangulation_3/documentation/Periodic_3_triangulation_3.adp -text
Periodic_3_triangulation_3/demo/Periodic_3_triangulation_3/documentation/Periodic_3_triangulation_3.qch -text
Periodic_3_triangulation_3/demo/Periodic_3_triangulation_3/documentation/Periodic_3_triangulation_3.qhc -text
Periodic_3_triangulation_3/demo/Periodic_3_triangulation_3/documentation/Periodic_3_triangulation_3.qhcp -text
Periodic_3_triangulation_3/demo/Periodic_3_triangulation_3/documentation/Periodic_3_triangulation_3.qhp -text
Periodic_3_triangulation_3/demo/Periodic_3_triangulation_3/documentation/images/mainwindow.png -text
Periodic_3_triangulation_3/demo/Periodic_3_triangulation_3/documentation/index.html -text
Periodic_3_triangulation_3/demo/Periodic_3_triangulation_3/documentation/introduction.html -text

View File

@ -4,7 +4,8 @@
#include <QTimer>
#include "Scene.h"
#include <QtAssistant/QAssistantClient>
#include <QProcess>
#include <QTextStream>
class MainWindow : public QMainWindow
{
@ -17,13 +18,7 @@ public:
ui->setupUi(this);
s = new Scene(ui);
QString loc = QLibraryInfo::location(QLibraryInfo::BinariesPath);
assistantClient = new QAssistantClient(loc, this);
QStringList arguments;
arguments << "-profile"
<< QCoreApplication::applicationDirPath() + QDir::separator()
+ QString("documentation/Periodic_3_triangulation_3.adp");
assistantClient->setArguments(arguments);
process = new QProcess(this);
// QGLViewer drawing signals
connect(ui->viewer, SIGNAL(viewerInitialized()), s, SLOT(init()));
@ -36,6 +31,10 @@ public:
// File menu:
connect(ui->actionLoad_Points, SIGNAL(triggered()),
s, SLOT(load_points()));
connect(ui->actionExport_pov, SIGNAL(triggered()),
s, SLOT(export_pov()));
connect(ui->actionExport_pov_2, SIGNAL(triggered()),
s, SLOT(export_pov()));
// Init menu:
connect(ui->actionEmpty_scene, SIGNAL(triggered()),
@ -102,22 +101,39 @@ public:
this, SLOT(about_CGAL()));
connect(ui->actionAbout, SIGNAL(triggered()),
this, SLOT(about()));
}
~MainWindow() {
delete(ui);
delete(s);
delete(assistantClient);
process->close();
delete(process);
}
public slots:
void help() {
QString loc = QCoreApplication::applicationDirPath() + QDir::separator()
+ QString("documentation/index.html");
assistantClient->showPage(loc);
QString app = QLibraryInfo::location(QLibraryInfo::BinariesPath);
#if !defined(Q_OS_MAC)
app += QString("assistant");
#else
app += QString("/Assistant.app/Contents/MacOS/Assistant");
#endif
QStringList args;
args << QString("-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;
}
QTextStream str(process);
QString help_file;
help_file = QString("setSource gthelp://org.CGAL.demos.Periodic_3_triangulation_3/doc/index.html") + '\0';
str << help_file;
}
void about() {
showFileBox("About the demo...","resources/about.html");
}
@ -144,6 +160,6 @@ public:
QTimer* timer;
private:
QAssistantClient *assistantClient;
QProcess* process;
};

View File

@ -1,24 +0,0 @@
<!DOCTYPE DCF>
<assistantconfig version="3.2.0">
<profile>
<property name="name">Periodic_3_triangulation_3</property>
<property name="title">CGAL Periodic Delaunay Triangulation</property>
<property name="startpage">index.html</property>
<property name="assistantdocs">.</property>
</profile>
<DCF ref="index.html" title="CGAL Periodic Delaunay Triangulation Demo">
<section ref="./introduction.html" title="Introduction" />
<section ref="./menu.html" title="Menu">
<section ref="./menu.html#File" title="File Menu" />
<section ref="./menu.html#Initialization" title="Initialization Menu" />
<section ref="./menu.html#Actions" title="Actions Menu" />
<section ref="./menu.html#Features" title="Features Menu" />
<section ref="./menu.html#Options" title="Options Menu" />
</section>
</DCF>
</assistantconfig>

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<QHelpCollectionProject version="1.0">
<assistant>
<title>CGAL Periodic Delaunay Triangulation Demo</title>
<cacheDirectory>CGAL/Periodic_3_triangulation_3</cacheDirectory>
<startPage>qthelp://org.CGAL.demos.Periodic_3_triangulation_3/doc/index.html</startPage>
<enableDocumentationManager>false</enableDocumentationManager>
<enableAddressBar>false</enableAddressBar>
<enableFilterFunctionality>false</enableFilterFunctionality>
</assistant>
<docFiles>
<generate>
<file>
<input>Periodic_3_triangulation_3.qhp</input>
<output>Periodic_3_triangulation_3.qch</output>
</file>
</generate>
<register>
<file>Periodic_3_triangulation_3.qch</file>
</register>
</docFiles>
</QHelpCollectionProject>

View File

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<QtHelpProject version="1.0">
<namespace>org.CGAL.demos.Periodic_3_triangulation_3</namespace>
<virtualFolder>doc</virtualFolder>
<filterSection>
<toc>
<section title="CGAL Periodic Delaunay Triangulation Demo"
ref="./index.html">
<section title="Introduction" ref="./introduction.html"></section>
<section title="Menu" ref="./menu.html">
<section title = "File Menu"
ref="./menu.html#File"></section>
<section title = "Initialization Menu"
ref="./menu.html#Initialization"></section>
<section title = "Actions Menu"
ref="./menu.html#Actions"></section>
<section title = "Features Menu"
ref="./menu.html#Features"></section>
<section title = "Options Menu"
ref="./menu.html#Options"></section>
</section>
</section>
</toc>
<files>
<file>index.html</file>
<file>introduction.html</file>
<file>menu.html</file>
<file>images/mainwindow.png</file>
</files>
</filterSection>
</QtHelpProject>