QtiPlot  0.9.8.2
CustomActionDialog.h
Go to the documentation of this file.
1 /***************************************************************************
2  File : CustomActionDialog.h
3  Project : QtiPlot
4  --------------------------------------------------------------------
5  Copyright : (C) 2007 by Ion Vasilief
6  Email (use @ for *) : ion_vasilief*yahoo.fr
7  Description : Custom Action dialog
8 
9  ***************************************************************************/
10 
11 /***************************************************************************
12  * *
13  * This program is free software; you can redistribute it and/or modify *
14  * it under the terms of the GNU General Public License as published by *
15  * the Free Software Foundation; either version 2 of the License, or *
16  * (at your option) any later version. *
17  * *
18  * This program is distributed in the hope that it will be useful, *
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
21  * GNU General Public License for more details. *
22  * *
23  * You should have received a copy of the GNU General Public License *
24  * along with this program; if not, write to the Free Software *
25  * Foundation, Inc., 51 Franklin Street, Fifth Floor, *
26  * Boston, MA 02110-1301 USA *
27  * *
28  ***************************************************************************/
29 #ifndef CustomActionDialog_H
30 #define CustomActionDialog_H
31 
32 #include <QDialog>
33 #include <QXmlDefaultHandler>
34 
35 class QGroupBox;
36 class QPushButton;
37 class QRadioButton;
38 class QComboBox;
39 class QListWidget;
40 class QLineEdit;
41 class QMenu;
42 class QToolBar;
43 
44 class CustomActionDialog : public QDialog
45 {
46  Q_OBJECT
47 
48 public:
50 
54  CustomActionDialog( QWidget* parent, Qt::WFlags fl = 0 );
55 
56 private slots:
57  void chooseIcon();
58  void chooseFile();
59  void chooseFolder();
60  QAction* addAction();
61  void removeAction();
62  void setCurrentAction(int);
63  void saveCurrentAction();
64  void addMenu();
65  void removeMenu();
66  void enableDeleteMenuBtn(const QString &);
67 
68 private:
69  void init();
70  void updateDisplayList();
71  QAction* actionAt(int row);
72  void saveAction(QAction *action);
73  void customizeAction(QAction *action);
74  bool validUserInput();
75  void saveMenu(QMenu *menu);
76 
77  QStringList d_app_shortcut_keys;
78 
79  QList<QMenu *> d_menus;
80  QList<QToolBar *> d_app_toolbars;
81 
82  QListWidget *itemsList;
84  QPushButton *folderBtn, *fileBtn, *iconBtn;
86  QRadioButton *menuBtn, *toolBarBtn;
87  QComboBox *menuBox, *toolBarBox;
88  QPushButton *newMenuBtn, *removeMenuBtn;
89 };
90 
91 class CustomActionHandler : public QXmlDefaultHandler
92 {
93 public:
94  CustomActionHandler(QAction *action);
95 
96  bool startElement(const QString &namespaceURI, const QString &localName,
97  const QString &qName, const QXmlAttributes &attributes);
98  bool endElement(const QString &namespaceURI, const QString &localName,
99  const QString &qName);
100  bool characters(const QString &str){currentText += str; return true;};
101  bool fatalError(const QXmlParseException &){return false;};
102  QString errorString() const {return errorStr;};
103  QString parentName(){return d_widget_name;};
104 
105 private:
106  bool metFitTag;
107  QString currentText;
108  QString errorStr;
109  QString filePath;
110  QString d_widget_name;
111  QAction *d_action;
112 };
113 
114 class CustomMenuHandler : public QXmlDefaultHandler
115 {
116 public:
118 
119  bool startElement(const QString &namespaceURI, const QString &localName,
120  const QString &qName, const QXmlAttributes &attributes);
121  bool endElement(const QString &namespaceURI, const QString &localName,
122  const QString &qName);
123  bool characters(const QString &str){currentText += str; return true;};
124  bool fatalError(const QXmlParseException &){return false;};
125  QString errorString() const {return errorStr;};
126  QString location(){return d_location;};
127  QString title(){return d_title;};
128 
129 private:
130  bool metFitTag;
131  QString currentText;
132  QString errorStr;
133  QString d_location, d_title;
134 };
135 #endif
bool fatalError(const QXmlParseException &)
Definition: CustomActionDialog.h:124
QListWidget * itemsList
Definition: CustomActionDialog.h:82
QPushButton * buttonCancel
Definition: CustomActionDialog.h:83
QList< QToolBar * > d_app_toolbars
Definition: CustomActionDialog.h:80
QComboBox * toolBarBox
Definition: CustomActionDialog.h:87
void saveAction(QAction *action)
Definition: CustomActionDialog.cpp:444
QComboBox * menuBox
Definition: CustomActionDialog.h:87
void saveMenu(QMenu *menu)
Definition: CustomActionDialog.cpp:653
void chooseIcon()
Definition: CustomActionDialog.cpp:477
void chooseFile()
Definition: CustomActionDialog.cpp:485
bool characters(const QString &str)
Definition: CustomActionDialog.h:123
Definition: CustomActionDialog.h:44
void addMenu()
Definition: CustomActionDialog.cpp:558
void updateDisplayList()
Definition: CustomActionDialog.cpp:208
QString title()
Definition: CustomActionDialog.h:127
QRadioButton * toolBarBtn
Definition: CustomActionDialog.h:86
void removeAction()
Definition: CustomActionDialog.cpp:374
QString errorString() const
Definition: CustomActionDialog.h:125
QPushButton * fileBtn
Definition: CustomActionDialog.h:84
QPushButton * newMenuBtn
Definition: CustomActionDialog.h:88
void init()
Definition: CustomActionDialog.cpp:164
void customizeAction(QAction *action)
Definition: CustomActionDialog.cpp:352
QLineEdit * shortcutBox
Definition: CustomActionDialog.h:85
QPushButton * folderBtn
Definition: CustomActionDialog.h:84
QLineEdit * textBox
Definition: CustomActionDialog.h:85
void saveCurrentAction()
Definition: CustomActionDialog.cpp:400
void setCurrentAction(int)
Definition: CustomActionDialog.cpp:524
bool validUserInput()
Definition: CustomActionDialog.cpp:272
void chooseFolder()
Definition: CustomActionDialog.cpp:497
void enableDeleteMenuBtn(const QString &)
Definition: CustomActionDialog.cpp:641
bool fatalError(const QXmlParseException &)
Definition: CustomActionDialog.h:101
QAction * addAction()
Definition: CustomActionDialog.cpp:228
QString location()
Definition: CustomActionDialog.h:126
QAction * actionAt(int row)
Definition: CustomActionDialog.cpp:514
QList< QMenu * > d_menus
Definition: CustomActionDialog.h:79
QLineEdit * iconBox
Definition: CustomActionDialog.h:85
QPushButton * buttonRemove
Definition: CustomActionDialog.h:83
bool characters(const QString &str)
Definition: CustomActionDialog.h:100
void removeMenu()
Definition: CustomActionDialog.cpp:596
QStringList d_app_shortcut_keys
Definition: CustomActionDialog.h:77
QString currentText
Definition: CustomActionDialog.h:131
QAction * d_action
Definition: CustomActionDialog.h:111
QString d_title
Definition: CustomActionDialog.h:133
QString errorStr
Definition: CustomActionDialog.h:108
Definition: CustomActionDialog.h:114
QRadioButton * menuBtn
Definition: CustomActionDialog.h:86
QPushButton * removeMenuBtn
Definition: CustomActionDialog.h:88
QPushButton * buttonSave
Definition: CustomActionDialog.h:83
QPushButton * iconBtn
Definition: CustomActionDialog.h:84
Definition: CustomActionDialog.h:91
QString errorStr
Definition: CustomActionDialog.h:132
QPushButton * buttonAdd
Definition: CustomActionDialog.h:83
QLineEdit * fileBox
Definition: CustomActionDialog.h:85
QLineEdit * folderBox
Definition: CustomActionDialog.h:85
CustomActionDialog(QWidget *parent, Qt::WFlags fl=0)
Constructor.
Definition: CustomActionDialog.cpp:52
QString d_widget_name
Definition: CustomActionDialog.h:110
QString currentText
Definition: CustomActionDialog.h:107
QString filePath
Definition: CustomActionDialog.h:109
QString parentName()
Definition: CustomActionDialog.h:103
QLineEdit * toolTipBox
Definition: CustomActionDialog.h:85
QString errorString() const
Definition: CustomActionDialog.h:102