Salome HOME
Fix misprint
[tools/install.git] / src / SALOME_HelpWindow.cxx
1 //  File      : SALOME_HelpWindow.cxx
2 //  Created   : Thu Dec 18 12:01:00 2002
3 //  Author    : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
4 //  Project   : SALOME
5 //  Module    : Installation Wizard
6 //  Copyright : 2002-2013 CEA
7
8 #include "SALOME_HelpWindow.hxx"
9 #include "SALOME_InstallWizard.hxx"
10
11 #include <qstatusbar.h>
12 #include <qtoolbar.h>
13 #include <qtoolbutton.h>
14 #include <qiconset.h>
15 #include <qlabel.h>
16 #include <qtextbrowser.h>
17 #include <qapplication.h>
18 #include <qdir.h> 
19 #include <qfile.h>
20
21 #include "icons.h" 
22
23 #define  DEFAULT_WIDTH    800
24 #define  DEFAULT_HEIGHT   700
25
26 // ================================================================
27 /*!
28  *  HelpWindow::HelpWindow
29  *  Constructor
30  */
31 // ================================================================
32 HelpWindow::HelpWindow( SALOME_InstallWizard* wizard ) : QMainWindow( 0, "SalomeProHelpWindow", WDestructiveClose )
33 {
34   QString hlpFile = QDir( SALOME_InstallWizard::rootDirPath() ).filePath( "doc/readme.html" );
35   QString hlpDir = ".";
36   // caption
37   setCaption( wizard->getCaption() + " " + wizard->getIWName() + " " + tr( "Help" ) );
38   // icon
39   setIcon( pixmap( pxIcon ) );
40   // create browser
41   browser = new QTextBrowser( this );
42   browser->mimeSourceFactory()->setFilePath( hlpDir );
43   browser->setFrameStyle( QFrame::Panel | QFrame::Sunken );
44   setCentralWidget( browser );
45   // set source directory
46   if ( !hlpFile.isEmpty() )
47     browser->setSource( hlpFile );
48   // toolbar
49   QToolBar* toolbar = new QToolBar( this );
50   addToolBar( toolbar, "Toolbar" );
51   QToolButton* button;
52   // --> back
53   button = new QToolButton( QIconSet( pixmap( pxBack ) ), 
54                             tr( "Backward" ), 
55                             "", 
56                             browser, 
57                             SLOT( backward() ), 
58                             toolbar );
59   button->setEnabled( FALSE );
60   connect( browser, SIGNAL( backwardAvailable( bool ) ), button, SLOT( setEnabled( bool ) ) );
61   // --> forward
62   button = new QToolButton( QIconSet( pixmap( pxNext ) ), 
63                             tr( "Forward" ), 
64                             "", 
65                             browser, 
66                             SLOT( forward() ), 
67                             toolbar );
68   button->setEnabled( FALSE );
69   connect( browser, SIGNAL( forwardAvailable( bool ) ),  button, SLOT( setEnabled( bool ) ) );
70   // --> home
71   button = new QToolButton( QIconSet( pixmap( pxHome ) ), 
72                             tr( "Home" ), 
73                             "", 
74                             browser, 
75                             SLOT( home() ), 
76                             toolbar );
77   toolbar->addSeparator();
78   button = new QToolButton( QIconSet( pixmap( pxZoomIn ) ), 
79                             tr( "Increaze font size" ), 
80                             "", 
81                             browser, 
82                             SLOT( zoomIn() ), 
83                             toolbar );
84   button = new QToolButton( QIconSet( pixmap( pxZoomOut ) ), 
85                             tr( "Decreaze font size" ), 
86                             "", 
87                             browser, 
88                             SLOT( zoomOut() ), 
89                             toolbar );
90   toolbar->addSeparator();
91   button = new QToolButton( QIconSet( pixmap( pxClose ) ), 
92                             tr( "Close" ), 
93                             "", 
94                             this, 
95                             SLOT( close() ), 
96                             toolbar );
97   toolbar->addSeparator();
98   // --> logo
99   QLabel* logo = new QLabel( toolbar, "logo" );
100   logo->setPixmap( pixmap( pxLogo ) );
101   logo->setAlignment( AlignRight | AlignVCenter );
102   logo->setScaledContents( false );
103   toolbar->setStretchableWidget( logo );
104   setRightJustification( TRUE );
105   // disable docking of toolbar
106   setDockEnabled( Qt::DockLeft,    FALSE );
107   setDockEnabled( Qt::DockRight,   FALSE );
108   setDockEnabled( Qt::DockBottom,  FALSE );
109   setDockEnabled( Qt::DockTornOff, FALSE );
110   // disable dock menu
111   setDockMenuEnabled ( FALSE ) ;
112   // connect signals
113   connect( browser, SIGNAL( highlighted( const QString&) ), statusBar(), SLOT( message( const QString&)) );
114   // set focus
115   browser->setFocus();
116   // initial size
117   QSize sz = qApp->desktop()->size();
118   int x = ( sz.width()  - DEFAULT_WIDTH )  / 2;
119   int y = ( sz.height() - DEFAULT_HEIGHT ) / 2;
120   setGeometry( x, y, DEFAULT_WIDTH, DEFAULT_HEIGHT );
121 }
122 // ================================================================
123 /*!
124  *  HelpWindow::~HelpWindow
125  *  Destructor
126  */
127 // ================================================================
128 HelpWindow::~HelpWindow()
129 {
130 }
131 // ================================================================
132 /*!
133  *  HelpWindow::keyPressEvent
134  *  Key press event handler
135  */
136 // ================================================================
137 void HelpWindow::keyPressEvent( QKeyEvent* e )
138 {
139   if ( e->key() == Key_Escape )
140     close();
141   QMainWindow::keyPressEvent( e );
142 }
143 // ================================================================
144 /*!
145  *  HelpWindow::openHelp [ static ]
146  *  Creates Help window ane return pointer to it if help file exists,
147  *  otherwise returns 0
148  */
149 // ================================================================
150 HelpWindow* HelpWindow::openHelp( SALOME_InstallWizard* wizard )
151 {
152   if ( QFile::exists( QDir( SALOME_InstallWizard::rootDirPath() ).filePath( "doc/readme.html" ) ) )
153     return new HelpWindow( wizard );
154   else
155     return 0;
156 }