Kate
katedialogs.h
Go to the documentation of this file.
00001 /* This file is part of the KDE libraries 00002 Copyright (C) 2002, 2003 Anders Lund <anders.lund@lund.tdcadsl.dk> 00003 Copyright (C) 2003 Christoph Cullmann <cullmann@kde.org> 00004 Copyright (C) 2001 Joseph Wenninger <jowenn@kde.org> 00005 Copyright (C) 2006 Dominik Haumann <dhdev@gmx.de> 00006 Copyright (C) 2007 Mirko Stocker <me@misto.ch> 00007 Copyright (C) 2009 Michel Ludwig <michel.ludwig@kdemail.net> 00008 00009 Based on work of: 00010 Copyright (C) 1999 Jochen Wilhelmy <digisnap@cs.tu-berlin.de> 00011 00012 This library is free software; you can redistribute it and/or 00013 modify it under the terms of the GNU Library General Public 00014 License version 2 as published by the Free Software Foundation. 00015 00016 This library is distributed in the hope that it will be useful, 00017 but WITHOUT ANY WARRANTY; without even the implied warranty of 00018 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00019 Library General Public License for more details. 00020 00021 You should have received a copy of the GNU Library General Public License 00022 along with this library; see the file COPYING.LIB. If not, write to 00023 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00024 Boston, MA 02110-1301, USA. 00025 */ 00026 00027 #ifndef __KATE_DIALOGS_H__ 00028 #define __KATE_DIALOGS_H__ 00029 00030 #include "katehighlight.h" 00031 #include "kateviewhelpers.h" 00032 00033 #include <ktexteditor/attribute.h> 00034 #include <ktexteditor/modificationinterface.h> 00035 #include <ktexteditor/document.h> 00036 #include <ktexteditor/configpage.h> 00037 00038 #include <kdialog.h> 00039 #include <kmimetype.h> 00040 00041 #include <sonnet/configwidget.h> 00042 #include <sonnet/dictionarycombobox.h> 00043 00044 #include <QtCore/QStringList> 00045 #include <QtGui/QColor> 00046 #include <QtGui/QTabWidget> 00047 #include <QtGui/QTreeWidget> 00048 00049 struct syntaxContextData; 00050 00051 class KateScriptConfigPage; 00052 class ModeConfigPage; 00053 class KateDocument; 00054 class KateView; 00055 class KatePartPluginInfo; 00056 00057 namespace KIO 00058 { 00059 class Job; 00060 class TransferJob; 00061 } 00062 00063 class KComboBox; 00064 class KShortcutsEditor; 00065 class KTemporaryFile; 00066 class KIntNumInput; 00067 class KIntSpinBox; 00068 class KPluginSelector; 00069 class KPluginInfo; 00070 class KProcess; 00071 00072 class QCheckBox; 00073 class QLabel; 00074 class QCheckBox; 00075 class QKeyEvent; 00076 00077 namespace Ui 00078 { 00079 class ModOnHdWidget; 00080 class TextareaAppearanceConfigWidget; 00081 class BordersAppearanceConfigWidget; 00082 class CursorConfigWidget; 00083 class EditConfigWidget; 00084 class IndentationConfigWidget; 00085 class OpenSaveConfigWidget; 00086 class OpenSaveConfigAdvWidget; 00087 class CompletionConfigTab; 00088 class ViInputModeConfigWidget; 00089 class SpellCheckConfigWidget; 00090 } 00091 00092 class KateConfigPage : public KTextEditor::ConfigPage 00093 { 00094 Q_OBJECT 00095 00096 public: 00097 explicit KateConfigPage ( QWidget *parent=0, const char *name=0 ); 00098 virtual ~KateConfigPage (); 00099 00100 public: 00101 bool hasChanged () { return m_changed; } 00102 00103 protected Q_SLOTS: 00104 void slotChanged(); 00105 00106 private Q_SLOTS: 00107 void somethingHasChanged (); 00108 00109 protected: 00110 bool m_changed; 00111 }; 00112 00113 class KateGotoBar : public KateViewBarWidget 00114 { 00115 Q_OBJECT 00116 00117 public: 00118 explicit KateGotoBar(KTextEditor::View *view, QWidget *parent = 0); 00119 00120 void updateData(); 00121 00122 protected Q_SLOTS: 00123 void gotoLine(); 00124 00125 protected: 00126 virtual void keyPressEvent(QKeyEvent* event); 00127 00128 private: 00129 KTextEditor::View *const m_view; 00130 KIntSpinBox *gotoRange; 00131 }; 00132 00133 class KateDictionaryBar : public KateViewBarWidget 00134 { 00135 Q_OBJECT 00136 00137 public: 00138 explicit KateDictionaryBar(KateView *view, QWidget *parent = NULL); 00139 virtual ~KateDictionaryBar(); 00140 00141 public Q_SLOTS: 00142 void updateData(); 00143 00144 protected Q_SLOTS: 00145 void dictionaryChanged(const QString& dictionary); 00146 00147 private: 00148 KateView* m_view; 00149 Sonnet::DictionaryComboBox *m_dictionaryComboBox; 00150 }; 00151 00152 class KateIndentConfigTab : public KateConfigPage 00153 { 00154 Q_OBJECT 00155 00156 public: 00157 KateIndentConfigTab(QWidget *parent); 00158 ~KateIndentConfigTab(); 00159 00160 protected: 00161 Ui::IndentationConfigWidget *ui; 00162 00163 public Q_SLOTS: 00164 void apply (); 00165 void reload (); 00166 void reset () {} 00167 void defaults () {} 00168 00169 private Q_SLOTS: 00170 void slotChanged (); 00171 void showWhatsThis(const QString& text); 00172 }; 00173 00174 class KateCompletionConfigTab : public KateConfigPage 00175 { 00176 Q_OBJECT 00177 00178 public: 00179 KateCompletionConfigTab(QWidget *parent); 00180 ~KateCompletionConfigTab(); 00181 00182 protected: 00183 Ui::CompletionConfigTab *ui; 00184 00185 public Q_SLOTS: 00186 void apply (); 00187 void reload (); 00188 void reset () {} 00189 void defaults () {} 00190 00191 private Q_SLOTS: 00192 void showWhatsThis(const QString& text); 00193 }; 00194 00195 class KateEditGeneralConfigTab : public KateConfigPage 00196 { 00197 Q_OBJECT 00198 00199 public: 00200 KateEditGeneralConfigTab(QWidget *parent); 00201 ~KateEditGeneralConfigTab(); 00202 00203 private: 00204 Ui::EditConfigWidget *ui; 00205 00206 public Q_SLOTS: 00207 void apply (); 00208 void reload (); 00209 void reset () {} 00210 void defaults () {} 00211 }; 00212 00213 class KateSelectConfigTab : public KateConfigPage 00214 { 00215 Q_OBJECT 00216 00217 public: 00218 KateSelectConfigTab(QWidget *parent); 00219 ~KateSelectConfigTab(); 00220 00221 private: 00222 Ui::CursorConfigWidget *ui; 00223 00224 public Q_SLOTS: 00225 void apply (); 00226 void reload (); 00227 void reset () {} 00228 void defaults () {} 00229 }; 00230 00231 class KateViInputModeConfigTab : public KateConfigPage 00232 { 00233 Q_OBJECT 00234 00235 public: 00236 KateViInputModeConfigTab(QWidget *parent); 00237 ~KateViInputModeConfigTab(); 00238 00239 protected: 00240 Ui::ViInputModeConfigWidget *ui; 00241 00242 public Q_SLOTS: 00243 void apply (); 00244 void reload (); 00245 void reset () {} 00246 void defaults () {} 00247 00248 private Q_SLOTS: 00249 void showWhatsThis(const QString& text); 00250 void addNewNormalModeMappingRow(); 00251 void removeSelectedNormalMappingRow(); 00252 }; 00253 00254 class KateSpellCheckConfigTab : public KateConfigPage 00255 { 00256 Q_OBJECT 00257 00258 public: 00259 KateSpellCheckConfigTab(QWidget *parent); 00260 ~KateSpellCheckConfigTab(); 00261 00262 protected: 00263 Ui::SpellCheckConfigWidget *ui; 00264 Sonnet::ConfigWidget *m_sonnetConfigWidget; 00265 00266 public Q_SLOTS: 00267 void apply (); 00268 void reload (); 00269 void reset () {} 00270 void defaults () {} 00271 00272 private Q_SLOTS: 00273 void showWhatsThis(const QString& text); 00274 }; 00275 00276 class KateEditConfigTab : public KateConfigPage 00277 { 00278 Q_OBJECT 00279 00280 public: 00281 KateEditConfigTab(QWidget *parent); 00282 ~KateEditConfigTab(); 00283 00284 public Q_SLOTS: 00285 void apply (); 00286 void reload (); 00287 void reset (); 00288 void defaults (); 00289 00290 private: 00291 KateEditGeneralConfigTab *editConfigTab; 00292 KateSelectConfigTab *selectConfigTab; 00293 KateIndentConfigTab *indentConfigTab; 00294 KateCompletionConfigTab *completionConfigTab; 00295 KateViInputModeConfigTab *viInputModeConfigTab; 00296 KateSpellCheckConfigTab *spellCheckConfigTab; 00297 }; 00298 00299 class KateViewDefaultsConfig : public KateConfigPage 00300 { 00301 Q_OBJECT 00302 00303 public: 00304 KateViewDefaultsConfig( QWidget *parent ); 00305 ~KateViewDefaultsConfig(); 00306 00307 public Q_SLOTS: 00308 void apply (); 00309 void reload (); 00310 void reset (); 00311 void defaults (); 00312 00313 private: 00314 Ui::TextareaAppearanceConfigWidget *const textareaUi; 00315 Ui::BordersAppearanceConfigWidget *const bordersUi; 00316 }; 00317 00318 class KateSaveConfigTab : public KateConfigPage 00319 { 00320 Q_OBJECT 00321 00322 public: 00323 KateSaveConfigTab( QWidget *parent ); 00324 ~KateSaveConfigTab(); 00325 00326 public Q_SLOTS: 00327 void apply(); 00328 void reload(); 00329 void reset(); 00330 void defaults(); 00331 00332 protected: 00333 //why? 00334 //KComboBox *m_encoding, *m_encodingDetection, *m_eol; 00335 QCheckBox *cbLocalFiles, *cbRemoteFiles; 00336 QCheckBox *replaceTabs, *removeSpaces, *allowEolDetection; 00337 KIntNumInput *dirSearchDepth; 00338 class KIntSpinBox *blockCount; 00339 class QLabel *blockCountLabel; 00340 00341 private: 00342 Ui::OpenSaveConfigWidget* ui; 00343 Ui::OpenSaveConfigAdvWidget* uiadv; 00344 ModeConfigPage *modeConfigPage; 00345 }; 00346 00347 class KatePartPluginConfigPage : public KateConfigPage 00348 { 00349 Q_OBJECT 00350 00351 public: 00352 KatePartPluginConfigPage (QWidget *parent); 00353 ~KatePartPluginConfigPage (); 00354 00355 public Q_SLOTS: 00356 void apply (); 00357 void reload (); 00358 void reset (); 00359 void defaults (); 00360 00361 private: 00362 KPluginSelector *selector; 00363 QList<KPluginInfo> plugins; 00364 KateScriptConfigPage *scriptConfigPage; 00365 }; 00366 00367 class KateScriptNewStuff; 00368 00369 class KateScriptConfigPage : public KateConfigPage 00370 { 00371 Q_OBJECT 00372 00373 public: 00374 KateScriptConfigPage(QWidget *parent); 00375 virtual ~KateScriptConfigPage(); 00376 public Q_SLOTS: 00377 void apply (); 00378 void reload (); 00379 void reset () {} 00380 void defaults () {} 00381 private: 00382 KateScriptNewStuff *m_newStuff; 00383 }; 00384 00385 class KateHlDownloadDialog: public KDialog 00386 { 00387 Q_OBJECT 00388 00389 public: 00390 KateHlDownloadDialog(QWidget *parent, const char *name, bool modal); 00391 ~KateHlDownloadDialog(); 00392 00393 private: 00394 class QTreeWidget *list; 00395 class QString listData; 00396 KIO::TransferJob *transferJob; 00397 00398 private Q_SLOTS: 00399 void listDataReceived(KIO::Job *, const QByteArray &data); 00400 00401 public Q_SLOTS: 00402 void slotUser1(); 00403 }; 00404 00411 class KateModOnHdPrompt : public KDialog 00412 { 00413 Q_OBJECT 00414 public: 00415 enum Status { 00416 Reload = 1, // 0 is QDialog::Rejected 00417 Save, 00418 Overwrite, 00419 Ignore 00420 }; 00421 KateModOnHdPrompt( KateDocument *doc, 00422 KTextEditor::ModificationInterface::ModifiedOnDiskReason modtype, 00423 const QString &reason, QWidget *parent ); 00424 ~KateModOnHdPrompt(); 00425 00426 public Q_SLOTS: 00432 void slotDiff(); 00433 00434 protected Q_SLOTS: 00435 virtual void slotButtonClicked(int button); 00436 00437 private Q_SLOTS: 00438 void slotDataAvailable(); 00439 void slotPDone(); 00440 00441 private: 00442 Ui::ModOnHdWidget* ui; 00443 KateDocument *m_doc; 00444 KTextEditor::ModificationInterface::ModifiedOnDiskReason m_modtype; 00445 KProcess *m_proc; 00446 KTemporaryFile *m_diffFile; 00447 }; 00448 00449 #endif 00450 // kate: space-indent on; indent-width 2; replace-tabs on;
KDE 4.6 API Reference