1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
/***************************************************************************
assoctexteditorimpl.h - Associated text editor implementation
-------------------
copyright : (C) 2003 Marc Britton <[email protected]>
(C) 2004 Michal Rudolf <[email protected]>
(C) 2006 Andras Mantia <[email protected]>
***************************************************************************/
/***************************************************************************
* *
* 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 _HAVE_ASSOCTEXTEDITORIMPL_H_
#define _HAVE_ASSOCTEXTEDITORIMPL_H_
#include <qdict.h>
#include <qstringlist.h>
#include <qstring.h>
#include <qwidget.h>
#include <qobject.h>
#include <qmap.h>
#include <qptrvector.h>
#include <qpixmap.h>
#include "assoctexteditor.h"
#include <kommanderwidget.h>
class FormWindow;
class PropertyEditor;
namespace KTextEditor {
class EditInterface;
class Document;
class View;
}
namespace KParts{
class PartManager;
}
class KAction;
class KPopupMenu;
class AssocTextEditor : public AssocTextEditorBase
{
Q_OBJECT
public:
AssocTextEditor(QWidget*, FormWindow*, PropertyEditor*, KParts::PartManager *partManager, QWidget*, const char* = 0, bool = true);
~AssocTextEditor();
// Set interface for given widget.
void setWidget(QWidget *);
// Save changes for current widget
void save() const;
// Return population text for current widget
QString populationText() const;
// Return associated text for current widget
QStringList associatedText() const;
public slots:
// Current script text has changed - save it in m_atdict
void textEditChanged();
// Current widget has changed - store script and update interface
void widgetChanged(int);
// Current script has changed - store script and show new script
void stateChanged(int);
// Select widget via widget tree dialog
void selectWidget();
// Functions for script editing:
// Insert given text at cursor position for current widget and state
void insertAssociatedText(const QString&);
// Select file and insert its content at cursor position
void insertFile();
// Open function browser and insert chosen function at cursor position
void insertFunction();
// Insert selected function at cursor position
void insertWidgetName(int);
protected:
virtual void closeEvent(QCloseEvent * e);
protected slots:
void slotHighlightingChanged(int mode);
private:
bool useInternalParser();
// Current widget
QWidget *m_widget;
KommanderWidget* m_kommanderWidget;
//FIXME: could it be done more cleanly?
// Current form and property editor
FormWindow* m_formWindow;
PropertyEditor* m_propertyEditor;
// Current state
QString m_currentState;
// List of states for current widget
QStringList m_states;
// Current widget list
QDict<QWidget> m_widgetList;
// Dictionary for current widget; contains pairs (state, script associated with current state)
QMap<QString, QString> m_atdict;
// Current population text
QString m_populationText;
// Non-enmpty script pixmap
QPixmap scriptPixmap;
// Create list of all widgets on the same dialog as current widget
// Set store to true, to update m_widgetList;
QStringList buildWidgetList();
// Convert widget to string displayed in combos
// If formatted, return formatted string, else just widget's name
QString widgetToString(QWidget* widget, bool formatted = true);
// Conver combo string to widget
QWidget* widgetFromString(const QString& name);
KTextEditor::EditInterface *associatedTextEdit;
KTextEditor::Document *doc;
KTextEditor::View *view;
KPopupMenu *highlightPopup;
int oldHlMode;
bool readOnly;
KAction *readOnlyAction;
};
#endif
|