/* * PDFedit - free program for PDF document manipulation. * Copyright (C) 2006, 2007 PDFedit team: Michal Hocko, * Miroslav Jahoda, * Jozef Misutka, * Martin Petricek * * Project is hosted on http://sourceforge.net/projects/pdfedit */ /** @file HelpWindow - class representing help window.
Help window is basically just a limited HTML browser @author Martin Petricek */ #include "helpwindow.h" #include #include #include #include #include #include QTEXTBROWSER #include "settings.h" #include "version.h" #include "util.h" namespace gui { /** constructor of HelpWindow, creates window and fills it with elements, parameters are ignored @param pageName Name of page to open in help window initially @param parent Parent of this window @param name Name of this window (for debugging) */ HelpWindow::HelpWindow(const QString &pageName/*=QString::null*/,QWidget *parent/*=0*/,const char *name/*=0*/):QWidget(parent,name,Qt::WDestructiveClose | Qt::WType_TopLevel | Qt::WStyle_Minimize | Qt::WStyle_SysMenu | Qt::WStyle_Title | Qt::WStyle_Customize | Qt::WStyle_NormalBorder) { globalSettings->restoreWindow(this,"help"); setCaption(QString(APP_NAME)+" - "+tr("help")); // QBoxLayout *l=new QVBoxLayout(this); QGridLayout* grl=new QGridLayout(this,2,1); grl->setRowStretch(0,0); grl->setRowStretch(1,1); //Help bar; QFrame *bar=new QFrame(this,"help_bar"); QGridLayout* grl_u=new QGridLayout(bar,1,3); grl_u->setColStretch(1,100); grl_u->setSpacing(4); grl_u->setMargin(2); QPushButton* btIndex=new QPushButton(QObject::tr("&Index"),bar,"help_index"); QPushButton* btClose=new QPushButton(QObject::tr("&Close"),bar,"help_close"); url=new QLineEdit(pageName,bar,"help_url"); grl_u->addWidget(btIndex,0,0); grl_u->addWidget(url,0,1); grl_u->addWidget(btClose,0,2); grl->addWidget(bar,0,0); QObject::connect(btIndex, SIGNAL(clicked()), this, SLOT(index())); QObject::connect(btClose, SIGNAL(clicked()), this, SLOT(close())); //Help window help=new Q_TextBrowser(this,"help_browser"); grl->addWidget(help,1,0); help->mimeSourceFactory()->setFilePath(globalSettings->readPath("help")); help->setFrameStyle(QFrame::Panel | QFrame::Sunken); connect(help,SIGNAL(sourceChanged(const QString&)),url,SLOT(setText(const QString&))); connect(url, SIGNAL(returnPressed()),this,SLOT(goUrl())); setPage(pageName); } /** Try to go to URL that is typed in the location box */ void HelpWindow::goUrl() { setFile(url->text()); } /** Navigate to certain page of the help @param name Name of page to show in help */ void HelpWindow::setPage(QString name) { if (name.isNull()) name="index"; setFile(name+".html"); } /** Navigate to certain fileName @param fName Name of file to show in help */ void HelpWindow::setFile(const QString &fName) { fileName=fName; url->setText(fileName); help->setSource(fileName); } /** Navigate to index page of the help */ void HelpWindow::index() { setPage(QString::null); } /** default destructor */ HelpWindow::~HelpWindow() { globalSettings->saveWindow(this,"help"); delete help; } }