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
|