00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
#ifndef _KATE_DOCUMENT_H_
00022
#define _KATE_DOCUMENT_H_
00023
00024
#include "katesupercursor.h"
00025
#include "katetextline.h"
00026
#include "kateundo.h"
00027
#include "katebuffer.h"
00028
#include "katecodefoldinghelpers.h"
00029
00030
#include "../interfaces/document.h"
00031
00032
#include <ktexteditor/configinterfaceextension.h>
00033
#include <ktexteditor/encodinginterface.h>
00034
#include <ktexteditor/sessionconfiginterface.h>
00035
#include <ktexteditor/editinterfaceext.h>
00036
#include <ktexteditor/templateinterface.h>
00037
00038
#include <dcopobject.h>
00039
00040
#include <kmimetype.h>
00041
#include <klocale.h>
00042
00043
#include <qintdict.h>
00044
#include <qmap.h>
00045
#include <qdatetime.h>
00046
00047
namespace KTextEditor {
class Plugin; }
00048
00049
namespace KIO {
class TransferJob; }
00050
00051
class KateUndoGroup;
00052
class KateCmd;
00053
class KateAttribute;
00054
class KateAutoIndent;
00055
class KateCodeFoldingTree;
00056
class KateBuffer;
00057
class KateView;
00058
class KateViewInternal;
00059
class KateArbitraryHighlight;
00060
class KateSuperRange;
00061
class KateLineInfo;
00062
class KateBrowserExtension;
00063
class KateDocumentConfig;
00064
class KateHighlighting;
00065
class KatePartPluginItem;
00066
class KatePartPluginInfo;
00067
00068
class KSpell;
00069
class KTempFile;
00070
00071
class QTimer;
00072
00073
class KateKeyInterceptorFunctor;
00074
00075
00076
00077
00078
class KateDocument :
public Kate::Document,
00079
public Kate::DocumentExt,
00080
public KTextEditor::ConfigInterfaceExtension,
00081
public KTextEditor::EncodingInterface,
00082
public KTextEditor::SessionConfigInterface,
00083
public KTextEditor::EditInterfaceExt,
00084
public KTextEditor::TemplateInterface,
00085
public DCOPObject
00086 {
00087 K_DCOP
00088 Q_OBJECT
00089
00090
friend class KateViewInternal;
00091
friend class KateRenderer;
00092
00093
public:
00094 KateDocument (
bool bSingleViewMode=
false,
bool bBrowserView=
false,
bool bReadOnly=
false,
00095
QWidget *parentWidget = 0,
const char *widgetName = 0,
QObject * = 0,
const char * = 0);
00096 ~KateDocument ();
00097
00098
bool closeURL();
00099
00100
00101
00102
00103
public:
00104
void unloadAllPlugins ();
00105
00106
void enableAllPluginsGUI (KateView *view);
00107
void disableAllPluginsGUI (KateView *view);
00108
00109
void loadPlugin (uint pluginIndex);
00110
void unloadPlugin (uint pluginIndex);
00111
00112
void enablePluginGUI (KTextEditor::Plugin *plugin, KateView *view);
00113
void enablePluginGUI (KTextEditor::Plugin *plugin);
00114
00115
void disablePluginGUI (KTextEditor::Plugin *plugin, KateView *view);
00116
void disablePluginGUI (KTextEditor::Plugin *plugin);
00117
00118
private:
00119
QMemArray<KTextEditor::Plugin *> m_plugins;
00120
00121
public:
00122
bool readOnly ()
const {
return m_bReadOnly; }
00123
bool browserView ()
const {
return m_bBrowserView; }
00124
bool singleViewMode ()
const {
return m_bSingleViewMode; }
00125
KateBrowserExtension *browserExtension () {
return m_extension; }
00126
void textAsHtmlStream ( uint startLine, uint startCol, uint endLine, uint endCol,
bool blockwise,
QTextStream *ts)
const;
00127
00128
private:
00129
00130
bool m_bSingleViewMode;
00131
bool m_bBrowserView;
00132
bool m_bReadOnly;
00133
KateBrowserExtension *m_extension;
00134
00135
00136
00137
00138
public:
00139 KTextEditor::View *createView(
QWidget *parent,
const char *name );
00140
QPtrList<KTextEditor::View> views () const;
00141
00142 inline KateView *activeView ()
const {
return m_activeView; }
00143
00144
private:
00145
QPtrList<KateView> m_views;
00146
QPtrList<KTextEditor::View> m_textEditViews;
00147 KateView *m_activeView;
00148
00158
void setActiveView( KateView *view );
00159
00160
00161
00162
00163
public slots:
00164 uint configPages () const;
00165 KTextEditor::ConfigPage *configPage (uint number = 0,
QWidget *parent = 0, const
char *name=0 );
00166
QString configPageName (uint number = 0) const;
00167
QString configPageFullName (uint number = 0) const;
00168
QPixmap configPagePixmap (uint number = 0,
int size =
KIcon::SizeSmall) const;
00169
00170
00171
00172
00173 public slots:
00174
QString text() const;
00175
00176
QString text ( uint startLine, uint startCol, uint endLine, uint endCol ) const;
00177
QString text ( uint startLine, uint startCol, uint endLine, uint endCol,
bool blockwise ) const;
00178
00179
QString textAsHtml ( uint startLine, uint startCol, uint endLine, uint endCol,
bool blockwise) const;
00180
00181
QString textLine ( uint line ) const;
00182
00183
bool setText(const
QString &);
00184
bool clear ();
00185
00186
bool insertText ( uint line, uint col, const QString &s );
00187
bool insertText ( uint line, uint col, const QString &s,
bool blockwise );
00188
00189
bool removeText ( uint startLine, uint startCol, uint endLine, uint endCol );
00190
bool removeText ( uint startLine, uint startCol, uint endLine, uint endCol,
bool blockwise );
00191
00192
bool insertLine ( uint line, const QString &s );
00193
bool removeLine ( uint line );
00194
00195 uint numLines() const;
00196 uint numVisLines() const;
00197 uint length () const;
00198
int lineLength ( uint line ) const;
00199
00200 signals:
00201
void textChanged ();
00202
void charactersInteractivelyInserted(
int ,
int ,const QString&);
00203
void charactersSemiInteractivelyInserted(
int ,
int ,const QString&);
00204
void backspacePressed();
00205
00206 public:
00207
00213
void editStart (
bool withUndo = true);
00215
void editBegin () { editStart(); }
00220
void editEnd ();
00221
00222
00223
00224
00232
bool editInsertText ( uint line, uint col,
const QString &s );
00240
bool editRemoveText ( uint line, uint col, uint len );
00241
00250
bool editMarkLineAutoWrapped ( uint line,
bool autowrapped );
00251
00262
bool editWrapLine ( uint line, uint col,
bool newLine =
true,
bool *newLineAdded = 0 );
00270
bool editUnWrapLine ( uint line,
bool removeLine =
true, uint length = 0 );
00271
00278
bool editInsertLine ( uint line,
const QString &s );
00284
bool editRemoveLine ( uint line );
00285
00292
bool wrapText (uint startLine, uint endLine);
00293
00294
00295 signals:
00300
void editTextInserted ( uint line, uint col, uint len);
00301
00305
void editTextRemoved ( uint line, uint col, uint len);
00306
00310
void editLineWrapped ( uint line, uint col, uint len );
00311
00315
void editLineUnWrapped ( uint line, uint col );
00316
00320
void editLineInserted ( uint line );
00321
00325
void editLineRemoved ( uint line );
00326
00327
private:
00328
void undoStart();
00329
void undoEnd();
00330
void undoSafePoint();
00331
00332
private slots:
00333
void undoCancel();
00334
00335
private:
00336
void editAddUndo (KateUndoGroup::UndoType type, uint line, uint col, uint len,
const QString &text);
00337
void editTagLine (uint line);
00338
void editRemoveTagLine (uint line);
00339
void editInsertTagLine (uint line);
00340
00341 uint editSessionNumber;
00342
bool editIsRunning;
00343
bool noViewUpdates;
00344
bool editWithUndo;
00345 uint editTagLineStart;
00346 uint editTagLineEnd;
00347
bool editTagFrom;
00348
bool m_undoComplexMerge;
00349
KateUndoGroup* m_editCurrentUndo;
00350
00351
00352
00353
00354
public slots:
00355
bool setSelection (
const KateTextCursor & start,
00356
const KateTextCursor & end );
00357
bool setSelection ( uint startLine, uint startCol,
00358 uint endLine, uint endCol );
00359
bool clearSelection ();
00360
bool clearSelection (
bool redraw,
bool finishedChangingSelection =
true);
00361
00362
bool hasSelection () const;
00363
QString selection () const ;
00364
QString selectionAsHtml () const ;
00365
00366
bool removeSelectedText ();
00367
00368
bool selectAll();
00369
00370
00371
00372
00373
int selStartLine() {
return selectStart.line(); };
00374
int selStartCol() {
return selectStart.col(); };
00375
int selEndLine() {
return selectEnd.line(); };
00376
int selEndCol() {
return selectEnd.col(); };
00377
00378
private:
00379
00380
bool lineColSelected (
int line,
int col);
00381
bool lineSelected (
int line);
00382
bool lineEndSelected (
int line,
int endCol);
00383
bool lineHasSelected (
int line);
00384
bool lineIsSelection (
int line);
00385
00386
QPtrList<KateSuperCursor> m_superCursors;
00387
00388
00389
KateSuperCursor selectStart;
00390
KateSuperCursor selectEnd;
00391
00392 signals:
00393
void selectionChanged ();
00394
void textInserted(
int line,
int column);
00395
00396
00397
00398
public slots:
00399
bool blockSelectionMode ();
00400
bool setBlockSelectionMode (
bool on);
00401
bool toggleBlockSelectionMode ();
00402
00403
private:
00404
00405
bool blockSelect;
00406
00407
00408
00409
00410
public slots:
00411
void undo ();
00412
void redo ();
00413
void clearUndo ();
00414
void clearRedo ();
00415
00416 uint undoCount () const;
00417 uint redoCount () const;
00418
00419 uint undoSteps () const;
00420
void setUndoSteps ( uint steps );
00421
00422 private:
00423 friend class KateTemplateHandler;
00424
00425
00426
00427
QPtrList<
KateUndoGroup> undoItems;
00428
QPtrList<
KateUndoGroup> redoItems;
00429
bool m_undoDontMerge;
00430
bool m_undoIgnoreCancel;
00431
QTimer* m_undoMergeTimer;
00432
00433
00434
KateUndoGroup* lastUndoGroupWhenSaved;
00435
bool docWasSavedWhenUndoWasEmpty;
00436
00437
00438
void updateModified();
00439
00440 signals:
00441
void undoChanged ();
00442
00443
00444
00445
00446 public slots:
00447 KTextEditor::Cursor *createCursor ();
00448
QPtrList<KTextEditor::Cursor> cursors () const;
00449
00450 private:
00451
QPtrList<KTextEditor::Cursor> myCursors;
00452
00453
00454
00455
00456 public slots:
00457
bool searchText (
unsigned int startLine,
unsigned int startCol,
00458 const
QString &text,
unsigned int *foundAtLine,
unsigned int *foundAtCol,
00459
unsigned int *matchLen,
bool casesensitive = true,
bool backwards = false);
00460
bool searchText (
unsigned int startLine,
unsigned int startCol,
00461 const
QRegExp ®exp,
unsigned int *foundAtLine,
unsigned int *foundAtCol,
00462
unsigned int *matchLen,
bool backwards = false);
00463
00464
00465
00466
00467 public slots:
00468 uint hlMode ();
00469
bool setHlMode (uint mode);
00470 uint hlModeCount ();
00471
QString hlModeName (uint mode);
00472
QString hlModeSectionName (uint mode);
00473
00474 public:
00475
void bufferHlChanged ();
00476
00477 private:
00478
void setDontChangeHlOnSave();
00479
00480 signals:
00481
void hlChanged ();
00482
00483
00484
00485
00486 public:
00487
KateArbitraryHighlight* arbitraryHL()
const {
return m_arbitraryHL; };
00488
00489
private slots:
00490
void tagArbitraryLines(KateView* view,
KateSuperRange* range);
00491
00492
00493
00494
00495
public slots:
00496
void readConfig ();
00497
void writeConfig ();
00498
void readConfig (
KConfig *);
00499
void writeConfig (
KConfig *);
00500
void readSessionConfig (
KConfig *);
00501
void writeSessionConfig (
KConfig *);
00502
void configDialog ();
00503
00504
00505
00506
00507
public slots:
00508 uint mark( uint line );
00509
00510
void setMark( uint line, uint markType );
00511
void clearMark( uint line );
00512
00513
void addMark( uint line, uint markType );
00514
void removeMark( uint line, uint markType );
00515
00516
QPtrList<KTextEditor::Mark> marks();
00517
void clearMarks();
00518
00519
void setPixmap( MarkInterface::MarkTypes,
const QPixmap& );
00520
void setDescription( MarkInterface::MarkTypes,
const QString& );
00521
QString markDescription( MarkInterface::MarkTypes );
00522
QPixmap *markPixmap( MarkInterface::MarkTypes );
00523
QColor markColor( MarkInterface::MarkTypes );
00524
00525
void setMarksUserChangable( uint markMask );
00526 uint editableMarks();
00527
00528 signals:
00529
void marksChanged();
00530
void markChanged( KTextEditor::Mark, KTextEditor::MarkInterfaceExtension::MarkChangeAction );
00531
00532
private:
00533
QIntDict<KTextEditor::Mark> m_marks;
00534
QIntDict<QPixmap> m_markPixmaps;
00535
QIntDict<QString> m_markDescriptions;
00536 uint m_editableMarks;
00537
00538
00539
00540
00541
public slots:
00542
bool printDialog ();
00543
bool print ();
00544
00545
00546
00547
00548
public:
00558
QString mimeType();
00559
00567
long fileSize();
00568
00576
QString niceFileSize();
00577
00586
KMimeType::Ptr mimeTypeForContent();
00587
00588
00589
00590
00591
public:
00592
QString variable(
const QString &name )
const;
00593
00594 signals:
00595
void variableChanged(
const QString &,
const QString & );
00596
00597
private:
00598
QMap<QString, QString> m_storedVariables;
00599
00600
00601
00602
00603
public:
00604
bool openURL(
const KURL &url );
00605
00606
00607
00608
00609
bool save();
00610
00611
00612
bool saveAs(
const KURL &url );
00613
00614
bool openFile (
KIO::Job * job);
00615
bool openFile ();
00616
00617
bool saveFile ();
00618
00619
void setReadWrite (
bool rw =
true );
00620
00621
void setModified(
bool m );
00622
00623
private slots:
00624
void slotDataKate (
KIO::Job* kio_job,
const QByteArray &data );
00625
void slotFinishedKate (
KIO::Job * job );
00626
00627
private:
00628
void abortLoadKate();
00629
00630
void activateDirWatch ();
00631
void deactivateDirWatch ();
00632
00633
QString m_dirWatchFile;
00634
00635
00636
00637
00638
public:
00639 Kate::ConfigPage *colorConfigPage (
QWidget *);
00640 Kate::ConfigPage *fontConfigPage (
QWidget *);
00641 Kate::ConfigPage *indentConfigPage (
QWidget *);
00642 Kate::ConfigPage *selectConfigPage (
QWidget *);
00643 Kate::ConfigPage *editConfigPage (
QWidget *);
00644 Kate::ConfigPage *keysConfigPage (
QWidget *);
00645 Kate::ConfigPage *hlConfigPage (
QWidget *);
00646 Kate::ConfigPage *viewDefaultsConfigPage (
QWidget *);
00647 Kate::ConfigPage *saveConfigPage(
QWidget * );
00648
00649 Kate::ActionMenu *hlActionMenu (
const QString& text,
QObject* parent = 0,
const char* name = 0);
00650 Kate::ActionMenu *exportActionMenu (
const QString& text,
QObject* parent = 0,
const char* name = 0);
00651
00652
public:
00656
bool typeChars ( KateView *type,
const QString &chars );
00657
00661
inline uint lastLine()
const {
return numLines()-1; }
00662
00663 uint configFlags ();
00664
void setConfigFlags (uint flags);
00665
00669
void tagSelection(
const KateTextCursor &oldSelectStart,
const KateTextCursor &oldSelectEnd);
00670
00671
00672
void repaintViews(
bool paintOnlyDirty =
true);
00673
00674
inline KateHighlighting *highlight () {
return m_buffer->highlight(); }
00675
00676
inline KateHighlighting *highlight ()
const {
return m_buffer->highlight(); }
00677
00678
public slots:
00679
void tagLines(
int start,
int end);
00680
void tagLines(
KateTextCursor start,
KateTextCursor end);
00681
00682
00683
public slots:
00684
void exportAs(
const QString&);
00685
00686
private:
00687
bool exportDocumentToHTML (
QTextStream *outputStream,
const QString &name);
00688
QString HTMLEncode (
QChar theChar);
00689
00690 signals:
00691
void modifiedChanged ();
00692
void preHighlightChanged(uint);
00693
00694
private slots:
00695
void internalHlChanged();
00696
00697
public:
00698
void addView(KTextEditor::View *);
00699
void removeView(KTextEditor::View *);
00700
00701
void addSuperCursor(
class KateSuperCursor *,
bool privateC);
00702
void removeSuperCursor(
class KateSuperCursor *,
bool privateC);
00703
00704
bool ownedView(KateView *);
00705
bool isLastView(
int numViews);
00706
00707 uint currentColumn(
const KateTextCursor& );
00708
void newLine(
KateTextCursor&, KateViewInternal * );
00709
void backspace(
const KateTextCursor& );
00710
void del(
const KateTextCursor& );
00711
void transpose(
const KateTextCursor& );
00712
void cut();
00713
void copy();
00714
void paste ( KateView* view );
00715
00716
void selectWord(
const KateTextCursor& cursor );
00717
void selectLine(
const KateTextCursor& cursor );
00718
void selectLength(
const KateTextCursor& cursor,
int length );
00719
00720
public:
00721
void insertIndentChars ( KateView *view );
00722
00723
void indent ( KateView *view, uint line,
int change );
00724
void comment ( KateView *view, uint line, uint column,
int change );
00725
void align ( uint line );
00726
00727
enum TextTransform { Uppercase, Lowercase, Capitalize };
00728
00736
void transform ( KateView *view,
const KateTextCursor &, TextTransform );
00740
void joinLines( uint first, uint last );
00741
00742
private:
00743
void optimizeLeadingSpace( uint line,
int flags,
int change );
00744
void replaceWithOptimizedSpace( uint line, uint upto_column, uint space,
int flags );
00745
00746
bool removeStringFromBegining(
int line,
QString &str);
00747
bool removeStringFromEnd(
int line,
QString &str);
00748
00758
bool nextNonSpaceCharPos(
int &line,
int &col);
00759
00767
bool previousNonSpaceCharPos(
int &line,
int &col);
00768
00773
void addStartLineCommentToSingleLine(
int line,
int attrib=0);
00778
bool removeStartLineCommentFromSingleLine(
int line,
int attrib=0);
00779
00783
void addStartStopCommentToSingleLine(
int line,
int attrib=0);
00787
bool removeStartStopCommentFromSingleLine(
int line,
int attrib=0);
00791
bool removeStartStopCommentFromRegion(
const KateTextCursor &start,
const KateTextCursor &end,
int attrib=0);
00792
00797
void addStartStopCommentToSelection(
int attrib=0 );
00801
void addStartLineCommentToSelection(
int attrib=0 );
00802
00809
bool removeStartStopCommentFromSelection(
int attrib=0 );
00813
bool removeStartLineCommentFromSelection(
int attrib=0 );
00814
00815
public:
00816
QString getWord(
const KateTextCursor& cursor );
00817
00818
public:
00819
void tagAll();
00820
void updateViews();
00821
00822
void newBracketMark(
const KateTextCursor& start, KateTextRange& bm,
int maxLines = -1 );
00823
bool findMatchingBracket(
KateTextCursor& start,
KateTextCursor& end,
int maxLines = -1 );
00824
00825
private:
00826
void guiActivateEvent(
KParts::GUIActivateEvent *ev );
00827
00828
public:
00829
00830
QString docName () {
return m_docName;};
00831
00832
void setDocName (
QString docName);
00833
00834
void lineInfo (KateLineInfo *info,
unsigned int line);
00835
00836 KateCodeFoldingTree *foldingTree ();
00837
00838
public:
00844
bool isModifiedOnDisc() {
return m_modOnHd; };
00845
00847
void isModOnHD(
bool =
false ) {};
00848
00849
void setModifiedOnDisk(
int reason );
00850
00851
public slots:
00858
void slotModifiedOnDisk(
Kate::View *v=0 );
00859
00863
void reloadFile();
00864
00865
private:
00866
int m_isasking;
00867
00868
00869
public slots:
00870
void setEncoding (
const QString &e);
00871
QString encoding() const;
00872
00873 public slots:
00874
void setWordWrap (
bool on);
00875
bool wordWrap ();
00876
00877
void setWordWrapAt (uint col);
00878 uint wordWrapAt ();
00879
00880 public slots:
00881
void setPageUpDownMovesCursor(
bool on);
00882
bool pageUpDownMovesCursor();
00883
00884 signals:
00885
void modStateChanged (Kate::Document *doc);
00886
void nameChanged (Kate::Document *doc);
00887
00888 public slots:
00889
00890
void flush ();
00891
00892 signals:
00897
void fileNameChanged ();
00898
00899 public slots:
00900
void applyWordWrap ();
00901
00902
00903 public:
00904 inline uint getRealLine(
unsigned int virtualLine)
00905 {
00906
return m_buffer->lineNumber (virtualLine);
00907 }
00908
00909
inline uint getVirtualLine(
unsigned int realLine)
00910 {
00911
return m_buffer->lineVisibleNumber (realLine);
00912 }
00913
00914
inline uint visibleLines ()
00915 {
00916
return m_buffer->countVisible ();
00917 }
00918
00919
inline KateTextLine::Ptr kateTextLine(uint i)
00920 {
00921
return m_buffer->line (i);
00922 }
00923
00924
inline KateTextLine::Ptr plainKateTextLine(uint i)
00925 {
00926
return m_buffer->plainLine (i);
00927 }
00928
00929 signals:
00930
void codeFoldingUpdated();
00931
void aboutToRemoveText(
const KateTextRange&);
00932
void textRemoved();
00933
public slots:
00934
void dumpRegionTree();
00935
00936
private slots:
00937
void slotModOnHdDirty (
const QString &path);
00938
void slotModOnHdCreated (
const QString &path);
00939
void slotModOnHdDeleted (
const QString &path);
00940
00941
private:
00951
bool createDigest (
QCString &result );
00952
00958
QString reasonedMOHString() const;
00959
00968
void removeTrailingSpace( uint line );
00969
00970 public:
00971
00972
bool wrapCursor ();
00973
00974 public:
00975
void updateFileType (
int newType,
bool user = false);
00976
00977
int fileType ()
const {
return m_fileType; };
00978
00979
00980
00981
00982
private:
00983
00984
KateBuffer *m_buffer;
00985
00986
KateArbitraryHighlight* m_arbitraryHL;
00987
00988
KateAutoIndent *m_indenter;
00989
00990
bool hlSetByUser;
00991
00992
bool m_modOnHd;
00993
unsigned char m_modOnHdReason;
00994
QCString m_digest;
00995
00996
QString m_docName;
00997
int m_docNameNumber;
00998
00999
01000
int m_fileType;
01001
bool m_fileTypeSetByUser;
01002
01006
bool m_reloading;
01007
01008
public slots:
01009
void spellcheck();
01016
void spellcheck(
const KateTextCursor &from,
const KateTextCursor &to=
KateTextCursor() );
01017
void ready(
KSpell *);
01018
void misspelling(
const QString&,
const QStringList&,
unsigned int );
01019
void corrected (
const QString&,
const QString&,
unsigned int);
01020
void spellResult(
const QString& );
01021
void spellCleanDone();
01022
01023
01024
void slotQueryClose_save(
bool *handled,
bool* abortClosing);
01025
01026
private:
01027
void locatePosition( uint pos, uint& line, uint& col );
01028
KSpell *m_kspell;
01029
01030
KateTextCursor m_spellStart, m_spellEnd;
01031
01032
KateTextCursor m_spellPosCursor;
01033 uint m_spellLastPos;
01034
01035
public:
01036
void makeAttribs (
bool needInvalidate =
true);
01037
01038
static bool checkOverwrite(
KURL u );
01039
01040
static void setDefaultEncoding (
const QString &encoding);
01041
01045
public:
01046
inline KateDocumentConfig *config () {
return m_config; };
01047
01048
void updateConfig ();
01049
01050
private:
01051 KateDocumentConfig *m_config;
01052
01057
private:
01061
void readDirConfig ();
01062
01067
void readVariables(
bool onlyViewAndRenderer =
false);
01068
01073
void readVariableLine(
QString t,
bool onlyViewAndRenderer =
false );
01077
void setViewVariable(
QString var,
QString val );
01083
static bool checkBoolValue(
QString value,
bool *result );
01089
static bool checkIntValue(
QString value,
int *result );
01094
static bool checkColorValue(
QString value,
QColor &col );
01095
01096
static QRegExp kvLine;
01097
static QRegExp kvVar;
01098
01099
KIO::TransferJob *m_job;
01100
KTempFile *m_tempFile;
01101
01102
01103
public:
01104
bool setTabInterceptor(KateKeyInterceptorFunctor *interceptor);
01105
bool removeTabInterceptor(KateKeyInterceptorFunctor *interceptor);
01106
bool invokeTabInterceptor(
KKey);
01107
01108
protected:
01109
virtual bool insertTemplateTextImplementation ( uint line, uint column,
const QString &templateString,
const QMap<QString,QString> &initialValues,
QWidget *parentWindow=0 );
01110 KateKeyInterceptorFunctor *m_tabInterceptor;
01111
protected slots:
01112
void testTemplateCode();
01113
01114
01115
public:
01116
void setIMSelectionValue( uint imStartLine, uint imStart, uint imEnd,
01117 uint imSelStart, uint imSelEnd,
bool m_imComposeEvent );
01118
void getIMSelectionValue( uint *imStartLine, uint *imStart, uint *imEnd,
01119 uint *imSelStart, uint *imSelEnd );
01120
bool isIMSelection(
int _line,
int _column );
01121
bool isIMEdit(
int _line,
int _column );
01122
01123
private:
01124 uint m_imStartLine;
01125 uint m_imStart;
01126 uint m_imEnd;
01127 uint m_imSelStart;
01128 uint m_imSelEnd;
01129
bool m_imComposeEvent;
01130
01131 k_dcop:
01132 uint documentNumber () const;
01133 };
01134
01135 #endif
01136
01137
01138