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.
227 lines
7.8 KiB
227 lines
7.8 KiB
/***************************************************************************
|
|
date : Sep 12 2004
|
|
version : 0.22
|
|
copyright : Thomas Fischer <t-fisch@users.sourceforge.net>
|
|
restructured, improved and completed by Holger Danielsson
|
|
(C) 2004 by Holger Danielsson
|
|
email : holger.danielsson@t-online.de
|
|
***************************************************************************/
|
|
|
|
/***************************************************************************
|
|
* *
|
|
* 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 KILEDIALOGQUICKDOCHEADER_H
|
|
#define KILEDIALOGQUICKDOCHEADER_H
|
|
|
|
#include <tqmap.h>
|
|
#include <tqvaluelist.h>
|
|
#include "kilewizard.h"
|
|
|
|
class KComboBox;
|
|
class TQListView;
|
|
class TQCheckListItem;
|
|
class KLineEdit;
|
|
class KPushButton;
|
|
|
|
namespace KileDialog
|
|
{
|
|
|
|
// some flags to check the results of the input dialog
|
|
enum {
|
|
qd_CheckNotEmpty=1,
|
|
qd_CheckDocumentClass=2,
|
|
qd_CheckClassOption=4,
|
|
qd_CheckPackage=8,
|
|
qd_CheckPackageOption=16,
|
|
qd_CheckFontsize=32,
|
|
qd_CheckPapersize=64
|
|
};
|
|
|
|
class QuickDocument : public Wizard
|
|
{
|
|
TQ_OBJECT
|
|
|
|
|
|
public:
|
|
QuickDocument(TDEConfig *, TQWidget *parent=0, const char *name=0, const TQString &caption = TQString());
|
|
~QuickDocument();
|
|
|
|
bool isStandardClass(const TQString &classname);
|
|
bool isDocumentClass(const TQString &name);
|
|
bool isDocumentClassOption(const TQString &option);
|
|
bool isPackage(const TQString &package);
|
|
bool isPackageOption(const TQString &package, const TQString &option);
|
|
|
|
public slots:
|
|
void slotOk();
|
|
|
|
private:
|
|
KComboBox *m_cbDocumentClass;
|
|
KComboBox *m_cbTypefaceSize;
|
|
KComboBox *m_cbPaperSize;
|
|
KComboBox *m_cbEncoding;
|
|
TQListView *m_lvClassOptions;
|
|
TQListView *m_lvPackages;
|
|
KLineEdit *m_leAuthor;
|
|
KLineEdit *m_leTitle;
|
|
KLineEdit *m_leDate;
|
|
TQLabel *m_lbPaperSize;
|
|
|
|
TQString m_currentClass;
|
|
TQString m_currentFontsize;
|
|
TQString m_currentPapersize;
|
|
TQString m_currentEncoding;
|
|
bool m_currentHyperref;
|
|
TQString m_hyperrefdriver;
|
|
TQString m_hyperrefsetup;
|
|
TQStringList m_userClasslist;
|
|
TQStringList m_deleteDocumentClasses;
|
|
|
|
TQMap<TQString,TQStringList> m_dictDocumentClasses;
|
|
TQMap<TQString,bool> m_dictStandardClasses;
|
|
TQMap<TQString,bool> m_currentDefaultOptions;
|
|
TQMap<TQString,bool> m_currentSelectedOptions;
|
|
TQMap<TQString,bool> m_dictPackagesEditable;
|
|
TQMap<TQString,TQString> m_dictPackagesDefaultvalues;
|
|
TQMap<TQString,bool> m_dictHyperrefDriver;
|
|
|
|
KPushButton *m_btnDocumentClassAdd;
|
|
KPushButton *m_btnDocumentClassDelete;
|
|
KPushButton *m_btnTypefaceSizeAdd;
|
|
KPushButton *m_btnTypefaceSizeDelete;
|
|
KPushButton *m_btnPaperSizeAdd;
|
|
KPushButton *m_btnPaperSizeDelete;
|
|
KPushButton *m_btnEncodingAdd;
|
|
KPushButton *m_btnEncodingDelete;
|
|
|
|
KPushButton *m_btnClassOptionsAdd;
|
|
KPushButton *m_btnClassOptionsEdit;
|
|
KPushButton *m_btnClassOptionsDelete;
|
|
KPushButton *m_btnPackagesAdd;
|
|
KPushButton *m_btnPackagesAddOption;
|
|
KPushButton *m_btnPackagesEdit;
|
|
KPushButton *m_btnPackagesDelete;
|
|
KPushButton *m_btnPackagesReset;
|
|
|
|
// GUI
|
|
TQWidget *setupClassOptions(TQTabWidget *tab);
|
|
TQWidget *setupPackages(TQTabWidget *tab);
|
|
TQWidget *setupProperties(TQTabWidget *tab);
|
|
|
|
// read/write config files and init data
|
|
void readConfig();
|
|
void readDocumentClassConfig();
|
|
void readPackagesConfig();
|
|
void initHyperref();
|
|
void writeConfig();
|
|
void writeDocumentClassConfig();
|
|
void writePackagesConfig();
|
|
|
|
// document class tab
|
|
void initDocumentClass();
|
|
void initStandardClass(const TQString &classname,const TQString &fontsize,
|
|
const TQString &papersize,const TQString &defaultoptions,
|
|
const TQString &selectedoptions);
|
|
void initStandardOptions(const TQString &classname,TQStringList &optionlist);
|
|
void setDefaultClassOptions(const TQString &defaultoptions);
|
|
void setSelectedClassOptions(const TQString &selectedoptions);
|
|
void setClassOptions(const TQStringList &list,uint start);
|
|
void updateClassOptions();
|
|
TQString getClassOptions();
|
|
void fillDocumentClassCombobox();
|
|
void fillCombobox(KComboBox *combo, const TQString &cslist,const TQString &seltext);
|
|
bool addComboboxEntries(KComboBox *combo, const TQString &title,const TQString &entry);
|
|
TQString getComboxboxList(KComboBox *combo);
|
|
|
|
bool isDefaultClassOption(const TQString &option);
|
|
bool isSelectedClassOption(const TQString &option);
|
|
TQString stripDefault(const TQString &s);
|
|
|
|
// packages tab
|
|
void initPackages();
|
|
bool readPackagesListview();
|
|
TQCheckListItem *insertListview(TQListView *listview,
|
|
const TQString &entry,
|
|
const TQString &description);
|
|
TQCheckListItem *insertListview(TQCheckListItem *parent,
|
|
const TQString &entry,
|
|
const TQString &description);
|
|
TQCheckListItem *insertEditableListview(TQCheckListItem *parent,
|
|
const TQString &entry,const TQString &description,
|
|
const TQString value,const TQString defaultvalue);
|
|
bool isListviewEntry(TQListView *listview,const TQString &entry);
|
|
void setPackagesValue(TQListViewItem *item,const TQString &option,const TQString &val);
|
|
TQString getPackagesValue(const TQString &value);
|
|
|
|
bool isListviewChild(TQListView *listview,const TQString &entry, const TQString &option);
|
|
TQString addPackageDefault(const TQString &option,const TQString &description);
|
|
TQString stripPackageDefault(const TQString &option,const TQString &description);
|
|
bool isHyperrefDriver(const TQString &name);
|
|
|
|
// document template
|
|
void printTemplate();
|
|
void printPackages();
|
|
void printHyperref();
|
|
void printBeamerTheme();
|
|
|
|
// input dialog
|
|
bool inputDialog(TQStringList &list,int check=qd_CheckNotEmpty);
|
|
|
|
private slots:
|
|
void slotDocumentClassAdd();
|
|
void slotDocumentClassDelete();
|
|
void slotDocumentClassChanged(int index);
|
|
void slotTypefaceSizeAdd();
|
|
void slotTypefaceSizeDelete();
|
|
void slotPaperSizeAdd();
|
|
void slotPaperSizeDelete();
|
|
void slotOptionDoubleClicked(TQListViewItem *listViewItem,const TQPoint &,int);
|
|
void slotClassOptionAdd();
|
|
void slotClassOptionEdit();
|
|
void slotClassOptionDelete();
|
|
|
|
void slotCheckParent(TQListViewItem *listViewItem);
|
|
void slotPackageDoubleClicked(TQListViewItem *listViewItem,const TQPoint &,int);
|
|
void slotPackageAdd();
|
|
void slotPackageAddOption();
|
|
void slotPackageEdit();
|
|
void slotPackageDelete();
|
|
void slotPackageReset();
|
|
|
|
void slotEnableButtons();
|
|
};
|
|
|
|
class QuickDocumentInputDialog : public KDialogBase {
|
|
TQ_OBJECT
|
|
|
|
public:
|
|
QuickDocumentInputDialog(const TQStringList &list,int check=0,
|
|
QuickDocument *parent=0, const char *name=0);
|
|
~QuickDocumentInputDialog();
|
|
|
|
void getResults(TQStringList &list);
|
|
|
|
private:
|
|
QuickDocument *m_parent;
|
|
int m_check;
|
|
|
|
TQStringList m_description;
|
|
TQValueList<TQWidget *> m_objectlist;
|
|
|
|
TQString getPackageName(const TQString &text);
|
|
bool checkListEntries(const TQString &title, const TQString &textlist,const TQString &pattern);
|
|
|
|
private slots:
|
|
void slotOk();
|
|
};
|
|
|
|
} // namespace
|
|
|
|
#endif
|