Subversion Repositories Scribus

Rev

Rev 2716 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

/***************************************************************************
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 ***************************************************************************/


#ifndef _LOREMIPSUM_H_
#define _LOREMIPSUM_H_

#include <qvariant.h>
#include <qdialog.h>

class QVBoxLayout;
class QHBoxLayout;
class QGridLayout;
class QSpacerItem;
class QListView;
class QListViewItem;
class QLabel;
class QSpinBox;
class QCheckBox;
class QPushButton;
class QString;
class QStringList;

/*! \brief This module provides simple interface to the various Lorem Ipsum variants.
Scribus LI are stored in the set of XML files.
The file has followind structure:
                                   <?xml version="1.0" encoding="utf8"?>
                                   <lorem>

                                   <name>name to display</name>
                                   <author>person name</author>
                                   <url>web interface</url>

                                   <p>text</p>
                                   <p>...</p>
                                   </lorem>
Files are in UTF encoding.
\author Petr Vanek <petr@yarpen.cz>
*/


/*! \brief XML parser for Lorem Ipsum file.
This helper class reads one ile
\author Petr Vanek <petr@yarpen.cz>
 */

class LoremParser
{
        public:
                /*! parse a XML file with given name
                \param filename string fith the file name with full/relative path */

                LoremParser(QString filename);
                ~LoremParser(){};

                //! Name to display
                QString name;
                //! Author of the LI
                QString author;
                //! Website of the LI
                QString url;
                //! Paragraphs of the LI
                QStringList loremIpsum;

                /*! Construct a LI
                \param parCount count of the paragraphs */

                QString createLorem(uint parCount);
};


class LoremManager : public QDialog
{
        Q_OBJECT

        public:
                /*! Reads all XML files in cfg directory. */
                LoremManager(QWidget* parent = 0, const char* name = 0, bool modal = true, WFlags fl = 0);
                ~LoremManager(){};

                //! all lorems with Public Name -> filename structure
                QMap<QString,QString> availableLorems;

        public slots:
                virtual void okButton_clicked();
                virtual void cancelButton_clicked();

        protected:
                QListView* loremList;
                QLabel* paraLabel;
                QSpinBox* paraBox;
                QCheckBox* alwaysCheckBox;
                QPushButton* okButton;
                QPushButton* cancelButton;

                QGridLayout* LoremManagerLayout;
                QVBoxLayout* layout3;
                QHBoxLayout* layout2;
                QSpacerItem* paraSpacer;
                QHBoxLayout* layout1;
                QSpacerItem* buttonSpacer;

        protected slots:
                virtual void languageChange();

};

#endif