summaryrefslogtreecommitdiffstats
path: root/tools/assistant/mainwindow.ui.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/assistant/mainwindow.ui.h')
-rw-r--r--tools/assistant/mainwindow.ui.h698
1 files changed, 698 insertions, 0 deletions
diff --git a/tools/assistant/mainwindow.ui.h b/tools/assistant/mainwindow.ui.h
new file mode 100644
index 000000000..639c00450
--- /dev/null
+++ b/tools/assistant/mainwindow.ui.h
@@ -0,0 +1,698 @@
+/**********************************************************************
+** Copyright (C) 2000-2008 Trolltech ASA. All rights reserved.
+**
+** This file is part of the TQt Assistant.
+**
+** This file may be used under the terms of the GNU General
+** Public License versions 2.0 or 3.0 as published by the Free
+** Software Foundation and appearing in the files LICENSE.GPL2
+** and LICENSE.GPL3 included in the packaging of this file.
+** Alternatively you may (at your option) use any later version
+** of the GNU General Public License if such license has been
+** publicly approved by Trolltech ASA (or its successors, if any)
+** and the KDE Free TQt Foundation.
+**
+** Please review the following information to ensure GNU General
+** Public Licensing retquirements will be met:
+** http://trolltech.com/products/qt/licenses/licensing/opensource/.
+** If you are unsure which license is appropriate for your use, please
+** review the following information:
+** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
+** or contact the sales department at sales@trolltech.com.
+**
+** Licensees holding valid TQt Commercial licenses may use this file in
+** accordance with the TQt Commercial License Agreement provided with
+** the Software.
+**
+** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
+** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
+** herein.
+**
+**********************************************************************/
+
+#include "config.h"
+
+#include <qtabwidget.h>
+#include <qfileinfo.h>
+#include <qaccel.h>
+#include <qobjectlist.h>
+#include <qtimer.h>
+#include <qdragobject.h>
+#include <qfontinfo.h>
+#include <qaccel.h>
+#include <qmetaobject.h>
+#include <qeventloop.h>
+
+TQPtrList<MainWindow> *MainWindow::windows = 0;
+
+#if defined(Q_WS_WIN)
+extern Q_EXPORT int qt_ntfs_permission_lookup;
+#endif
+
+void MainWindow::init()
+{
+#if defined(Q_WS_WIN)
+ // Workaround for TQMimeSourceFactory failing in TQFileInfo::isReadable() for
+ // certain user configs. See task: 34372
+ qt_ntfs_permission_lookup = 0;
+#endif
+ setupCompleted = FALSE;
+
+ goActions = new TQPtrList<TQAction>;
+ goActionDocFiles = new TQMap<TQAction*,TQString>;
+ goActions->setAutoDelete( TRUE );
+
+ if ( !windows )
+ windows = new TQPtrList<MainWindow>;
+ windows->append( this );
+ tabs = new TabbedBrowser( this, "qt_assistant_tabbedbrowser" );
+ setCentralWidget( tabs );
+ settingsDia = 0;
+
+ Config *config = Config::configuration();
+
+ updateProfileSettings();
+
+ dw = new TQDockWindow( TQDockWindow::InDock, this );
+ helpDock = new HelpDialog( dw, this );
+ dw->setResizeEnabled( TRUE );
+ dw->setCloseMode( TQDockWindow::Always );
+ addDockWindow( dw, DockLeft );
+ dw->setWidget( helpDock );
+ dw->setCaption( "Sidebar" );
+ dw->setFixedExtentWidth( 320 );
+
+ // read geometry configuration
+ setupGoActions();
+
+ if ( !config->isMaximized() ) {
+ TQRect geom = config->geometry();
+ if( geom.isValid() ) {
+ resize(geom.size());
+ move(geom.topLeft());
+ }
+ }
+
+ TQString mainWindowLayout = config->mainWindowLayout();
+
+ TQTextStream ts( &mainWindowLayout, IO_ReadOnly );
+ ts >> *this;
+
+ if ( config->sideBarHidden() )
+ dw->hide();
+
+ tabs->setup();
+ TQTimer::singleShot( 0, this, SLOT( setup() ) );
+#if defined(Q_OS_MACX)
+ // Use the same forward and backward browser shortcuts as Safari and Internet Explorer do
+ // on the Mac. This means that if you have access to one of those cool Intellimice, the thing
+ // works just fine, since that's how Microsoft hacked it.
+ actionGoPrevious->setAccel(TQKeySequence(TQt::CTRL|TQt::Key_Left));
+ actionGoNext->setAccel(TQKeySequence(TQt::CTRL|TQt::Key_Right));
+#endif
+}
+
+void MainWindow::setup()
+{
+ if( setupCompleted )
+ return;
+
+ qApp->setOverrideCursor( TQCursor( TQt::WaitCursor ) );
+ statusBar()->message( tr( "Initializing TQt Assistant..." ) );
+ setupCompleted = TRUE;
+ helpDock->initialize();
+ connect( actionGoPrevious, SIGNAL( activated() ), tabs, SLOT( backward() ) );
+ connect( actionGoNext, SIGNAL( activated() ), tabs, SLOT( forward() ) );
+ connect( actionEditCopy, SIGNAL( activated() ), tabs, SLOT( copy() ) );
+ connect( actionFileExit, SIGNAL( activated() ), qApp, SLOT( closeAllWindows() ) );
+ connect( actionAddBookmark, SIGNAL( activated() ),
+ helpDock, SLOT( addBookmark() ) );
+ connect( helpDock, SIGNAL( showLink( const TQString& ) ),
+ this, SLOT( showLink( const TQString& ) ) );
+ connect( helpDock, SIGNAL( showSearchLink( const TQString&, const TQStringList& ) ),
+ this, SLOT( showSearchLink( const TQString&, const TQStringList&) ) );
+
+ connect( bookmarkMenu, SIGNAL( activated( int ) ),
+ this, SLOT( showBookmark( int ) ) );
+ connect( actionZoomIn, SIGNAL( activated() ), tabs, SLOT( zoomIn() ) );
+ connect( actionZoomOut, SIGNAL( activated() ), tabs, SLOT( zoomOut() ) );
+
+ connect( actionOpenPage, SIGNAL( activated() ), tabs, SLOT( newTab() ) );
+ connect( actionClosePage, SIGNAL( activated() ), tabs, SLOT( closeTab() ) );
+ connect( actionNextPage, SIGNAL( activated() ), tabs, SLOT( nextTab() ) );
+ connect( actionPrevPage, SIGNAL( activated() ), tabs, SLOT( previousTab() ) );
+
+
+
+#if defined(Q_OS_WIN32) || defined(Q_OS_WIN64)
+ TQAccel *acc = new TQAccel( this );
+// acc->connectItem( acc->insertItem( Key_F5 ), browser, SLOT( reload() ) );
+ acc->connectItem( acc->insertItem( TQKeySequence("SHIFT+CTRL+=") ), actionZoomIn, SIGNAL(activated()) );
+#endif
+
+ TQAccel *a = new TQAccel( this, dw );
+ a->connectItem( a->insertItem( TQAccel::stringToKey( tr("Ctrl+T") ) ),
+ helpDock, SLOT( toggleContents() ) );
+ a->connectItem( a->insertItem( TQAccel::stringToKey( tr("Ctrl+I") ) ),
+ helpDock, SLOT( toggleIndex() ) );
+ a->connectItem( a->insertItem( TQAccel::stringToKey( tr("Ctrl+B") ) ),
+ helpDock, SLOT( toggleBookmarks() ) );
+ a->connectItem( a->insertItem( TQAccel::stringToKey( tr("Ctrl+S") ) ),
+ helpDock, SLOT( toggleSearch() ) );
+
+ Config *config = Config::configuration();
+
+ setupBookmarkMenu();
+ PopupMenu->insertItem( tr( "Vie&ws" ), createDockWindowMenu() );
+ helpDock->tabWidget->setCurrentPage( config->sideBarPage() );
+
+ qApp->restoreOverrideCursor();
+ actionGoPrevious->setEnabled( FALSE );
+ actionGoNext->setEnabled( FALSE );
+}
+
+void MainWindow::setupGoActions()
+{
+ Config *config = Config::configuration();
+ TQStringList titles = config->docTitles();
+ TQAction *action = 0;
+
+ static bool separatorInserted = FALSE;
+
+ TQAction *cur = goActions->first();
+ while( cur ) {
+ cur->removeFrom( goMenu );
+ cur->removeFrom( goActionToolbar );
+ cur = goActions->next();
+ }
+ goActions->clear();
+ goActionDocFiles->clear();
+
+ int addCount = 0;
+
+ TQStringList::ConstIterator it = titles.begin();
+ for ( ; it != titles.end(); ++it ) {
+ TQString title = *it;
+ TQPixmap pix = config->docIcon( title );
+ if( !pix.isNull() ) {
+ if( !separatorInserted ) {
+ goMenu->insertSeparator();
+ separatorInserted = TRUE;
+ }
+ action = new TQAction( title, TQIconSet( pix ), title, 0, 0 );
+ action->addTo( goMenu );
+ action->addTo( goActionToolbar );
+ goActions->append( action );
+ goActionDocFiles->insert( action, config->indexPage( title ) );
+ connect( action, SIGNAL( activated() ),
+ this, SLOT( showGoActionLink() ) );
+ ++addCount;
+ }
+ }
+ if( !addCount )
+ goActionToolbar->hide();
+ else
+ goActionToolbar->show();
+
+}
+
+void MainWindow::browserTabChanged()
+{
+ if (tabs->currentBrowser()) {
+ actionGoPrevious->setEnabled(tabs->currentBrowser()->isBackwardAvailable());
+ actionGoNext->setEnabled(tabs->currentBrowser()->isForwardAvailable());
+ }
+}
+
+bool MainWindow::insertActionSeparator()
+{
+ goMenu->insertSeparator();
+ Toolbar->addSeparator();
+ return TRUE;
+}
+
+bool MainWindow::close( bool alsoDelete )
+{
+ saveSettings();
+ return TQMainWindow::close( alsoDelete );
+}
+
+void MainWindow::destroy()
+{
+ windows->removeRef( this );
+ if ( windows->isEmpty() ) {
+ delete windows;
+ windows = 0;
+ }
+ delete goActions;
+ delete goActionDocFiles;
+}
+
+void MainWindow::about()
+{
+ TQMessageBox box( this );
+ box.setText( "<center><img src=\"splash.png\">"
+ "<p>Version " + TQString(QT_VERSION_STR) + "</p>"
+ "<p>Copyright (C) 2000-2008 Trolltech ASA. All rights reserved."
+ "</p></center><p></p>"
+ "<p>TQt Commercial Edition license holders: This program is"
+ " licensed to you under the terms of the TQt Commercial License"
+ " Agreement. For details, see the file LICENSE that came with"
+ " this software distribution.</p><p></p>"
+ "<p>TQt Open Source Edition users: This program is licensed to you"
+ " under the terms of the GNU General Public License Version 2."
+ " For details, see the file LICENSE.GPL that came with this"
+ " software distribution.</p><p>The program is provided AS IS"
+ " with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF"
+ " DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE."
+ "</p>" );
+ box.setCaption( tr( "TQt Assistant" ) );
+ box.setIcon( TQMessageBox::NoIcon );
+ box.exec();
+}
+
+void MainWindow::aboutApplication()
+{
+ TQString url = Config::configuration()->aboutURL();
+ if ( url == "about_qt" ) {
+ TQMessageBox::aboutTQt( this, "TQt Assistant" );
+ return;
+ }
+ TQString text;
+ TQFile file( url );
+ if( file.exists() && file.open( IO_ReadOnly ) )
+ text = TQString( file.readAll() );
+ if( text.isNull() )
+ text = tr( "Failed to open about application contents in file: '%1'" ).arg( url );
+
+ TQMessageBox box( this );
+ box.setText( text );
+ box.setCaption( Config::configuration()->aboutApplicationMenuText() );
+ box.setIcon( TQMessageBox::NoIcon );
+ box.exec();
+}
+
+void MainWindow::find()
+{
+ if ( !findDialog )
+ findDialog = new FindDialog( this );
+ findDialog->comboFind->setFocus();
+ findDialog->comboFind->lineEdit()->setSelection(
+ 0, findDialog->comboFind->lineEdit()->text().length() );
+ findDialog->show();
+}
+
+void MainWindow::findAgain()
+{
+ if (!findDialog || !findDialog->hasFindExpression()) {
+ find();
+ return;
+ }
+ findDialog->doFind(TRUE);
+}
+
+void MainWindow::findAgainPrev()
+{
+ if (!findDialog || !findDialog->hasFindExpression()) {
+ find();
+ return;
+ }
+ findDialog->doFind(FALSE);
+}
+
+void MainWindow::goHome()
+{
+ showLink( Config::configuration()->homePage() );
+}
+
+void MainWindow::print()
+{
+ TQPrinter printer( TQPrinter::HighResolution );
+ printer.setFullPage( TRUE );
+ if ( printer.setup( this ) ) {
+ TQPainter p;
+ if ( !p.begin( &printer ) )
+ return;
+
+ qApp->setOverrideCursor( TQCursor( TQt::WaitCursor ) );
+ qApp->eventLoop()->processEvents( TQEventLoop::ExcludeUserInput );
+
+ TQPaintDeviceMetrics metrics(p.device());
+ TQTextBrowser *browser = tabs->currentBrowser();
+ int dpiy = metrics.logicalDpiY();
+ int margin = (int) ( (2/2.54)*dpiy );
+ TQRect view( margin,
+ margin,
+ metrics.width() - 2 * margin,
+ metrics.height() - 2 * margin );
+ TQSimpleRichText richText( browser->text(), browser->TQWidget::font(), browser->context(),
+ browser->styleSheet(), browser->mimeSourceFactory(),
+ view.height(), TQt::black, FALSE );
+ richText.setWidth( &p, view.width() );
+ int page = 1;
+ do {
+ qApp->eventLoop()->processEvents( TQEventLoop::ExcludeUserInput );
+
+ richText.draw( &p, margin, margin, view, palette().active() );
+ view.moveBy( 0, view.height() );
+ p.translate( 0 , -view.height() );
+ p.drawText( view.right() - p.fontMetrics().width( TQString::number(page) ),
+ view.bottom() + p.fontMetrics().ascent() + 5, TQString::number(page) );
+ if ( view.top() - margin >= richText.height() )
+ break;
+ printer.newPage();
+ page++;
+ } while (TRUE);
+
+ qApp->eventLoop()->processEvents( TQEventLoop::ExcludeUserInput );
+ qApp->restoreOverrideCursor();
+ }
+}
+
+void MainWindow::updateBookmarkMenu()
+{
+ for ( MainWindow *mw = windows->first(); mw; mw = windows->next() )
+ mw->setupBookmarkMenu();
+}
+
+void MainWindow::setupBookmarkMenu()
+{
+ bookmarkMenu->clear();
+ bookmarks.clear();
+ actionAddBookmark->addTo( bookmarkMenu );
+
+ TQFile f( TQDir::homeDirPath() + "/.assistant/bookmarks." +
+ Config::configuration()->profileName() );
+ if ( !f.open( IO_ReadOnly ) )
+ return;
+ TQTextStream ts( &f );
+ bookmarkMenu->insertSeparator();
+ while ( !ts.atEnd() ) {
+ TQString title = ts.readLine();
+ TQString link = ts.readLine();
+ bookmarks.insert( bookmarkMenu->insertItem( title ), link );
+ }
+}
+
+void MainWindow::showBookmark( int id )
+{
+ if ( bookmarks.find( id ) != bookmarks.end() )
+ showLink( *bookmarks.find( id ) );
+}
+
+void MainWindow::showLinkFromClient( const TQString &link )
+{
+ setWindowState(windowState() & ~WindowMinimized);
+ raise();
+ setActiveWindow();
+ showLink( link );
+}
+
+void MainWindow::showLink( const TQString &link )
+{
+ if( link.isEmpty() ) {
+ qWarning( "The link is empty!" );
+ }
+
+ int find = link.find( '#' );
+ TQString name = find >= 0 ? link.left( find ) : link;
+
+ TQString absLink = link;
+ TQFileInfo fi( name );
+ if ( fi.isRelative() ) {
+ if ( find >= 0 )
+ absLink = fi.absFilePath() + link.right( link.length() - find );
+ else
+ absLink = fi.absFilePath();
+ }
+ if( fi.exists() ) {
+ tabs->setSource( absLink );
+ tabs->currentBrowser()->setFocus();
+ } else {
+ // ### Default 404 site!
+ statusBar()->message( tr( "Failed to open link: '%1'" ).arg( link ), 5000 );
+ tabs->currentBrowser()->setText( tr( "<div align=\"center\"><h1>The page could not be found!</h1><br>"
+ "<h3>'%1'</h3></div>").arg( link ) );
+ tabs->updateTitle( tr( "Error..." ) );
+ }
+}
+
+void MainWindow::showLinks( const TQStringList &links )
+{
+ if ( links.size() == 0 ) {
+ qWarning( "MainWindow::showLinks() - Empty link" );
+ return;
+ }
+
+ if ( links.size() == 1 ) {
+ showLink( links.first() );
+ return;
+ }
+
+ pendingLinks = links;
+
+ TQStringList::ConstIterator it = pendingLinks.begin();
+ // Initial showing, The tab is empty so update that without creating it first
+ if ( tabs->currentBrowser()->source().isEmpty() ) {
+ pendingBrowsers.append(tabs->currentBrowser());
+ tabs->setTitle(tabs->currentBrowser(), pendingLinks.first());
+ }
+ ++it;
+
+ while( it != pendingLinks.end() ) {
+ pendingBrowsers.append( tabs->newBackgroundTab(*it) );
+ ++it;
+ }
+
+ startTimer(50);
+ return;
+}
+
+void MainWindow::timerEvent(TQTimerEvent *e)
+{
+ TQString link = pendingLinks.first();
+ HelpWindow *win = pendingBrowsers.first();
+ pendingLinks.pop_front();
+ pendingBrowsers.removeFirst();
+ if (pendingLinks.size() == 0)
+ killTimer(e->timerId());
+ win->setSource(link);
+}
+
+void MainWindow::showTQtHelp()
+{
+ showLink( TQString( qInstallPathDocs() ) + "/html/index.html" );
+}
+
+void MainWindow::showSettingsDialog()
+{
+ showSettingsDialog( -1 );
+}
+
+void MainWindow::showWebBrowserSettings()
+{
+ showSettingsDialog( 1 );
+}
+
+void MainWindow::showSettingsDialog( int page )
+{
+ if ( !settingsDia ){
+ settingsDia = new SettingsDialog( this );
+ }
+ TQFontDatabase fonts;
+ settingsDia->fontCombo->clear();
+ settingsDia->fontCombo->insertStringList( fonts.families() );
+ settingsDia->fontCombo->lineEdit()->setText( tabs->browserFont().family() );
+ settingsDia->fixedfontCombo->clear();
+ settingsDia->fixedfontCombo->insertStringList( fonts.families() );
+ settingsDia->fixedfontCombo->lineEdit()->setText( tabs->styleSheet()->item( "pre" )->fontFamily() );
+ settingsDia->linkUnderlineCB->setChecked( tabs->linkUnderline() );
+ settingsDia->colorButton->setPaletteBackgroundColor( tabs->palette().color( TQPalette::Active, TQColorGroup::Link ) );
+ if ( page != -1 )
+ settingsDia->settingsTab->setCurrentPage( page );
+
+ int ret = settingsDia->exec();
+
+ if ( ret != TQDialog::Accepted )
+ return;
+
+ TQObjectList *lst = (TQObjectList*)Toolbar->children();
+ TQObject *obj;
+ for ( obj = lst->last(); obj; obj = lst->prev() ) {
+ if ( obj->isA( "TQToolBarSeparator" ) ) {
+ delete obj;
+ obj = 0;
+ break;
+ }
+ }
+
+ setupGoActions();
+
+ TQFont fnt( tabs->browserFont() );
+ fnt.setFamily( settingsDia->fontCombo->currentText() );
+ tabs->setBrowserFont( fnt );
+ tabs->setLinkUnderline( settingsDia->linkUnderlineCB->isChecked() );
+
+ TQPalette pal = tabs->palette();
+ TQColor lc = settingsDia->colorButton->paletteBackgroundColor();
+ pal.setColor( TQPalette::Active, TQColorGroup::Link, lc );
+ pal.setColor( TQPalette::Inactive, TQColorGroup::Link, lc );
+ pal.setColor( TQPalette::Disabled, TQColorGroup::Link, lc );
+ tabs->setPalette( pal );
+
+ TQString family = settingsDia->fixedfontCombo->currentText();
+
+ TQStyleSheet *sh = tabs->styleSheet();
+ sh->item( "pre" )->setFontFamily( family );
+ sh->item( "code" )->setFontFamily( family );
+ sh->item( "tt" )->setFontFamily( family );
+ tabs->currentBrowser()->setText( tabs->currentBrowser()->text() );
+ showLink( tabs->currentBrowser()->source() );
+}
+
+void MainWindow::hide()
+{
+ saveToolbarSettings();
+ TQMainWindow::hide();
+}
+
+MainWindow* MainWindow::newWindow()
+{
+ saveSettings();
+ saveToolbarSettings();
+ MainWindow *mw = new MainWindow;
+ mw->move( geometry().topLeft() );
+ if ( isMaximized() )
+ mw->showMaximized();
+ else
+ mw->show();
+ mw->goHome();
+ return mw;
+}
+
+void MainWindow::saveSettings()
+{
+ Config *config = Config::configuration();
+ config->setFontFamily( tabs->browserFont().family() );
+ config->setFontSize( tabs->currentBrowser()->font().pointSize() );
+ config->setFontFixedFamily( tabs->styleSheet()->item( "pre" )->fontFamily() );
+ config->setLinkUnderline( tabs->linkUnderline() );
+ config->setLinkColor( tabs->palette().color( TQPalette::Active, TQColorGroup::Link ).name() );
+ config->setSideBarPage( helpDock->tabWidget->currentPageIndex() );
+ config->setGeometry( TQRect( x(), y(), width(), height() ) );
+ config->setMaximized( isMaximized() );
+
+ // Create list of the tab urls
+ TQStringList lst;
+ TQPtrList<HelpWindow> browsers = tabs->browsers();
+ HelpWindow *browser = browsers.first();
+ while (browser) {
+ lst << browser->source();
+ browser = browsers.next();
+ }
+ config->setSource(lst);
+ config->save();
+}
+
+void MainWindow::saveToolbarSettings()
+{
+ TQString mainWindowLayout;
+ TQTextStream ts( &mainWindowLayout, IO_WriteOnly );
+ ts << *this;
+ Config::configuration()->setMainWindowLayout( mainWindowLayout );
+}
+
+TabbedBrowser* MainWindow::browsers()
+{
+ return tabs;
+}
+
+void MainWindow::showSearchLink( const TQString &link, const TQStringList &terms )
+{
+ HelpWindow * hw = tabs->currentBrowser();
+ hw->blockScrolling( TRUE );
+ hw->setCursor( waitCursor );
+ if ( hw->source() == link )
+ hw->reload();
+ else
+ showLink( link );
+ hw->sync();
+ hw->setCursor( arrowCursor );
+
+ hw->viewport()->setUpdatesEnabled( FALSE );
+ int minPar = INT_MAX;
+ int minIndex = INT_MAX;
+ TQStringList::ConstIterator it = terms.begin();
+ for ( ; it != terms.end(); ++it ) {
+ int para = 0;
+ int index = 0;
+ bool found = hw->find( *it, FALSE, TRUE, TRUE, &para, &index );
+ while ( found ) {
+ if ( para < minPar ) {
+ minPar = para;
+ minIndex = index;
+ }
+ hw->setColor( red );
+ found = hw->find( *it, FALSE, TRUE, TRUE );
+ }
+ }
+ hw->blockScrolling( FALSE );
+ hw->viewport()->setUpdatesEnabled( TRUE );
+ hw->setCursorPosition( minPar, minIndex );
+ hw->updateContents();
+}
+
+
+void MainWindow::showGoActionLink()
+{
+ const TQObject *origin = sender();
+ if( !origin ||
+ origin->metaObject()->className() != TQString( "TQAction" ) )
+ return;
+
+ TQAction *action = (TQAction*) origin;
+ TQString docfile = *( goActionDocFiles->find( action ) );
+ showLink( docfile );
+}
+
+void MainWindow::showAssistantHelp()
+{
+ showLink( Config::configuration()->assistantDocPath() + "/assistant.html" );
+}
+
+HelpDialog* MainWindow::helpDialog()
+{
+ return helpDock;
+}
+
+void MainWindow::backwardAvailable( bool enable )
+{
+ actionGoPrevious->setEnabled( enable );
+}
+
+void MainWindow::forwardAvailable( bool enable )
+{
+ actionGoNext->setEnabled( enable );
+}
+
+void MainWindow::updateProfileSettings()
+{
+ Config *config = Config::configuration();
+#ifndef Q_WS_MACX
+ setIcon( config->applicationIcon() );
+#endif
+ helpMenu->clear();
+ actionHelpAssistant->addTo( helpMenu );
+ helpMenu->insertSeparator();
+ helpAbout_TQt_AssistantAction->addTo( helpMenu );
+ if ( !config->aboutApplicationMenuText().isEmpty() )
+ actionAboutApplication->addTo( helpMenu );
+ helpMenu->insertSeparator();
+ actionHelpWhatsThis->addTo( helpMenu );
+
+ actionAboutApplication->setMenuText( config->aboutApplicationMenuText() );
+
+ if( !config->title().isNull() )
+ setCaption( config->title() );
+}