qeditor_view.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef qeditor_view_h
00022 #define qeditor_view_h
00023
00024 #include <kdeversion.h>
00025 #include <ktexteditor/view.h>
00026 #include <ktexteditor/viewcursorinterface.h>
00027 #include <ktexteditor/clipboardinterface.h>
00028
00029 class QPopupMenu;
00030 #include <ktexteditor/popupmenuinterface.h>
00031 #include <ktexteditor/codecompletioninterface.h>
00032 #if defined(KDE_MAKE_VERSION)
00033 # if KDE_VERSION >= KDE_MAKE_VERSION(3,1,90)
00034 # include <ktexteditor/texthintinterface.h>
00035 # else
00036 # include "kde30x_texthintinterface.h"
00037 # endif
00038 #else
00039 # include "kde30x_texthintinterface.h"
00040 #endif
00041
00042 class QEditor;
00043 class QEditorPart;
00044 class QEditorCodeCompletion;
00045 class LineNumberWidget;
00046 class MarkerWidget;
00047 class LevelWidget;
00048 class KoFindDialog;
00049 class KoReplaceDialog;
00050 class KoFind;
00051 class KoReplace;
00052 class QTextParagraph;
00053 class QEditorTextHint;
00054
00055 class QEditorView:
00056 public KTextEditor::View,
00057 public KTextEditor::ClipboardInterface,
00058 public KTextEditor::ViewCursorInterface,
00059 public KTextEditor::PopupMenuInterface,
00060 public KTextEditor::CodeCompletionInterface,
00061 public KTextEditor::TextHintInterface
00062 {
00063 Q_OBJECT
00064 public:
00065 QEditorView( QEditorPart*, QWidget* =0, const char* =0 );
00066 virtual ~QEditorView();
00067
00068 KTextEditor::Document* document() const;
00069 QEditorPart* doc() const { return m_document; }
00070 QEditor* editor() const { return m_editor; }
00071
00072 QString currentTextLine() const;
00073 void insertText( const QString& );
00074
00075 QString language() const;
00076
00077 bool isMarkerWidgetVisible() const;
00078 void setMarkerWidgetVisible( bool );
00079 MarkerWidget* markerWidget() { return m_markerWidget; }
00080
00081 bool isLineNumberWidgetVisible() const;
00082 void setLineNumberWidgetVisible( bool );
00083
00084 bool isLevelWidgetVisible() const;
00085 void setLevelWidgetVisible( bool );
00086
00087 int tabStop() const;
00088 void setTabStop( int );
00089
00090 public slots:
00091 void configChanged();
00092 void gotoLine();
00093 void setLanguage( const QString& );
00094 void doFind();
00095 void doReplace();
00096 void indent();
00097 void ensureTextIsVisible( QTextParagraph* );
00098 void expandBlock( QTextParagraph* );
00099 void collapseBlock( QTextParagraph* );
00100 void expandAllBlocks();
00101 void collapseAllBlocks();
00102
00103 protected slots:
00104 void highlight( const QString&, int, int, const QRect& );
00105 void replace( const QString&, int, int, int, const QRect& );
00106
00107 protected:
00108 void proceed();
00109 bool find_real( QTextParagraph* firstParag, int firstIndex,
00110 QTextParagraph* lastParag, int lastIndex );
00111 bool process( const QString& );
00112 void doRepaint();
00113 void internalEnsureVisibleBlock( QTextParagraph* );
00114 void internalExpandBlock( QTextParagraph* );
00115 void internalCollapseBlock( QTextParagraph* );
00116
00117 private:
00118 void setupActions();
00119
00120 private:
00121 QTextParagraph* m_currentParag;
00122 KoFindDialog* m_findDialog;
00123 KoReplaceDialog* m_replaceDialog;
00124 KoFind* m_find;
00125 KoReplace* m_replace;
00126 long m_options;
00127 int m_offset;
00128
00129
00130 public:
00134 virtual QPoint cursorCoordinates ();
00135
00139 virtual void cursorPosition (unsigned int *line, unsigned int *col);
00140
00144 virtual void cursorPositionReal (unsigned int *line, unsigned int *col);
00145
00149 virtual bool setCursorPosition (unsigned int line, unsigned int col);
00150
00154 virtual bool setCursorPositionReal (unsigned int line, unsigned int col);
00155
00156 virtual unsigned int cursorLine ();
00157 virtual unsigned int cursorColumn ();
00158 virtual unsigned int cursorColumnReal ();
00159
00160 signals:
00161 void cursorPositionChanged ();
00162
00163
00164 public slots:
00168 virtual void copy ( ) const;
00169
00173 virtual void cut ( );
00174
00178 virtual void paste ( );
00179
00183 virtual void selectAll ( );
00184
00185
00186 public:
00191 virtual void installPopup ( class QPopupMenu *rmb_Menu );
00192
00193
00197 virtual void showArgHint (QStringList functionList, const QString& strWrapping, const QString& strDelimiter);
00198
00205 virtual void showCompletionBox (QValueList<KTextEditor::CompletionEntry> complList,int offset=0, bool casesensitive=true);
00206
00207 signals:
00218 void completionAborted();
00219
00231 void completionDone();
00232
00247 void completionDone(KTextEditor::CompletionEntry);
00248
00259 void argHintHidden();
00260
00274 void filterInsertString(KTextEditor::CompletionEntry*,QString*);
00275
00276 void aboutToShowCompletionBox();
00277
00278 public:
00279 QString computeTextHint( int line, int column );
00280 void enableTextHints( int timeout );
00281 void disableTextHints();
00282
00283 signals:
00284 void needTextHint( int line, int column, QString& );
00285 void newStatus();
00286
00287 private:
00288 QEditorPart* m_document;
00289 QEditor* m_editor;
00290 QEditorCodeCompletion* m_pCodeCompletion;
00291 LineNumberWidget* m_lineNumberWidget;
00292 MarkerWidget* m_markerWidget;
00293 LevelWidget* m_levelWidget;
00294 QEditorTextHint* m_textHintToolTip;
00295 };
00296
00297 #endif
This file is part of the documentation for KDevelop Version 3.1.2.