# HG changeset patch # User Andre Heinecke # Date 1409647431 -7200 # Node ID 0b7bb4f68f5acdfb5b2596a827706b9c011ddb0c # Parent c6c8f4ce48f8c04711afc90cf57e0c535fd8df11 (issue89) Add Help button diff -r c6c8f4ce48f8 -r 0b7bb4f68f5a ui/administratorwindow.cpp --- a/ui/administratorwindow.cpp Tue Sep 02 09:49:27 2014 +0200 +++ b/ui/administratorwindow.cpp Tue Sep 02 10:43:51 2014 +0200 @@ -23,12 +23,17 @@ #include #include #include +#include +#include #include "certificatetabledelegate.h" #include "createinstallerdialog.h" #include "createcertlistdialog.h" #include "certificatediffdialog.h" #include "aboutdialog.h" +#include "util.h" + +#define HELP_PATH "/doc/index.html" AdministratorWindow::AdministratorWindow() { setWindowTitle(tr("TrustBridge Administration")); @@ -53,10 +58,13 @@ menuBar->addMenu(menu); QAction *createInstaller = menu->addAction(tr("Create installer ...")); QAction *about = menu->addAction(tr("About TrustBridge")); + QAction *help = menu->addAction(tr("Help")); + help->setIcon(QIcon(":/img/show-help_16.png")); menu->addSeparator(); QAction *quit = menu->addAction(tr("Quit")); connect(createInstaller, SIGNAL(triggered()), this, SLOT(createInstaller())); connect(about, SIGNAL(triggered()), this, SLOT(showAbout())); + connect(help, SIGNAL(triggered()), this, SLOT(showHelp())); connect(quit, SIGNAL(triggered()), qApp, SLOT(quit())); setMenuBar(menuBar); } @@ -298,3 +306,27 @@ } return changed; } + +void AdministratorWindow::showHelp() +{ + char *inst_dir = get_install_dir(); + if (!inst_dir) { + qDebug() << "Failed to find install dir"; + return; + } + QString helpPath = QString::fromUtf8(inst_dir); + helpPath += HELP_PATH; + QFileInfo fiHelp(helpPath); + qDebug() << "Opening help: " << fiHelp.absoluteFilePath(); + if (!fiHelp.exists()) { + QMessageBox::warning(this, tr("Error!"), tr ("Failed to find the manual")); + return; + } +#ifdef Q_OS_WIN + QDesktopServices::openUrl(QUrl("file:///" + fiHelp.absoluteFilePath())); +#else + QDesktopServices::openUrl(QUrl(fiHelp.absoluteFilePath())); +#endif + free (inst_dir); + return; +} diff -r c6c8f4ce48f8 -r 0b7bb4f68f5a ui/administratorwindow.h --- a/ui/administratorwindow.h Tue Sep 02 09:49:27 2014 +0200 +++ b/ui/administratorwindow.h Tue Sep 02 10:43:51 2014 +0200 @@ -60,6 +60,7 @@ private slots: void createInstaller(); void showAbout(); + void showHelp(); void loadCertificateFile(); void saveCertificateFile(); void addCertificates();