00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
#include <qfile.h>
00013
#include <qtextstream.h>
00014
#include <qstringlist.h>
00015
00016
#include <qlabel.h>
00017
#include <qpushbutton.h>
00018
#include <qlayout.h>
00019
#include <qsizegrip.h>
00020
#include <qkeysequence.h>
00021
00022
00023
#include "helpWindow.h"
00024
#include "contents.h"
00025
#include "whatsNew.h"
00026
#include "importing.h"
00027
#include "annotating.h"
00028
#include "framing.h"
00029
#include "enhancing.h"
00030
#include "proTools.h"
00031
#include "manipulating.h"
00032
#include "loadSave.h"
00033
#include "shortcuts.h"
00034
00035
#include "../ALabel.h"
00036
#include "../../config.h"
00037
00038
00039 HelpWindow::HelpWindow(
QWidget* parent,
const char* name ) :
QDialog(parent,name)
00040 {
00041
00042 QTextStream::Encoding fileEncoding;
00043 QString savingCharSet;
00044 QString loadingCharSet;
00045
00046
00047
#if defined(Q_OS_MACX)
00048
fileEncoding = QTextStream::Unicode;
00049 savingCharSet =
"utf16";
00050 loadingCharSet =
"UTF-16";
00051
00052
00053
#elif !defined(Q_WS_WIN) || (defined(Q_WS_WIN) && defined(UNICODE))
00054
fileEncoding = QTextStream::UnicodeUTF8;
00055 savingCharSet =
"utf8";
00056 loadingCharSet =
"UTF-8";
00057
00058
00059
#else
00060
fileEncoding = QTextStream::Latin1;
00061 savingCharSet =
"latin-1";
00062 loadingCharSet =
"latin-1";
00063
#endif
00064
00065
00066 WhatsNew::generateHTML (fileEncoding, savingCharSet);
00067 Importing::generateHTML (fileEncoding, savingCharSet);
00068 Annotating::generateHTML (fileEncoding, savingCharSet);
00069 Framing::generateHTML (fileEncoding, savingCharSet);
00070 Enhancing::generateHTML (fileEncoding, savingCharSet);
00071 ProTools::generateHTML (fileEncoding, savingCharSet);
00072 Manipulating::generateHTML(fileEncoding, savingCharSet);
00073 LoadSave::generateHTML (fileEncoding, savingCharSet);
00074 Shortcuts::generateHTML (fileEncoding, savingCharSet);
00075
00076 resize( 800, 400 );
00077 setPaletteBackgroundColor( QColor(255,255,255) );
00078
00079
00080 setCaption( tr(
"Album Shaper Help"));
00081
00082
00083
billboard =
new ALabel(
this,
"helpBillboard", NULL,
00084
APPEAR_IMMEDIATELY,
SLIDE_OUT_LEFT );
00085
billboard->
setPixmap( QPixmap( QString(
IMAGE_PATH)+
"helpImages/helpBillboard.png") );
00086
currentPage =
BILLBOARD;
00087 connect(
billboard, SIGNAL(pixmapRemoved()),
00088
this, SLOT(
showFirstSelection()) );
00089
00090
00091
loadingMimeSource =
new QMimeSourceFactory();
00092
loadingMimeSource->setExtensionType(
"html",QString(
"text/html;charset=%1").arg(loadingCharSet) );
00093
00094
00095
Contents* contents =
new Contents(fileEncoding, savingCharSet,
loadingMimeSource,
this);
00096 connect( contents, SIGNAL(
setPage(
HELP_PAGE)),
00097
this, SLOT(
setPage(
HELP_PAGE)) );
00098
00099
00100
content =
new QTextBrowser(
this );
00101
content->setHScrollBarMode( QScrollView::Auto );
00102
content->setVScrollBarMode( QScrollView::Auto );
00103
content->setFrameStyle( QFrame::NoFrame );
00104
content->setMimeSourceFactory(
loadingMimeSource );
00105
00106
00107
00108
00109
00110
00111
#if defined(Q_OS_MACX) || defined(Q_OS_WIN)
00112
content->setCornerWidget(
new QSizeGrip(
this) );
00113
#endif
00114
00115
content->hide();
00116
00117
00118 QGridLayout* grid =
new QGridLayout(
this, 4, 3, 0);
00119 grid->addMultiCellWidget(
billboard, 0,2, 0,0, Qt::AlignHCenter | Qt::AlignTop );
00120 grid->addWidget( contents, 1,1 );
00121 grid->addMultiCellWidget(
content, 0,2, 2,2 );
00122
00123 grid->setRowSpacing( 0, QMAX(
billboard->sizeHint().height() -
00124 contents->
minimumSizeHint().height(), 0)/2 );
00125 grid->setColSpacing( 1, contents->
minimumSizeHint().width() );
00126 grid->setRowStretch( 1, 1 );
00127 grid->setColStretch( 2, 1 );
00128
00129
00130
#if (!defined(Q_OS_WIN) && !defined(Q_OS_MACX))
00131
QPushButton* closeButton =
new QPushButton( tr(
"Close"),
this );
00132 closeButton->setSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed );
00133 closeButton->setDefault(
true);
00134 connect( closeButton, SIGNAL(clicked()), SLOT(close()) );
00135 grid->addMultiCellWidget( closeButton, 3,3, 0,2, Qt::AlignCenter );
00136
#endif
00137
00138 }
00139
00140 HelpWindow::~HelpWindow()
00141 {
00142
delete loadingMimeSource;
00143
loadingMimeSource = NULL;
00144 }
00145
00146 void HelpWindow::closeEvent( QCloseEvent* e)
00147 {
00148 QWidget::closeEvent( e );
00149 emit
closed();
00150 }
00151
00152 void HelpWindow::reject()
00153 {
00154 QDialog::reject();
00155 emit
closed();
00156 }
00157
00158 void HelpWindow::setPage(HELP_PAGE page)
00159 {
00160
00161
if(
currentPage ==
BILLBOARD )
00162 {
00163
billboard->
removePixmap();
00164
currentPage = page;
00165
00166
00167 }
00168
else
00169 {
00170
currentPage = page;
00171
showCurrentPage();
00172 }
00173 }
00174
00175 void HelpWindow::showFirstSelection()
00176 {
00177
content->show();
00178
showCurrentPage();
00179 }
00180
00181 void HelpWindow::showCurrentPage()
00182 {
00183
if(
currentPage ==
KEYBOARD_SHORTCUTS )
00184
content->setSource( Shortcuts::filename() );
00185
else if(
currentPage ==
WHATS_NEW )
00186
content->setSource( WhatsNew::filename() );
00187
00188
else if(
currentPage ==
IMPORTING_AND_ORGANIZING )
00189
content->setSource( Importing::filename() );
00190
else if(
currentPage ==
ANNOTATING_ALBUMS )
00191
content->setSource( Annotating::filename() );
00192
else if(
currentPage ==
FRAMING )
00193
content->setSource( Framing::filename() );
00194
else if(
currentPage ==
ENHANCING )
00195
content->setSource( Enhancing::filename() );
00196
else if(
currentPage ==
PRO_TOOLS )
00197
content->setSource( ProTools::filename() );
00198
else if(
currentPage ==
MANIPULATING )
00199
content->setSource( Manipulating::filename() );
00200
else if(
currentPage ==
SAVING_AND_LOADING )
00201
content->setSource( LoadSave::filename() );
00202
else
00203
content->setText(
"");
00204
00205
content->setFocus();
00206 }
00207
00208
00209