File: texteditor.h

package info (click to toggle)
vym 1.8.1-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 3,000 kB
  • ctags: 1,599
  • sloc: cpp: 14,723; sh: 373; xml: 277; perl: 89; makefile: 16
file content (160 lines) | stat: -rw-r--r-- 3,913 bytes parent folder | download
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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
/* emacs: -*- Mode: C; c-style: "bsd"; c-basic-offset: 4; c-recognize-knr-p: nil; -*- */
#ifndef TEXTEDITOR_H 
#define TEXTEDITOR_H

#include <qmainwindow.h>
#include <qtextedit.h>
#include <qaction.h>
#include <qfontdatabase.h>
#include <qcombobox.h>


enum EditorState {inactiveEditor,emptyEditor,filledEditor};

class MyTextEdit;

class TextEditor : public QMainWindow {
    Q_OBJECT
public:
    TextEditor();
    ~TextEditor();

	bool isEmpty();
	void setShowWithMain (bool);
	bool showWithMain ();
	void setFontHint(const QString&);
	QString getFontHint();
	QString getFontHintDefault();
	void setFilename (const QString&);
	QString getFilename ();
	void setFilenameHint (const QString&);
	QString getFilenameHint ();
	bool findText(const QString &, const bool &); // find Text 

protected:
	void setupFileActions();
	void setupEditActions();
	void setupFormatActions();
	void setupSettingsActions();
    void closeEvent( QCloseEvent* );
	

public:
	QString getText();

public slots:
	void editorChanged();	// received when text() changed
	void setText(QString);	// set Text (by MapEditor)
	void setInactive();		// Nothing can be entered
	void editCopyAll();

signals:
	void textHasChanged();
	void fontFamilyHasChanged();
	void fontSizeHasChanged();
	
private slots:
    void textLoad();
    void textSaveAs();
    void textSave();
	void textConvertPar();
	void textJoinLines();
	void textExportAsASCII();
    void textPrint();
	void textEditUndo();
    void toggleFonthint();
    void setFixedFont();
    void setVarFont();
    void textBold();
    void textUnderline();
    void textItalic();
    void textFamily( const QString &f );
    void textSize( const QString &p );
	void textColor();
	void textAlign(QAction*);
	void textVAlign();
    void fontChanged( const QFont &f );
    void colorChanged( const QColor &c );
    void alignmentChanged( int a );
    void verticalAlignmentChanged(int a);
	void enableActions();
	void disableActions();

private:
    QPrinter *printer;
    MyTextEdit *e;
	QPoint lastPos;			// save last position of window
    QString filename;
    QString filenameHint;

	QBrush emptyPaper;		// setting the background color
	QBrush filledPaper;		// depending on the state
	QBrush inactivePaper;	// depending on the state
	EditorState state;
	bool showwithmain;		// same visibility as mainwindow?

	QFont varFont;
	QFont fixedFont;
    QComboBox
	*comboFont,
	*comboSize;
	
	QAction *actionFileLoad,
	*actionFileSave,
	*actionFileSaveAs,
	*actionFilePrint,
	*actionEditUndo,
	*actionEditRedo,
	*actionEditCopy,
	*actionEditCut,
	*actionEditPaste,
	*actionEditDeleteAll,
	*actionEditConvertPar,
	*actionEditJoinLines,
	*actionFormatUseFixedFont,
	*actionSettingsVarFont,
	*actionSettingsFixedFont,
	*actionSettingsFonthintDefault,
    *actionTextBold,
	*actionTextUnderline,
	*actionTextItalic,
	*actionTextColor,
	*actionAlignLeft,
	*actionAlignCenter,
	*actionAlignRight,
	*actionAlignJustify,
	*actionAlignSubScript,
	*actionAlignSuperScript;
};

/* Wraps currentVerticalAlignmentChanged(VerticalAlignment)
 * to currentVerticalAlignmentChanged(int) 
 * this way the signal can be used without use of the internal 
 * VerticalAlignment enum of QTextEdit 
 * If VerticalAlignment has been a global like the normal alignment there
 * have been no problems!
 */
 
class MyTextEdit : public QTextEdit 
{
    Q_OBJECT;
 public:
    MyTextEdit(QWidget *parent, const char *name) : QTextEdit(parent, name) {
	connect(this, 
		SIGNAL(currentVerticalAlignmentChanged(VerticalAlignment)),
		this, 
		SLOT(verticalAlignmentChanged(VerticalAlignment)));
    }
    int verticalAlignment() const { return m_verticalAlignment; } 
 signals:
    void currentVerticalAlignmentChanged(int a);
 public slots:
    void verticalAlignmentChanged(VerticalAlignment a) {
     m_verticalAlignment = a;
	emit currentVerticalAlignmentChanged((int)a);
    }
 private: 
 int m_verticalAlignment;
};

#endif