You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
228 lines
6.8 KiB
228 lines
6.8 KiB
// -*- Mode: c++; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 4; -*-
|
|
/* This file is part of the KDE project
|
|
Copyright (C) 1998, 1999 Reginald Stadlbauer <reggie@kde.org>
|
|
|
|
This library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Library General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 2 of the License, or (at your option) any later version.
|
|
|
|
This library is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Library General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Library General Public License
|
|
along with this library; see the file COPYING.LIB. If not, write to
|
|
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
* Boston, MA 02110-1301, USA.
|
|
*/
|
|
|
|
#ifndef webpresentation_h
|
|
#define webpresentation_h
|
|
|
|
#include <kwizard.h>
|
|
|
|
#include <qdialog.h>
|
|
#include <qvaluelist.h>
|
|
|
|
|
|
class KPrDocument;
|
|
class KPrView;
|
|
|
|
class KURLRequester;
|
|
class KColorButton;
|
|
class KListView;
|
|
class KIntNumInput;
|
|
class KLineEdit;
|
|
class KComboBox;
|
|
|
|
class QVBox;
|
|
class QHBox;
|
|
|
|
class QListViewItem;
|
|
class QCloseEvent;
|
|
class KProgress;
|
|
class QLabel;
|
|
|
|
class QCheckBox;
|
|
|
|
class KPrWebPresentation
|
|
{
|
|
public:
|
|
|
|
KPrWebPresentation( KPrDocument *_doc, KPrView *_view );
|
|
KPrWebPresentation( const QString &_config, KPrDocument *_doc, KPrView *_view );
|
|
KPrWebPresentation( const KPrWebPresentation &webPres );
|
|
|
|
void setAuthor( const QString &_author )
|
|
{ author = _author; }
|
|
void setEMail( const QString &_email )
|
|
{ email = _email; }
|
|
void setTitle( const QString &_title )
|
|
{ title = _title; }
|
|
void setBackColor( const QColor &_backColor )
|
|
{ backColor = _backColor; }
|
|
void setTitleColor( const QColor &_titleColor )
|
|
{ titleColor = _titleColor; }
|
|
void setTextColor( const QColor &_textColor )
|
|
{ textColor = _textColor; }
|
|
void setXML( bool _xml )
|
|
{ xml = _xml; }
|
|
void setWriteHeader( bool _writeHeader )
|
|
{ m_bWriteHeader = _writeHeader; }
|
|
void setWriteFooter( bool _writeFooter )
|
|
{ m_bWriteFooter = _writeFooter; }
|
|
void setLoopSlides( bool _loopSlides )
|
|
{ m_bLoopSlides = _loopSlides; }
|
|
void setPath( const QString &_path )
|
|
{ path = _path; }
|
|
void setZoom( int _zoom )
|
|
{ zoom = _zoom; }
|
|
void setTimeBetweenSlides( int _timeBetweenSlides )
|
|
{ timeBetweenSlides = _timeBetweenSlides; } // PAU
|
|
void setEncoding( const QString &_encoding ) { m_encoding = _encoding; }
|
|
|
|
QString getAuthor() const { return author; }
|
|
QString getEmail() const { return email; }
|
|
QString getTitle() const { return title; }
|
|
QColor getBackColor() const { return backColor; }
|
|
QColor getTitleColor() const { return titleColor; }
|
|
QColor getTextColor() const { return textColor; }
|
|
bool isXML() const { return xml; }
|
|
bool wantHeader() const { return m_bWriteHeader; }
|
|
bool wantFooter() const { return m_bWriteFooter; }
|
|
bool wantLoopSlides() const { return m_bLoopSlides; }
|
|
QString getPath() const { return path; }
|
|
int getZoom() const { return zoom; }
|
|
int getTimeBetweenSlides() const { return timeBetweenSlides; } // PAU
|
|
QString getEncoding() const { return m_encoding; }
|
|
|
|
struct SlideInfo {
|
|
int pageNumber; /* 0-based */
|
|
QString slideTitle;
|
|
};
|
|
// Each entry in this list is a page (number+title).
|
|
// This allows to skip pages.
|
|
QValueList<SlideInfo> getSlideInfos() const { return slideInfos; }
|
|
|
|
void setSlideTitle( int i, const QString &slideTitle )
|
|
{ slideInfos[i].slideTitle = slideTitle; }
|
|
|
|
void setConfig( const QString &_config )
|
|
{ config = _config; }
|
|
QString getConfig() const { return config; }
|
|
|
|
void loadConfig();
|
|
void saveConfig();
|
|
|
|
int initSteps() const { return 7; }
|
|
int slides1Steps() { return slideInfos.count(); }
|
|
int slides2Steps() { return slideInfos.count(); }
|
|
int mainSteps() const { return 1; }
|
|
|
|
void initCreation( KProgress *progressBar );
|
|
void createSlidesPictures( KProgress *progressBar );
|
|
void createSlidesHTML( KProgress *progressBar );
|
|
void createMainPage( KProgress *progressBar );
|
|
|
|
protected:
|
|
void init();
|
|
QString escapeHtmlText( QTextCodec *codec, const QString& strText ) const;
|
|
void writeStartOfHeader(QTextStream& streamOut, QTextCodec *codec,
|
|
const QString& subtitle, const QString& dest );
|
|
|
|
KPrDocument *doc;
|
|
KPrView *view;
|
|
QString config;
|
|
QString author, title, email;
|
|
QValueList<SlideInfo> slideInfos;
|
|
QColor backColor, titleColor, textColor;
|
|
QString path;
|
|
bool xml;
|
|
bool m_bWriteHeader, m_bWriteFooter, m_bLoopSlides;
|
|
int timeBetweenSlides;
|
|
int zoom;
|
|
QString m_encoding;
|
|
};
|
|
|
|
class KPrWebPresentationWizard : public KWizard
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
KPrWebPresentationWizard( const QString &_config, KPrDocument *_doc, KPrView *_view );
|
|
~KPrWebPresentationWizard();
|
|
|
|
static void createWebPresentation( const QString &_config, KPrDocument *_doc, KPrView *_view );
|
|
|
|
protected:
|
|
|
|
void setupPage1();
|
|
void setupPage2();
|
|
void setupPage3();
|
|
void setupPage4();
|
|
void setupPage5(); // PAU
|
|
|
|
void closeEvent( QCloseEvent *e );
|
|
|
|
QString config;
|
|
KPrDocument *doc;
|
|
KPrView *view;
|
|
KPrWebPresentation webPres;
|
|
|
|
QHBox *page1, *page2, *page3, *page4, *page5; // PAU
|
|
QCheckBox *writeHeader, *writeFooter, *loopSlides; // PAU
|
|
KLineEdit *author, *title, *email;
|
|
KColorButton *textColor, *titleColor, *backColor;
|
|
KComboBox *encoding, *doctype;
|
|
KIntNumInput *zoom, *timeBetweenSlides; // PAU
|
|
KURLRequester *path;
|
|
KListView *slideTitles;
|
|
KLineEdit *slideTitle;
|
|
|
|
protected slots:
|
|
virtual void finish();
|
|
void pageChanged();
|
|
void slotChoosePath(const QString &);
|
|
void slideTitleChanged( const QString & );
|
|
void slideTitleChanged( QListViewItem * );
|
|
|
|
};
|
|
|
|
class KPrWebPresentationCreateDialog : public QDialog
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
KPrWebPresentationCreateDialog( KPrDocument *_doc, KPrView *_view, const KPrWebPresentation &_webPres );
|
|
~KPrWebPresentationCreateDialog();
|
|
|
|
static void createWebPresentation( KPrDocument *_doc, KPrView *_view, const KPrWebPresentation &_webPres );
|
|
|
|
void start();
|
|
|
|
void initCreation();
|
|
void createSlidesPictures();
|
|
void createSlidesHTML();
|
|
void createMainPage();
|
|
|
|
protected:
|
|
void setupGUI();
|
|
void resizeEvent( QResizeEvent *e );
|
|
|
|
KPrView *view;
|
|
KPrDocument *doc;
|
|
KPrWebPresentation webPres;
|
|
|
|
KProgress *progressBar;
|
|
QLabel *step1, *step2, *step3, *step4, *step5;
|
|
QPushButton *bDone, *bSave;
|
|
QVBox *back;
|
|
|
|
protected slots:
|
|
void saveConfig();
|
|
|
|
};
|
|
#endif
|