00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
#ifndef QEDITORPART_H
00023
#define QEDITORPART_H
00024
00025
#include <kdeversion.h>
00026
#include <ktexteditor/editor.h>
00027
#include <ktexteditor/document.h>
00028
#include <ktexteditor/editinterface.h>
00029
#include <ktexteditor/undointerface.h>
00030
#include <ktexteditor/cursorinterface.h>
00031
#include <ktexteditor/selectioninterface.h>
00032
#include <ktexteditor/highlightinginterface.h>
00033
#include <ktexteditor/searchinterface.h>
00034
#include <ktexteditor/markinterface.h>
00035
#include <ktexteditor/configinterface.h>
00036
#if (KDE_VERSION > 305)
00037
# include <ktexteditor/markinterfaceextension.h>
00038
#else
00039
# include "kde30x_markinterfaceextension.h"
00040
#endif
00041
#include <qptrlist.h>
00042
00043
#include "qeditor_factory.h"
00044
00045
class QWidget;
00046
class QPainter;
00047
class KURL;
00048
class QEditorView;
00049
class QEditorIndenter;
00050
class QEditorBrowserExtension;
00051
class KAboutData;
00052
class HLMode;
00053
class KConfig;
00054
class QSourceColorizer;
00055
class KDialogBase;
00056
00057 class QEditorPart:
00058
public KTextEditor::Document,
00059
public KTextEditor::EditInterface,
00060
public KTextEditor::UndoInterface,
00061
public KTextEditor::CursorInterface,
00062
public KTextEditor::SelectionInterface,
00063
public KTextEditor::HighlightingInterface,
00064
public KTextEditor::SearchInterface,
00065
public KTextEditor::MarkInterface,
00066
public KTextEditor::MarkInterfaceExtension,
00067
public KTextEditor::ConfigInterface
00068 {
00069 Q_OBJECT
00070
public:
00074
QEditorPart(
QWidget *parentWidget,
const char *widgetName,
00075
QObject *parent,
const char *name,
const QStringList &args);
00076
00080
virtual ~QEditorPart();
00081
00087
virtual void setReadWrite(
bool rw);
00088
00092
virtual void setModified(
bool modified);
00093
00094
QSourceColorizer*
colorizer()
const;
00095
QEditorIndenter*
indenter()
const;
00096
00097 signals:
00098
void fileNameChanged();
00099
void configWidget(
KDialogBase* );
00100
00101
00102
public slots:
00108
virtual void readConfig ();
00109
virtual void writeConfig ();
00110
00115
virtual void readConfig (
KConfig *);
00116
virtual void writeConfig (
KConfig *);
00117
00121
virtual void readSessionConfig (
KConfig *);
00122
virtual void writeSessionConfig (
KConfig *);
00123
00127
virtual void configDialog();
00128
00129
00130
public:
00131
virtual uint
mark (uint line);
00132
00133
virtual void setMark (uint line, uint markType);
00134
virtual void clearMark (uint line);
00135
00136
virtual void addMark (uint line, uint markType);
00137
virtual void removeMark (uint line, uint markType);
00138
00139
virtual QPtrList<KTextEditor::Mark> marks ();
00140
virtual void clearMarks ();
00141
00142 signals:
00143
void marksChanged();
00144
00145
00146
public:
00147
virtual void setPixmap(MarkInterface::MarkTypes,
const QPixmap &);
00148
virtual void setDescription(MarkInterface::MarkTypes,
const QString &);
00149
virtual void setMarksUserChangable(uint markMask);
00150
00151 signals:
00152
virtual void markChanged (KTextEditor::Mark mark,
00153 KTextEditor::MarkInterfaceExtension::MarkChangeAction action);
00154
00155
00156
public:
00157
virtual bool searchText (
unsigned int startLine,
unsigned int startCol,
00158
const QString &
text,
unsigned int *foundAtLine,
unsigned int *foundAtCol,
00159
unsigned int *matchLen,
bool casesensitive =
true,
bool backwards =
false);
00160
00161
virtual bool searchText (
unsigned int startLine,
unsigned int startCol,
00162
const QRegExp ®exp,
unsigned int *foundAtLine,
00163
unsigned int *foundAtCol,
unsigned int *matchLen,
bool backwards =
false);
00164
00165
00166
public:
00167 QEditorView*
currentView()
const {
return m_currentView; }
00168
00174
virtual KTextEditor::View *createView (
QWidget *parent,
const char *name = 0 );
00175
00176
00177
00178
00179
00180
00181
virtual QPtrList<KTextEditor::View> views () const;
00182
00183
00184 public:
00188 virtual
unsigned int hlMode ();
00189
00193 virtual
bool setHlMode (
unsigned int mode);
00194
00198 virtual
unsigned int hlModeCount ();
00199
00203 virtual
QString hlModeName (
unsigned int mode);
00204
00208 virtual
QString hlModeSectionName (
unsigned int mode);
00209
00210 signals:
00211
void hlChanged ();
00212
00213 private:
00214
void setupHighlighting();
00215
int findMode( const
QString& );
00216
00217 private:
00218 QPtrList<
HLMode> m_modes;
00219 unsigned int m_currentMode;
00220
00221
00222 public:
00223 virtual
void clearUndo ();
00224 virtual
void clearRedo ();
00225 virtual
unsigned int undoCount () const;
00226 virtual
unsigned int redoCount () const;
00227 virtual
unsigned int undoSteps () const;
00228 virtual
void setUndoSteps (
unsigned int steps );
00229
00230 public slots:
00231 virtual
void undo ();
00232 virtual
void redo ();
00233
00234 signals:
00235
void undoChanged ();
00236
00237
00238 public:
00242 virtual QString text () const;
00243
00247 virtual QString text (
unsigned int startLine,
unsigned int startCol,
unsigned int endLine,
unsigned int endCol ) const;
00248
00252 virtual QString textLine (
unsigned int line ) const;
00253
00257 virtual
unsigned int numLines () const;
00258
00262 virtual
unsigned int length () const;
00263
00267 virtual
int lineLength (
unsigned int line ) const;
00268
00273 virtual
bool setText ( const QString &text );
00274
00279 virtual
bool clear ();
00280
00285 virtual
bool insertText (
unsigned int line,
unsigned int col, const QString &text );
00286
00291 virtual
bool removeText (
unsigned int startLine,
unsigned int startCol,
unsigned int endLine,
unsigned int endCol );
00292
00297 virtual
bool insertLine (
unsigned int line, const QString &text );
00298
00303 virtual
bool removeLine (
unsigned int line );
00304
00305 signals:
00306
void textChanged ();
00307
void newStatus ();
00308
void charactersInteractivelyInserted(
int ,
int ,const QString&);
00309
00310
00311 public:
00315 virtual KTextEditor::Cursor *createCursor ( );
00316
00317
00318
00319
00320 virtual
QPtrList<KTextEditor::Cursor> cursors () const;
00321
00322
00323 public:
00327 virtual
bool setSelection (
unsigned int startLine,
unsigned int startCol,
unsigned int endLine,
unsigned int endCol );
00328
00332 virtual
bool clearSelection ();
00333
00337 virtual
bool hasSelection () const;
00338
00342 virtual QString selection () const;
00343
00347 virtual
bool removeSelectedText ();
00348
00352 virtual
bool selectAll();
00353
00354 signals:
00355
void selectionChanged ();
00356
00357 protected:
00361 virtual
bool openFile();
00362
00366 virtual
bool saveFile();
00367
00368 public slots:
00369
void fileReload();
00370
00371 protected slots:
00372
void fileOpen();
00373
void fileSaveAs();
00374
00375 private:
00376 QEditorView* m_currentView;
00377 QPtrList<KTextEditor::View> m_views;
00378 QPtrList<KTextEditor::Cursor> m_cursors;
00379 QPtrList<KTextEditor::Mark> m_marks;
00380 QEditorBrowserExtension* m_extension;
00381 };
00382
00383 #endif