• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • applications API Reference
  • KDE Home
  • Contact Us
 

Kate

  • sources
  • kde-4.12
  • applications
  • kate
  • part
  • dialogs
katedialogs.cpp
Go to the documentation of this file.
1 /* This file is part of the KDE libraries
2  Copyright (C) 2002, 2003 Anders Lund <anders.lund@lund.tdcadsl.dk>
3  Copyright (C) 2003 Christoph Cullmann <cullmann@kde.org>
4  Copyright (C) 2001 Joseph Wenninger <jowenn@kde.org>
5  Copyright (C) 2006 Dominik Haumann <dhdev@gmx.de>
6  Copyright (C) 2007 Mirko Stocker <me@misto.ch>
7  Copyright (C) 2009 Michel Ludwig <michel.ludwig@kdemail.net>
8  Copyright (C) 2009 Erlend Hamberg <ehamberg@gmail.com>
9 
10  Based on work of:
11  Copyright (C) 1999 Jochen Wilhelmy <digisnap@cs.tu-berlin.de>
12 
13  This library is free software; you can redistribute it and/or
14  modify it under the terms of the GNU Library General Public
15  License version 2 as published by the Free Software Foundation.
16 
17  This library is distributed in the hope that it will be useful,
18  but WITHOUT ANY WARRANTY; without even the implied warranty of
19  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20  Library General Public License for more details.
21 
22  You should have received a copy of the GNU Library General Public License
23  along with this library; see the file COPYING.LIB. If not, write to
24  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
25  Boston, MA 02110-1301, USA.
26 */
27 
28 //BEGIN Includes
29 #include "katedialogs.h"
30 #include "katedialogs.moc"
31 
32 #include "kateautoindent.h"
33 #include "katebuffer.h"
34 #include "kateconfig.h"
35 #include "katedocument.h"
36 #include "kateglobal.h"
37 #include "kateviglobal.h"
38 #include "katevikeyparser.h"
39 #include "kateschema.h"
40 #include "katesyntaxdocument.h"
41 #include "katemodeconfigpage.h"
42 #include "kateview.h"
43 #include "katepartpluginmanager.h"
44 #include "kpluginselector.h"
45 #include "spellcheck/spellcheck.h"
46 
47 // auto generated ui files
48 #include "ui_modonhdwidget.h"
49 #include "ui_textareaappearanceconfigwidget.h"
50 #include "ui_bordersappearanceconfigwidget.h"
51 #include "ui_navigationconfigwidget.h"
52 #include "ui_editconfigwidget.h"
53 #include "ui_indentationconfigwidget.h"
54 #include "ui_completionconfigtab.h"
55 #include "ui_opensaveconfigwidget.h"
56 #include "ui_opensaveconfigadvwidget.h"
57 #include "ui_viinputmodeconfigwidget.h"
58 #include "ui_spellcheckconfigwidget.h"
59 
60 #include <ktexteditor/plugin.h>
61 
62 #include <kio/job.h>
63 #include <kio/jobclasses.h>
64 #include <kio/netaccess.h>
65 
66 #include <kapplication.h>
67 #include <kcharsets.h>
68 #include <kcolorbutton.h>
69 #include <kcolorcombo.h>
70 #include <kcolordialog.h>
71 #include <kcombobox.h>
72 #include <kconfig.h>
73 #include <kdebug.h>
74 #include <kfontdialog.h>
75 #include <kglobal.h>
76 #include <kglobalsettings.h>
77 #include <kiconloader.h>
78 #include <kshortcutsdialog.h>
79 #include <klineedit.h>
80 #include <klocale.h>
81 #include <kmessagebox.h>
82 #include <kmimetypechooser.h>
83 #include <knuminput.h>
84 #include <kmenu.h>
85 #include <kprocess.h>
86 #include <krun.h>
87 #include <kseparator.h>
88 #include <kstandarddirs.h>
89 #include <ktemporaryfile.h>
90 #include <kpushbutton.h>
91 #include <kvbox.h>
92 #include <kactioncollection.h>
93 #include <kplugininfo.h>
94 #include <ktabwidget.h>
95 
96 //#include <knewstuff/knewstuff.h>
97 #include <QtGui/QCheckBox>
98 #include <QtGui/QComboBox>
99 #include <QtGui/QDialog>
100 #include <QtCore/QFile>
101 #include <QtGui/QGroupBox>
102 #include <QtGui/QLabel>
103 #include <QtGui/QLayout>
104 #include <QtCore/QMap>
105 #include <QtCore/QObject>
106 #include <QtGui/QPainter>
107 #include <QtGui/QRadioButton>
108 #include <QtGui/QSlider>
109 #include <QtCore/QStringList>
110 #include <QtGui/QTabWidget>
111 #include <QtCore/QTextCodec>
112 #include <QtCore/QTextStream>
113 #include <QtGui/QToolButton>
114 #include <QtGui/QWhatsThis>
115 #include <QtGui/QKeyEvent>
116 #include <QtXml/QDomDocument>
117 
118 // trailing slash is important
119 #define HLDOWNLOADPATH "http://kate.kde.org/syntax/"
120 
121 //END
122 
123 //BEGIN KateConfigPage
124 KateConfigPage::KateConfigPage ( QWidget *parent, const char * )
125  : KTextEditor::ConfigPage (parent)
126  , m_changed (false)
127 {
128  connect (this, SIGNAL(changed()), this, SLOT(somethingHasChanged()));
129 }
130 
131 KateConfigPage::~KateConfigPage ()
132 {
133 }
134 
135 void KateConfigPage::slotChanged()
136 {
137  emit changed();
138 }
139 
140 void KateConfigPage::somethingHasChanged ()
141 {
142  m_changed = true;
143  kDebug (13000) << "TEST: something changed on the config page: " << this;
144 }
145 //END KateConfigPage
146 
147 //BEGIN KateIndentConfigTab
148 KateIndentConfigTab::KateIndentConfigTab(QWidget *parent)
149  : KateConfigPage(parent)
150 {
151  // This will let us have more separation between this page and
152  // the KTabWidget edge (ereslibre)
153  QVBoxLayout *layout = new QVBoxLayout;
154  QWidget *newWidget = new QWidget(this);
155 
156  ui = new Ui::IndentationConfigWidget();
157  ui->setupUi( newWidget );
158 
159  ui->cmbMode->addItems (KateAutoIndent::listModes());
160 
161  ui->label->setTextInteractionFlags(Qt::LinksAccessibleByMouse | Qt::LinksAccessibleByKeyboard);
162  connect(ui->label, SIGNAL(linkActivated(QString)), this, SLOT(showWhatsThis(QString)));
163 
164  // What's This? help can be found in the ui file
165 
166  reload ();
167 
168  //
169  // after initial reload, connect the stuff for the changed () signal
170  //
171 
172  connect(ui->cmbMode, SIGNAL(activated(int)), this, SLOT(slotChanged()));
173  connect(ui->rbIndentWithTabs, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
174  connect(ui->rbIndentWithSpaces, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
175  connect(ui->rbIndentMixed, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
176  connect(ui->rbIndentWithTabs, SIGNAL(toggled(bool)), ui->sbIndentWidth, SLOT(setDisabled(bool)));
177 
178  connect(ui->chkKeepExtraSpaces, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
179  connect(ui->chkIndentPaste, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
180  connect(ui->chkBackspaceUnindents, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
181 
182  connect(ui->sbTabWidth, SIGNAL(valueChanged(int)), this, SLOT(slotChanged()));
183  connect(ui->sbIndentWidth, SIGNAL(valueChanged(int)), this, SLOT(slotChanged()));
184 
185  connect(ui->rbTabAdvances, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
186  connect(ui->rbTabIndents, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
187  connect(ui->rbTabSmart, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
188 
189  layout->addWidget(newWidget);
190  setLayout(layout);
191 }
192 
193 KateIndentConfigTab::~KateIndentConfigTab()
194 {
195  delete ui;
196 }
197 
198 void KateIndentConfigTab::slotChanged()
199 {
200  if (ui->rbIndentWithTabs->isChecked())
201  ui->sbIndentWidth->setValue(ui->sbTabWidth->value());
202 
203  KateConfigPage::slotChanged();
204 }
205 
206 void KateIndentConfigTab::showWhatsThis(const QString& text)
207 {
208  QWhatsThis::showText(QCursor::pos(), text);
209 }
210 
211 void KateIndentConfigTab::apply ()
212 {
213  // nothing changed, no need to apply stuff
214  if (!hasChanged())
215  return;
216  m_changed = false;
217 
218  KateDocumentConfig::global()->configStart ();
219 
220  KateDocumentConfig::global()->setKeepExtraSpaces(ui->chkKeepExtraSpaces->isChecked());
221  KateDocumentConfig::global()->setBackspaceIndents(ui->chkBackspaceUnindents->isChecked());
222  KateDocumentConfig::global()->setIndentPastedText(ui->chkIndentPaste->isChecked());
223  KateDocumentConfig::global()->setIndentationWidth(ui->sbIndentWidth->value());
224  KateDocumentConfig::global()->setIndentationMode(KateAutoIndent::modeName(ui->cmbMode->currentIndex()));
225  KateDocumentConfig::global()->setTabWidth(ui->sbTabWidth->value());
226  KateDocumentConfig::global()->setReplaceTabsDyn(ui->rbIndentWithSpaces->isChecked());
227 
228  if (ui->rbTabAdvances->isChecked())
229  KateDocumentConfig::global()->setTabHandling( KateDocumentConfig::tabInsertsTab );
230  else if (ui->rbTabIndents->isChecked())
231  KateDocumentConfig::global()->setTabHandling( KateDocumentConfig::tabIndents );
232  else
233  KateDocumentConfig::global()->setTabHandling( KateDocumentConfig::tabSmart );
234 
235  KateDocumentConfig::global()->configEnd ();
236 }
237 
238 void KateIndentConfigTab::reload ()
239 {
240  ui->sbTabWidth->setSuffix(ki18np(" character", " characters"));
241  ui->sbTabWidth->setValue(KateDocumentConfig::global()->tabWidth());
242  ui->sbIndentWidth->setSuffix(ki18np(" character", " characters"));
243  ui->sbIndentWidth->setValue(KateDocumentConfig::global()->indentationWidth());
244  ui->chkKeepExtraSpaces->setChecked(KateDocumentConfig::global()->keepExtraSpaces());
245  ui->chkIndentPaste->setChecked(KateDocumentConfig::global()->indentPastedText());
246  ui->chkBackspaceUnindents->setChecked(KateDocumentConfig::global()->backspaceIndents());
247 
248  ui->rbTabAdvances->setChecked( KateDocumentConfig::global()->tabHandling() == KateDocumentConfig::tabInsertsTab );
249  ui->rbTabIndents->setChecked( KateDocumentConfig::global()->tabHandling() == KateDocumentConfig::tabIndents );
250  ui->rbTabSmart->setChecked( KateDocumentConfig::global()->tabHandling() == KateDocumentConfig::tabSmart );
251 
252  ui->cmbMode->setCurrentIndex (KateAutoIndent::modeNumber (KateDocumentConfig::global()->indentationMode()));
253 
254  if (KateDocumentConfig::global()->replaceTabsDyn())
255  ui->rbIndentWithSpaces->setChecked (true);
256  else
257  {
258  if (KateDocumentConfig::global()->indentationWidth() == KateDocumentConfig::global()->tabWidth())
259  ui->rbIndentWithTabs->setChecked (true);
260  else
261  ui->rbIndentMixed->setChecked (true);
262  }
263 
264  ui->sbIndentWidth->setEnabled(!ui->rbIndentWithTabs->isChecked());
265 }
266 //END KateIndentConfigTab
267 
268 //BEGIN KateCompletionConfigTab
269 KateCompletionConfigTab::KateCompletionConfigTab(QWidget *parent)
270  : KateConfigPage(parent)
271 {
272  // This will let us have more separation between this page and
273  // the KTabWidget edge (ereslibre)
274  QVBoxLayout *layout = new QVBoxLayout;
275  QWidget *newWidget = new QWidget(this);
276 
277  ui = new Ui::CompletionConfigTab ();
278  ui->setupUi( newWidget );
279 
280  // What's This? help can be found in the ui file
281 
282  reload ();
283 
284  //
285  // after initial reload, connect the stuff for the changed () signal
286  //
287 
288  connect(ui->chkAutoCompletionEnabled, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
289  connect(ui->gbWordCompletion, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
290  connect(ui->minimalWordLength, SIGNAL(valueChanged(int)), this, SLOT(slotChanged()));
291  connect(ui->removeTail, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
292 
293  layout->addWidget(newWidget);
294  setLayout(layout);
295 }
296 
297 KateCompletionConfigTab::~KateCompletionConfigTab()
298 {
299  delete ui;
300 }
301 
302 void KateCompletionConfigTab::showWhatsThis(const QString& text)
303 {
304  QWhatsThis::showText(QCursor::pos(), text);
305 }
306 
307 void KateCompletionConfigTab::apply ()
308 {
309  // nothing changed, no need to apply stuff
310  if (!hasChanged())
311  return;
312  m_changed = false;
313 
314  KateViewConfig::global()->configStart ();
315  KateViewConfig::global()->setAutomaticCompletionInvocation (ui->chkAutoCompletionEnabled->isChecked());
316  KateViewConfig::global()->setWordCompletion (ui->gbWordCompletion->isChecked());
317  KateViewConfig::global()->setWordCompletionMinimalWordLength (ui->minimalWordLength->value());
318  KateViewConfig::global()->setWordCompletionRemoveTail (ui->removeTail->isChecked());
319  KateViewConfig::global()->configEnd ();
320 }
321 
322 void KateCompletionConfigTab::reload ()
323 {
324  ui->chkAutoCompletionEnabled->setChecked( KateViewConfig::global()->automaticCompletionInvocation () );
325  ui->gbWordCompletion->setChecked( KateViewConfig::global()->wordCompletion () );
326  ui->minimalWordLength->setValue (KateViewConfig::global()->wordCompletionMinimalWordLength ());
327  ui->removeTail->setChecked (KateViewConfig::global()->wordCompletionRemoveTail ());
328 }
329 //END KateCompletionConfigTab
330 
331 //BEGIN KateViInputModeConfigTab
332 KateViInputModeConfigTab::KateViInputModeConfigTab(QWidget *parent)
333  : KateConfigPage(parent)
334 {
335  // This will let us have more separation between this page and
336  // the KTabWidget edge (ereslibre)
337  QVBoxLayout *layout = new QVBoxLayout;
338  QWidget *newWidget = new QWidget(this);
339 
340  ui = new Ui::ViInputModeConfigWidget ();
341  ui->setupUi( newWidget );
342 
343  // What's This? help can be found in the ui file
344 
345  reload ();
346 
347  //
348  // after initial reload, connect the stuff for the changed () signal
349  //
350 
351  connect(ui->chkViInputModeDefault, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
352  connect(ui->chkViCommandsOverride, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
353  connect(ui->tblNormalModeMappings, SIGNAL(cellChanged(int,int)), this, SLOT(slotChanged()));
354  connect(ui->btnAddNewNormal, SIGNAL(clicked()), this, SLOT(addNewNormalModeMappingRow()));
355  connect(ui->btnAddNewNormal, SIGNAL(clicked()), this, SLOT(slotChanged()));
356  connect(ui->btnRemoveSelectedNormal, SIGNAL(clicked()), this, SLOT(removeSelectedNormalMappingRow()));
357  connect(ui->btnRemoveSelectedNormal, SIGNAL(clicked()), this, SLOT(slotChanged()));
358  connect(ui->btnImportNormal, SIGNAL(clicked()), this, SLOT(importNormalMappingRow()));
359  connect(ui->btnImportNormal, SIGNAL(clicked()), this, SLOT(slotChanged()));
360 
361  layout->addWidget(newWidget);
362  setLayout(layout);
363 }
364 
365 KateViInputModeConfigTab::~KateViInputModeConfigTab()
366 {
367  delete ui;
368 }
369 
370 void KateViInputModeConfigTab::showWhatsThis(const QString& text)
371 {
372  QWhatsThis::showText(QCursor::pos(), text);
373 }
374 
375 void KateViInputModeConfigTab::apply ()
376 {
377  // nothing changed, no need to apply stuff
378  if (!hasChanged())
379  return;
380  m_changed = false;
381 
382  KateViewConfig::global()->configStart ();
383  KateViewConfig::global()->setViInputMode (ui->chkViInputModeDefault->isChecked());
384  KateViewConfig::global()->setViInputModeStealKeys (ui->chkViCommandsOverride->isChecked());
385  KateGlobal::self()->viInputModeGlobal()->clearMappings( KateViGlobal::NormalModeMapping );
386  for ( int i = 0; i < ui->tblNormalModeMappings->rowCount(); i++ ) {
387  QTableWidgetItem* from = ui->tblNormalModeMappings->item( i, 0 );
388  QTableWidgetItem* to = ui->tblNormalModeMappings->item( i, 1 );
389  QTableWidgetItem* recursive = ui->tblNormalModeMappings->item( i, 2 );
390 
391  if ( from && to && recursive) {
392  const KateViGlobal::MappingRecursion recursion = recursive->checkState() == Qt::Checked ?
393  KateViGlobal::Recursive :
394  KateViGlobal::NonRecursive;
395  KateGlobal::self()->viInputModeGlobal()->addMapping( KateViGlobal::NormalModeMapping, from->text(), to->text(), recursion);
396  }
397  }
398  KateViewConfig::global()->configEnd ();
399 }
400 
401 void KateViInputModeConfigTab::reload ()
402 {
403  ui->chkViInputModeDefault->setChecked( KateViewConfig::global()->viInputMode () );
404  ui->chkViCommandsOverride->setChecked( KateViewConfig::global()->viInputModeStealKeys () );
405 
406  ui->chkViCommandsOverride->setEnabled(ui->chkViInputModeDefault->isChecked());
407 
408  QStringList l = KateGlobal::self()->viInputModeGlobal()->getMappings( KateViGlobal::NormalModeMapping );
409  ui->tblNormalModeMappings->setRowCount( l.size() );
410 
411  // Make the two columns fill most of the width.
412  // TODO - note that this has never worked, except by fluke: we don't actual know the table
413  // width at this point.
414  ui->tblNormalModeMappings->setColumnWidth( 0, 4 * ui->tblNormalModeMappings->width()/16 );
415  ui->tblNormalModeMappings->setColumnWidth( 1, 4 * ui->tblNormalModeMappings->width()/16 );
416  ui->tblNormalModeMappings->horizontalHeader()->setStretchLastSection(true);
417 
418  int i = 0;
419  foreach( const QString &f, l ) {
420  QTableWidgetItem *from
421  = new QTableWidgetItem( KateViKeyParser::self()->decodeKeySequence( f ) );
422  QString s = KateGlobal::self()->viInputModeGlobal()->getMapping( KateViGlobal::NormalModeMapping, f );
423  QTableWidgetItem *to =
424  new QTableWidgetItem( KateViKeyParser::self()->decodeKeySequence( s ) );
425  QTableWidgetItem *recursive =
426  new QTableWidgetItem();
427  recursive->setFlags(Qt::ItemIsEnabled | Qt::ItemIsUserCheckable | Qt::ItemIsSelectable);
428  const bool isRecursive = KateGlobal::self()->viInputModeGlobal()->isMappingRecursive(KateViGlobal::NormalModeMapping, f);
429  recursive->setCheckState(isRecursive ? Qt::Checked : Qt::Unchecked);
430 
431  ui->tblNormalModeMappings->setItem(i, 0, from);
432  ui->tblNormalModeMappings->setItem(i, 1, to);
433  ui->tblNormalModeMappings->setItem(i, 2, recursive);
434 
435  i++;
436  }
437 }
438 
439 void KateViInputModeConfigTab::addNewNormalModeMappingRow()
440 {
441  int rows = ui->tblNormalModeMappings->rowCount();
442  ui->tblNormalModeMappings->insertRow( rows );
443  QTableWidgetItem *recursive = new QTableWidgetItem();
444  recursive->setFlags(Qt::ItemIsEnabled | Qt::ItemIsUserCheckable | Qt::ItemIsSelectable);
445  recursive->setCheckState(Qt::Unchecked);
446  ui->tblNormalModeMappings->setItem(rows, 2, recursive);
447  ui->tblNormalModeMappings->setCurrentCell( rows, 0 );
448  ui->tblNormalModeMappings->editItem( ui->tblNormalModeMappings->currentItem() );
449 }
450 
451 void KateViInputModeConfigTab::importNormalMappingRow()
452 {
453  QString fileName = KFileDialog::getOpenFileName();
454  if(fileName.isEmpty()) return;
455  QFile configFile(fileName);
456  if(! configFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
457  KMessageBox::error(this, i18n("Unable to open the config file for reading."), i18n("Unable to open file"));
458  return;
459  }
460  QTextStream stream(&configFile);
461  while(! stream.atEnd()) {
462  QStringList line = stream.readLine().split(" ");
463 
464  // TODO - allow recursive mappings to be read.
465  if(line.size() > 2 && (line[0] == "noremap" || line[0] == "no"
466  || line[0] == "nnoremap" || line [0] == "nn")) {
467  int rows = ui->tblNormalModeMappings->rowCount();
468  ui->tblNormalModeMappings->insertRow( rows );
469  ui->tblNormalModeMappings->setItem(rows, 0, new QTableWidgetItem(line[1]));
470  ui->tblNormalModeMappings->setItem(rows, 1, new QTableWidgetItem(line[2]));
471  QTableWidgetItem *recursive = new QTableWidgetItem();
472  recursive->setFlags(Qt::ItemIsEnabled | Qt::ItemIsUserCheckable | Qt::ItemIsSelectable);
473  recursive->setCheckState(Qt::Unchecked);
474  ui->tblNormalModeMappings->setItem(rows, 2, recursive);
475  }
476  }
477 }
478 
479 void KateViInputModeConfigTab::removeSelectedNormalMappingRow()
480 {
481  QList<QTableWidgetSelectionRange> l = ui->tblNormalModeMappings->selectedRanges();
482 
483  foreach( const QTableWidgetSelectionRange &range, l ) {
484  for ( int i = 0; i < range.bottomRow()-range.topRow()+1; i++ ) {
485  ui->tblNormalModeMappings->removeRow( range.topRow() );
486  }
487  }
488 }
489 //END KateViInputModeConfigTab
490 
491 //BEGIN KateSpellCheckConfigTab
492 KateSpellCheckConfigTab::KateSpellCheckConfigTab(QWidget *parent)
493  : KateConfigPage(parent)
494 {
495  // This will let us have more separation between this page and
496  // the KTabWidget edge (ereslibre)
497  QVBoxLayout *layout = new QVBoxLayout;
498  QWidget *newWidget = new QWidget(this);
499 
500  ui = new Ui::SpellCheckConfigWidget();
501  ui->setupUi(newWidget);
502 
503  // What's This? help can be found in the ui file
504  reload();
505 
506  //
507  // after initial reload, connect the stuff for the changed () signal
508 
509  m_sonnetConfigWidget = new Sonnet::ConfigWidget(KGlobal::config().data(), this);
510  connect(m_sonnetConfigWidget, SIGNAL(configChanged()), this, SLOT(slotChanged()));
511  layout->addWidget(m_sonnetConfigWidget);
512 
513  layout->addWidget(newWidget);
514  setLayout(layout);
515 }
516 
517 KateSpellCheckConfigTab::~KateSpellCheckConfigTab()
518 {
519  delete ui;
520 }
521 
522 void KateSpellCheckConfigTab::showWhatsThis(const QString& text)
523 {
524  QWhatsThis::showText(QCursor::pos(), text);
525 }
526 
527 void KateSpellCheckConfigTab::apply()
528 {
529  if (!hasChanged()) {
530  // nothing changed, no need to apply stuff
531  return;
532  }
533  m_changed = false;
534 
535  KateDocumentConfig::global()->configStart();
536  m_sonnetConfigWidget->save();
537  KateDocumentConfig::global()->configEnd();
538  foreach (KateDocument *doc, KateGlobal::self()->kateDocuments()) {
539  doc->refreshOnTheFlyCheck();
540  }
541 }
542 
543 void KateSpellCheckConfigTab::reload()
544 {
545  // does nothing
546 }
547 //END KateSpellCheckConfigTab
548 
549 //BEGIN KateNavigationConfigTab
550 KateNavigationConfigTab::KateNavigationConfigTab(QWidget *parent)
551  : KateConfigPage(parent)
552 {
553  // This will let us having more separation between this page and
554  // the KTabWidget edge (ereslibre)
555  QVBoxLayout *layout = new QVBoxLayout;
556  QWidget *newWidget = new QWidget(this);
557 
558  ui = new Ui::NavigationConfigWidget();
559  ui->setupUi( newWidget );
560 
561  // What's This? Help is in the ui-files
562 
563  reload ();
564 
565  //
566  // after initial reload, connect the stuff for the changed () signal
567  //
568 
569  connect(ui->cbTextSelectionMode, SIGNAL(currentIndexChanged(int)), this, SLOT(slotChanged()));
570  connect(ui->chkSmartHome, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
571  connect(ui->chkPagingMovesCursor, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
572  connect(ui->sbAutoCenterCursor, SIGNAL(valueChanged(int)), this, SLOT(slotChanged()));
573  connect(ui->chkScrollPastEnd, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
574 
575  layout->addWidget(newWidget);
576  setLayout(layout);
577 }
578 
579 KateNavigationConfigTab::~KateNavigationConfigTab()
580 {
581  delete ui;
582 }
583 
584 void KateNavigationConfigTab::apply ()
585 {
586  // nothing changed, no need to apply stuff
587  if (!hasChanged())
588  return;
589  m_changed = false;
590 
591  KateViewConfig::global()->configStart ();
592  KateDocumentConfig::global()->configStart ();
593 
594  KateDocumentConfig::global()->setSmartHome(ui->chkSmartHome->isChecked());
595 
596  KateViewConfig::global()->setAutoCenterLines(qMax(0, ui->sbAutoCenterCursor->value()));
597  KateDocumentConfig::global()->setPageUpDownMovesCursor(ui->chkPagingMovesCursor->isChecked());
598 
599  KateViewConfig::global()->setPersistentSelection (ui->cbTextSelectionMode->currentIndex() == 1);
600 
601  KateViewConfig::global()->setScrollPastEnd(ui->chkScrollPastEnd->isChecked());
602 
603  KateDocumentConfig::global()->configEnd ();
604  KateViewConfig::global()->configEnd ();
605 }
606 
607 void KateNavigationConfigTab::reload ()
608 {
609  ui->cbTextSelectionMode->setCurrentIndex( KateViewConfig::global()->persistentSelection() ? 1 : 0 );
610 
611  ui->chkSmartHome->setChecked(KateDocumentConfig::global()->smartHome());
612  ui->chkPagingMovesCursor->setChecked(KateDocumentConfig::global()->pageUpDownMovesCursor());
613  ui->sbAutoCenterCursor->setValue(KateViewConfig::global()->autoCenterLines());
614  ui->chkScrollPastEnd->setChecked(KateViewConfig::global()->scrollPastEnd());
615 }
616 //END KateNavigationConfigTab
617 
618 //BEGIN KateEditGeneralConfigTab
619 KateEditGeneralConfigTab::KateEditGeneralConfigTab(QWidget *parent)
620  : KateConfigPage(parent)
621 {
622  QVBoxLayout *layout = new QVBoxLayout;
623  QWidget *newWidget = new QWidget(this);
624  ui = new Ui::EditConfigWidget();
625  ui->setupUi( newWidget );
626 
627  reload();
628 
629  connect(ui->chkStaticWordWrap, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
630  connect(ui->chkShowStaticWordWrapMarker, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
631  connect(ui->sbWordWrap, SIGNAL(valueChanged(int)), this, SLOT(slotChanged()));
632  connect(ui->chkSmartCopyCut, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
633 
634  // "What's this?" help is in the ui-file
635 
636  layout->addWidget(newWidget);
637  setLayout(layout);
638 }
639 
640 KateEditGeneralConfigTab::~KateEditGeneralConfigTab()
641 {
642  delete ui;
643 }
644 
645 void KateEditGeneralConfigTab::apply ()
646 {
647  // nothing changed, no need to apply stuff
648  if (!hasChanged())
649  return;
650  m_changed = false;
651 
652  KateViewConfig::global()->configStart ();
653  KateDocumentConfig::global()->configStart ();
654 
655  KateDocumentConfig::global()->setWordWrapAt(ui->sbWordWrap->value());
656  KateDocumentConfig::global()->setWordWrap(ui->chkStaticWordWrap->isChecked());
657 
658  KateRendererConfig::global()->setWordWrapMarker (ui->chkShowStaticWordWrapMarker->isChecked());
659 
660  KateDocumentConfig::global()->configEnd ();
661  KateViewConfig::global()->setSmartCopyCut(ui->chkSmartCopyCut->isChecked());
662  KateViewConfig::global()->configEnd ();
663 }
664 
665 void KateEditGeneralConfigTab::reload ()
666 {
667  ui->chkStaticWordWrap->setChecked(KateDocumentConfig::global()->wordWrap());
668  ui->chkShowStaticWordWrapMarker->setChecked( KateRendererConfig::global()->wordWrapMarker() );
669  ui->sbWordWrap->setSuffix(ki18ncp("Wrap words at", " character", " characters"));
670  ui->sbWordWrap->setValue( KateDocumentConfig::global()->wordWrapAt() );
671  ui->chkSmartCopyCut->setChecked( KateViewConfig::global()->smartCopyCut() );
672 }
673 //END KateEditGeneralConfigTab
674 
675 
676 //BEGIN KateEditConfigTab
677 KateEditConfigTab::KateEditConfigTab(QWidget *parent)
678  : KateConfigPage(parent)
679  , editConfigTab(new KateEditGeneralConfigTab(this))
680  , navigationConfigTab(new KateNavigationConfigTab(this))
681  , indentConfigTab(new KateIndentConfigTab(this))
682  , completionConfigTab (new KateCompletionConfigTab(this))
683  , viInputModeConfigTab(new KateViInputModeConfigTab(this))
684  , spellCheckConfigTab(new KateSpellCheckConfigTab(this))
685 {
686  QVBoxLayout *layout = new QVBoxLayout;
687  layout->setMargin(0);
688  KTabWidget *tabWidget = new KTabWidget(this);
689 
690  // add all tabs
691  tabWidget->insertTab(0, editConfigTab, i18n("General"));
692  tabWidget->insertTab(1, navigationConfigTab, i18n("Text Navigation"));
693  tabWidget->insertTab(2, indentConfigTab, i18n("Indentation"));
694  tabWidget->insertTab(3, completionConfigTab, i18n("Auto Completion"));
695  tabWidget->insertTab(4, viInputModeConfigTab, i18n("Vi Input Mode"));
696  tabWidget->insertTab(5, spellCheckConfigTab, i18n("Spellcheck"));
697 
698  connect(editConfigTab, SIGNAL(changed()), this, SLOT(slotChanged()));
699  connect(navigationConfigTab, SIGNAL(changed()), this, SLOT(slotChanged()));
700  connect(indentConfigTab, SIGNAL(changed()), this, SLOT(slotChanged()));
701  connect(completionConfigTab, SIGNAL(changed()), this, SLOT(slotChanged()));
702  connect(viInputModeConfigTab, SIGNAL(changed()), this, SLOT(slotChanged()));
703  connect(spellCheckConfigTab, SIGNAL(changed()), this, SLOT(slotChanged()));
704 
705  layout->addWidget(tabWidget);
706  setLayout(layout);
707 }
708 
709 KateEditConfigTab::~KateEditConfigTab()
710 {
711 }
712 
713 void KateEditConfigTab::apply ()
714 {
715  // try to update the rest of tabs
716  editConfigTab->apply();
717  navigationConfigTab->apply();
718  indentConfigTab->apply();
719  completionConfigTab->apply();
720  viInputModeConfigTab->apply();
721  spellCheckConfigTab->apply();
722 }
723 
724 void KateEditConfigTab::reload ()
725 {
726  editConfigTab->reload();
727  navigationConfigTab->reload();
728  indentConfigTab->reload();
729  completionConfigTab->reload();
730  viInputModeConfigTab->reload();
731  spellCheckConfigTab->reload();
732 }
733 
734 void KateEditConfigTab::reset ()
735 {
736  editConfigTab->reset();
737  navigationConfigTab->reset();
738  indentConfigTab->reset();
739  completionConfigTab->reset();
740  viInputModeConfigTab->reset();
741  spellCheckConfigTab->reset();
742 }
743 
744 void KateEditConfigTab::defaults ()
745 {
746  editConfigTab->defaults();
747  navigationConfigTab->defaults();
748  indentConfigTab->defaults();
749  completionConfigTab->defaults();
750  viInputModeConfigTab->defaults();
751  spellCheckConfigTab->defaults();
752 }
753 //END KateEditConfigTab
754 
755 //BEGIN KateViewDefaultsConfig
756 KateViewDefaultsConfig::KateViewDefaultsConfig(QWidget *parent)
757  : KateConfigPage(parent)
758  , textareaUi(new Ui::TextareaAppearanceConfigWidget())
759  , bordersUi(new Ui::BordersAppearanceConfigWidget())
760 {
761  QLayout *layout = new QVBoxLayout( this );
762  QTabWidget *tabWidget = new QTabWidget( this );
763  layout->addWidget( tabWidget );
764  layout->setMargin( 0 );
765 
766  QWidget *textareaTab = new QWidget( tabWidget );
767  textareaUi->setupUi( textareaTab );
768  tabWidget->addTab( textareaTab, i18n("General") );
769 
770  QWidget *bordersTab = new QWidget( tabWidget );
771  bordersUi->setupUi( bordersTab );
772  tabWidget->addTab( bordersTab, i18n("Borders") );
773 
774  if (KateDocument::simpleMode ())
775  bordersUi->gbSortBookmarks->hide ();
776 
777  textareaUi->cmbDynamicWordWrapIndicator->addItem( i18n("Off") );
778  textareaUi->cmbDynamicWordWrapIndicator->addItem( i18n("Follow Line Numbers") );
779  textareaUi->cmbDynamicWordWrapIndicator->addItem( i18n("Always On") );
780 
781  // hide power user mode if activated anyway
782  if (!KateGlobal::self()->simpleMode ())
783  textareaUi->chkDeveloperMode->hide ();
784 
785  // What's This? help is in the ui-file
786 
787  reload();
788 
789  //
790  // after initial reload, connect the stuff for the changed () signal
791  //
792 
793  connect(textareaUi->gbWordWrap, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
794  connect(textareaUi->cmbDynamicWordWrapIndicator, SIGNAL(activated(int)), this, SLOT(slotChanged()));
795  connect(textareaUi->sbDynamicWordWrapDepth, SIGNAL(valueChanged(int)), this, SLOT(slotChanged()));
796  connect(textareaUi->chkShowTabs, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
797  connect(textareaUi->chkShowSpaces, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
798  connect(textareaUi->chkShowIndentationLines, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
799  connect(textareaUi->chkShowWholeBracketExpression, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
800  connect(textareaUi->chkDeveloperMode, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
801 
802  connect(bordersUi->chkIconBorder, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
803  connect(bordersUi->chkScrollbarMarks, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
804  connect(bordersUi->chkScrollbarMiniMap, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
805  connect(bordersUi->chkScrollbarMiniMapAll, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
806  bordersUi->chkScrollbarMiniMapAll->hide(); // this is temporary until the feature is done
807  connect(bordersUi->spBoxMiniMapWidth, SIGNAL(valueChanged(int)), this, SLOT(slotChanged()));
808  connect(bordersUi->chkLineNumbers, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
809  connect(bordersUi->chkShowLineModification, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
810  connect(bordersUi->chkShowFoldingMarkers, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
811  connect(bordersUi->rbSortBookmarksByPosition, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
812  connect(bordersUi->rbSortBookmarksByCreation, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
813 }
814 
815 KateViewDefaultsConfig::~KateViewDefaultsConfig()
816 {
817  delete bordersUi;
818  delete textareaUi;
819 }
820 
821 void KateViewDefaultsConfig::apply ()
822 {
823  // nothing changed, no need to apply stuff
824  if (!hasChanged())
825  return;
826  m_changed = false;
827 
828  KateViewConfig::global()->configStart ();
829  KateRendererConfig::global()->configStart ();
830 
831  KateViewConfig::global()->setDynWordWrap (textareaUi->gbWordWrap->isChecked());
832  KateViewConfig::global()->setDynWordWrapIndicators (textareaUi->cmbDynamicWordWrapIndicator->currentIndex ());
833  KateViewConfig::global()->setDynWordWrapAlignIndent(textareaUi->sbDynamicWordWrapDepth->value());
834  KateDocumentConfig::global()->setShowTabs (textareaUi->chkShowTabs->isChecked());
835  KateDocumentConfig::global()->setShowSpaces (textareaUi->chkShowSpaces->isChecked());
836  KateViewConfig::global()->setLineNumbers (bordersUi->chkLineNumbers->isChecked());
837  KateViewConfig::global()->setIconBar (bordersUi->chkIconBorder->isChecked());
838  KateViewConfig::global()->setScrollBarMarks (bordersUi->chkScrollbarMarks->isChecked());
839  KateViewConfig::global()->setScrollBarMiniMap (bordersUi->chkScrollbarMiniMap->isChecked());
840  KateViewConfig::global()->setScrollBarMiniMapAll (bordersUi->chkScrollbarMiniMapAll->isChecked());
841  KateViewConfig::global()->setScrollBarMiniMapWidth (bordersUi->spBoxMiniMapWidth->value());
842  KateViewConfig::global()->setFoldingBar (bordersUi->chkShowFoldingMarkers->isChecked());
843  KateViewConfig::global()->setLineModification(bordersUi->chkShowLineModification->isChecked());
844 
845  KateViewConfig::global()->setBookmarkSort (bordersUi->rbSortBookmarksByPosition->isChecked()?0:1);
846  KateRendererConfig::global()->setShowIndentationLines(textareaUi->chkShowIndentationLines->isChecked());
847  KateRendererConfig::global()->setShowWholeBracketExpression(textareaUi->chkShowWholeBracketExpression->isChecked());
848 
849  // warn user that he needs restart the application
850  if (!textareaUi->chkDeveloperMode->isChecked() != KateDocumentConfig::global()->allowSimpleMode())
851  {
852  // inform...
853  KMessageBox::information(
854  this,
855  i18n("Changing the power user mode affects only newly opened / created documents. In KWrite a restart is recommended."),
856  i18n("Power user mode changed"));
857 
858  KateDocumentConfig::global()->setAllowSimpleMode (!textareaUi->chkDeveloperMode->isChecked());
859  }
860 
861  KateRendererConfig::global()->configEnd ();
862  KateViewConfig::global()->configEnd ();
863 }
864 
865 void KateViewDefaultsConfig::reload ()
866 {
867  textareaUi->gbWordWrap->setChecked(KateViewConfig::global()->dynWordWrap());
868  textareaUi->cmbDynamicWordWrapIndicator->setCurrentIndex( KateViewConfig::global()->dynWordWrapIndicators() );
869  textareaUi->sbDynamicWordWrapDepth->setValue(KateViewConfig::global()->dynWordWrapAlignIndent());
870  textareaUi->chkShowTabs->setChecked(KateDocumentConfig::global()->showTabs());
871  textareaUi->chkShowSpaces->setChecked(KateDocumentConfig::global()->showSpaces());
872  bordersUi->chkLineNumbers->setChecked(KateViewConfig::global()->lineNumbers());
873  bordersUi->chkIconBorder->setChecked(KateViewConfig::global()->iconBar());
874  bordersUi->chkScrollbarMarks->setChecked(KateViewConfig::global()->scrollBarMarks());
875  bordersUi->chkScrollbarMiniMap->setChecked(KateViewConfig::global()->scrollBarMiniMap());
876  bordersUi->chkScrollbarMiniMapAll->setChecked(KateViewConfig::global()->scrollBarMiniMapAll());
877  bordersUi->spBoxMiniMapWidth->setValue(KateViewConfig::global()->scrollBarMiniMapWidth());
878  bordersUi->chkShowFoldingMarkers->setChecked(KateViewConfig::global()->foldingBar());
879  bordersUi->chkShowLineModification->setChecked(KateViewConfig::global()->lineModification());
880  bordersUi->rbSortBookmarksByPosition->setChecked(KateViewConfig::global()->bookmarkSort()==0);
881  bordersUi->rbSortBookmarksByCreation->setChecked(KateViewConfig::global()->bookmarkSort()==1);
882  textareaUi->chkShowIndentationLines->setChecked(KateRendererConfig::global()->showIndentationLines());
883  textareaUi->chkShowWholeBracketExpression->setChecked(KateRendererConfig::global()->showWholeBracketExpression());
884  textareaUi->chkDeveloperMode->setChecked(!KateDocumentConfig::global()->allowSimpleMode());
885 }
886 
887 void KateViewDefaultsConfig::reset () {;}
888 
889 void KateViewDefaultsConfig::defaults (){;}
890 //END KateViewDefaultsConfig
891 
892 //BEGIN KateSaveConfigTab
893 KateSaveConfigTab::KateSaveConfigTab( QWidget *parent )
894  : KateConfigPage( parent )
895  , modeConfigPage( new ModeConfigPage( this ) )
896 {
897  // FIXME: Is really needed to move all this code below to another class,
898  // since it is another tab itself on the config dialog. This means we should
899  // initialize, add and work with as we do with modeConfigPage (ereslibre)
900  QVBoxLayout *layout = new QVBoxLayout;
901  layout->setMargin(0);
902  KTabWidget *tabWidget = new KTabWidget(this);
903 
904  QWidget *tmpWidget = new QWidget(tabWidget);
905  QVBoxLayout *internalLayout = new QVBoxLayout;
906  QWidget *newWidget = new QWidget(tabWidget);
907  ui = new Ui::OpenSaveConfigWidget();
908  ui->setupUi( newWidget );
909 
910  QWidget *tmpWidget2 = new QWidget(tabWidget);
911  QVBoxLayout *internalLayout2 = new QVBoxLayout;
912  QWidget *newWidget2 = new QWidget(tabWidget);
913  uiadv = new Ui::OpenSaveConfigAdvWidget();
914  uiadv->setupUi( newWidget2 );
915 
916  // What's this help is added in ui/opensaveconfigwidget.ui
917  reload();
918 
919  //
920  // after initial reload, connect the stuff for the changed () signal
921  //
922 
923  connect( ui->cmbEncoding, SIGNAL(activated(int)), this, SLOT(slotChanged()));
924  connect( ui->cmbEncodingDetection, SIGNAL(activated(int)), this, SLOT(slotChanged()));
925  connect( ui->cmbEncodingFallback, SIGNAL(activated(int)), this, SLOT(slotChanged()));
926  connect( ui->cmbEOL, SIGNAL(activated(int)), this, SLOT(slotChanged()));
927  connect( ui->chkDetectEOL, SIGNAL(toggled(bool)), this, SLOT(slotChanged()) );
928  connect( ui->chkEnableBOM, SIGNAL(toggled(bool)), this, SLOT(slotChanged()) );
929  connect( ui->lineLengthLimit, SIGNAL(valueChanged(int)), this, SLOT(slotChanged()));
930  connect( ui->cbRemoveTrailingSpaces, SIGNAL(currentIndexChanged(int)), this, SLOT(slotChanged()));
931  connect( ui->chkNewLineAtEof, SIGNAL(toggled(bool)), this, SLOT(slotChanged()));
932  connect( uiadv->chkBackupLocalFiles, SIGNAL(toggled(bool)), this, SLOT(slotChanged()) );
933  connect( uiadv->chkBackupRemoteFiles, SIGNAL(toggled(bool)), this, SLOT(slotChanged()) );
934  connect( uiadv->sbConfigFileSearchDepth, SIGNAL(valueChanged(int)), this, SLOT(slotChanged()));
935  connect( uiadv->edtBackupPrefix, SIGNAL(textChanged(QString)), this, SLOT(slotChanged()) );
936  connect( uiadv->edtBackupSuffix, SIGNAL(textChanged(QString)), this, SLOT(slotChanged()) );
937  connect( uiadv->chkNoSync, SIGNAL(toggled(bool)), this, SLOT(slotChanged()) );
938 
939  internalLayout->addWidget(newWidget);
940  tmpWidget->setLayout(internalLayout);
941  internalLayout2->addWidget(newWidget2);
942  tmpWidget2->setLayout(internalLayout2);
943 
944  // add all tabs
945  tabWidget->insertTab(0, tmpWidget, i18n("General"));
946  tabWidget->insertTab(1, tmpWidget2, i18n("Advanced"));
947  tabWidget->insertTab(2, modeConfigPage, i18n("Modes && Filetypes"));
948 
949  connect(modeConfigPage, SIGNAL(changed()), this, SLOT(slotChanged()));
950 
951  layout->addWidget(tabWidget);
952  setLayout(layout);
953 }
954 
955 KateSaveConfigTab::~KateSaveConfigTab()
956 {
957  delete ui;
958 }
959 
960 void KateSaveConfigTab::apply()
961 {
962  modeConfigPage->apply();
963 
964  // nothing changed, no need to apply stuff
965  if (!hasChanged())
966  return;
967  m_changed = false;
968 
969  KateGlobalConfig::global()->configStart ();
970  KateDocumentConfig::global()->configStart ();
971 
972  if ( uiadv->edtBackupSuffix->text().isEmpty() && uiadv->edtBackupPrefix->text().isEmpty() ) {
973  KMessageBox::information(
974  this,
975  i18n("You did not provide a backup suffix or prefix. Using default suffix: '~'"),
976  i18n("No Backup Suffix or Prefix")
977  );
978  uiadv->edtBackupSuffix->setText( "~" );
979  }
980 
981  uint f( 0 );
982  if ( uiadv->chkBackupLocalFiles->isChecked() )
983  f |= KateDocumentConfig::LocalFiles;
984  if ( uiadv->chkBackupRemoteFiles->isChecked() )
985  f |= KateDocumentConfig::RemoteFiles;
986 
987  KateDocumentConfig::global()->setBackupFlags(f);
988  KateDocumentConfig::global()->setBackupPrefix(uiadv->edtBackupPrefix->text());
989  KateDocumentConfig::global()->setBackupSuffix(uiadv->edtBackupSuffix->text());
990 
991  KateDocumentConfig::global()->setSwapFileNoSync(uiadv->chkNoSync->isChecked());
992 
993  KateDocumentConfig::global()->setSearchDirConfigDepth(uiadv->sbConfigFileSearchDepth->value());
994 
995  KateDocumentConfig::global()->setRemoveSpaces(ui->cbRemoveTrailingSpaces->currentIndex());
996 
997  KateDocumentConfig::global()->setNewLineAtEof(ui->chkNewLineAtEof->isChecked());
998 
999  // set both standard and fallback encoding
1000  KateDocumentConfig::global()->setEncoding((ui->cmbEncoding->currentIndex() == 0) ? "" : KGlobal::charsets()->encodingForName(ui->cmbEncoding->currentText()));
1001 
1002  KateGlobalConfig::global()->setProberType((KEncodingProber::ProberType)ui->cmbEncodingDetection->currentIndex());
1003  KateGlobalConfig::global()->setFallbackEncoding(KGlobal::charsets()->encodingForName(ui->cmbEncodingFallback->currentText()));
1004 
1005  KateDocumentConfig::global()->setEol(ui->cmbEOL->currentIndex());
1006  KateDocumentConfig::global()->setAllowEolDetection(ui->chkDetectEOL->isChecked());
1007  KateDocumentConfig::global()->setBom(ui->chkEnableBOM->isChecked());
1008 
1009  KateDocumentConfig::global()->setLineLengthLimit(ui->lineLengthLimit->value());
1010 
1011  KateDocumentConfig::global()->configEnd ();
1012  KateGlobalConfig::global()->configEnd ();
1013 }
1014 
1015 void KateSaveConfigTab::reload()
1016 {
1017  modeConfigPage->reload();
1018 
1019  // encodings
1020  ui->cmbEncoding->clear ();
1021  ui->cmbEncoding->addItem (i18n("KDE Default"));
1022  ui->cmbEncoding->setCurrentIndex(0);
1023  ui->cmbEncodingFallback->clear ();
1024  QStringList encodings (KGlobal::charsets()->descriptiveEncodingNames());
1025  int insert = 1;
1026  for (int i=0; i < encodings.count(); i++)
1027  {
1028  bool found = false;
1029  QTextCodec *codecForEnc = KGlobal::charsets()->codecForName(KGlobal::charsets()->encodingForName(encodings[i]), found);
1030 
1031  if (found)
1032  {
1033  ui->cmbEncoding->addItem (encodings[i]);
1034  ui->cmbEncodingFallback->addItem (encodings[i]);
1035 
1036  if ( codecForEnc->name() == KateDocumentConfig::global()->encoding() )
1037  {
1038  ui->cmbEncoding->setCurrentIndex(insert);
1039  }
1040 
1041  if ( codecForEnc == KateGlobalConfig::global()->fallbackCodec() )
1042  {
1043  // adjust index for fallback config, has no default!
1044  ui->cmbEncodingFallback->setCurrentIndex(insert-1);
1045  }
1046 
1047  insert++;
1048  }
1049  }
1050 
1051  // encoding detection
1052  ui->cmbEncodingDetection->clear ();
1053  bool found = false;
1054  for (int i = 0; !KEncodingProber::nameForProberType ((KEncodingProber::ProberType) i).isEmpty(); ++i) {
1055  ui->cmbEncodingDetection->addItem (KEncodingProber::nameForProberType ((KEncodingProber::ProberType) i));
1056  if (i == KateGlobalConfig::global()->proberType()) {
1057  ui->cmbEncodingDetection->setCurrentIndex(ui->cmbEncodingDetection->count()-1);
1058  found = true;
1059  }
1060  }
1061  if (!found)
1062  ui->cmbEncodingDetection->setCurrentIndex(KEncodingProber::Universal);
1063 
1064 
1065  // eol
1066  ui->cmbEOL->setCurrentIndex(KateDocumentConfig::global()->eol());
1067  ui->chkDetectEOL->setChecked(KateDocumentConfig::global()->allowEolDetection());
1068  ui->chkEnableBOM->setChecked(KateDocumentConfig::global()->bom());
1069  ui->lineLengthLimit->setValue(KateDocumentConfig::global()->lineLengthLimit());
1070 
1071  ui->cbRemoveTrailingSpaces->setCurrentIndex(KateDocumentConfig::global()->removeSpaces());
1072  ui->chkNewLineAtEof->setChecked(KateDocumentConfig::global()->newLineAtEof());
1073  uiadv->sbConfigFileSearchDepth->setValue(KateDocumentConfig::global()->searchDirConfigDepth());
1074 
1075  // other stuff
1076  uint f ( KateDocumentConfig::global()->backupFlags() );
1077  uiadv->chkBackupLocalFiles->setChecked( f & KateDocumentConfig::LocalFiles );
1078  uiadv->chkBackupRemoteFiles->setChecked( f & KateDocumentConfig::RemoteFiles );
1079  uiadv->edtBackupPrefix->setText( KateDocumentConfig::global()->backupPrefix() );
1080  uiadv->edtBackupSuffix->setText( KateDocumentConfig::global()->backupSuffix() );
1081  uiadv->chkNoSync->setChecked( KateDocumentConfig::global()->swapFileNoSync() );
1082 }
1083 
1084 void KateSaveConfigTab::reset()
1085 {
1086  modeConfigPage->reset();
1087 }
1088 
1089 void KateSaveConfigTab::defaults()
1090 {
1091  modeConfigPage->defaults();
1092 
1093  ui->cbRemoveTrailingSpaces->setCurrentIndex(0);
1094 
1095  uiadv->chkBackupLocalFiles->setChecked( true );
1096  uiadv->chkBackupRemoteFiles->setChecked( false );
1097  uiadv->edtBackupPrefix->setText( "" );
1098  uiadv->edtBackupSuffix->setText( "~" );
1099  uiadv->chkNoSync->setChecked( false );
1100 }
1101 
1102 //END KateSaveConfigTab
1103 
1104 //BEGIN KatePartPluginConfigPage
1105 KatePartPluginConfigPage::KatePartPluginConfigPage (QWidget *parent)
1106  : KateConfigPage (parent, "")
1107 {
1108  QVBoxLayout *layout = new QVBoxLayout;
1109  layout->setMargin(0);
1110 
1111  plugins.clear();
1112 
1113  int i = 0;
1114  foreach (const KatePartPluginInfo &info, KatePartPluginManager::self()->pluginList())
1115  {
1116  KPluginInfo it(info.service());
1117  it.setPluginEnabled(info.load);
1118  plugins.append(it);
1119  i++;
1120  }
1121 
1122  selector = new KPluginSelector(0);
1123 
1124  connect(selector, SIGNAL(changed(bool)), this, SLOT(slotChanged()));
1125  connect(selector, SIGNAL(configCommitted(QByteArray)), this, SLOT(slotChanged()));
1126 
1127  selector->addPlugins(plugins, KPluginSelector::IgnoreConfigFile, i18n("Editor Plugins"), "Editor");
1128 
1129  layout->addWidget(selector);
1130  setLayout(layout);
1131 }
1132 
1133 KatePartPluginConfigPage::~KatePartPluginConfigPage ()
1134 {
1135 }
1136 
1137 void KatePartPluginConfigPage::apply ()
1138 {
1139  selector->updatePluginsState();
1140 
1141  KatePartPluginList &katePluginList = KatePartPluginManager::self()->pluginList();
1142  for (int i=0; i < plugins.count(); i++) {
1143  if (plugins[i].isPluginEnabled()) {
1144  if (!katePluginList[i].load) {
1145  KatePartPluginManager::self()->loadPlugin(katePluginList[i]);
1146  KatePartPluginManager::self()->enablePlugin(katePluginList[i]);
1147  }
1148  } else {
1149  if (katePluginList[i].load) {
1150  KatePartPluginManager::self()->disablePlugin(katePluginList[i]);
1151  KatePartPluginManager::self()->unloadPlugin(katePluginList[i]);
1152  }
1153  }
1154  }
1155 }
1156 
1157 void KatePartPluginConfigPage::reload ()
1158 {
1159  selector->load();
1160 }
1161 
1162 void KatePartPluginConfigPage::reset ()
1163 {
1164  selector->load();
1165 }
1166 
1167 void KatePartPluginConfigPage::defaults ()
1168 {
1169  selector->defaults();
1170 }
1171 //END KatePartPluginConfigPage
1172 
1173 
1174 //BEGIN KateHlDownloadDialog
1175 KateHlDownloadDialog::KateHlDownloadDialog(QWidget *parent, const char *name, bool modal)
1176  : KDialog( parent )
1177 {
1178  setCaption( i18n("Highlight Download") );
1179  setButtons( User1 | Close );
1180  setButtonGuiItem( User1, KGuiItem(i18n("&Install")) );
1181  setDefaultButton( User1 );
1182  setObjectName( name );
1183  setModal( modal );
1184 
1185  KVBox* vbox = new KVBox(this);
1186  setMainWidget(vbox);
1187  vbox->setSpacing(-1);
1188  new QLabel(i18n("Select the syntax highlighting files you want to update:"), vbox);
1189  list = new QTreeWidget(vbox);
1190  list->setColumnCount(4);
1191  list->setHeaderLabels(QStringList() << "" << i18n("Name") << i18n("Installed") << i18n("Latest"));
1192  list->setSelectionMode(QAbstractItemView::MultiSelection);
1193  list->setAllColumnsShowFocus(true);
1194  list->setRootIsDecorated(false);
1195  list->setColumnWidth(0, 22);
1196 
1197  new QLabel(i18n("<b>Note:</b> New versions are selected automatically."), vbox);
1198  setButtonIcon(User1, KIcon("dialog-ok"));
1199 
1200  transferJob = KIO::get(
1201  KUrl(QString(HLDOWNLOADPATH)
1202  + QString("update-")
1203  + KateGlobal::katePartVersion()
1204  + QString(".xml")), KIO::Reload );
1205  connect(transferJob, SIGNAL(data(KIO::Job*,QByteArray)),
1206  this, SLOT(listDataReceived(KIO::Job*,QByteArray)));
1207 // void data( KIO::Job *, const QByteArray &data);
1208  resize(450, 400);
1209  connect(this,SIGNAL(user1Clicked()),this,SLOT(slotUser1()));
1210 }
1211 
1212 KateHlDownloadDialog::~KateHlDownloadDialog(){}
1213 
1219 unsigned KateHlDownloadDialog::parseVersion(const QString& version_string)
1220 {
1221  unsigned vn[3] = {0, 0, 0};
1222  unsigned idx = 0;
1223  foreach (const QString& n, version_string.split("."))
1224  {
1225  vn[idx++] = n.toUInt();
1226  if (idx == sizeof(vn))
1227  break;
1228  }
1229  return KDE_MAKE_VERSION(vn[0], vn[1], vn[2]);
1230 }
1231 
1232 void KateHlDownloadDialog::listDataReceived(KIO::Job *, const QByteArray &data)
1233 {
1234  if (!transferJob || transferJob->isErrorPage())
1235  {
1236  enableButton( User1, false );
1237  if (data.size()==0)
1238  KMessageBox::error(this,i18n("The list of highlightings could not be found on / retrieved from the server"));
1239  return;
1240  }
1241 
1242  listData+=QString(data);
1243  kDebug(13000)<<QString("CurrentListData: ")<<listData;
1244  kDebug(13000)<<QString("Data length: %1").arg(data.size());
1245  kDebug(13000)<<QString("listData length: %1").arg(listData.length());
1246  if (data.size()==0)
1247  {
1248  if (listData.length()>0)
1249  {
1250  QString installedVersion;
1251  KateHlManager *hlm=KateHlManager::self();
1252  QDomDocument doc;
1253  doc.setContent(listData);
1254  QDomElement DocElem=doc.documentElement();
1255  QDomNode n=DocElem.firstChild();
1256  KateHighlighting *hl = 0;
1257 
1258  if (n.isNull()) kDebug(13000)<<"There is no usable childnode";
1259  while (!n.isNull())
1260  {
1261  installedVersion=" --";
1262 
1263  QDomElement e=n.toElement();
1264  if (!e.isNull())
1265  kDebug(13000)<<QString("NAME: ")<<e.tagName()<<QString(" - ")<<e.attribute("name");
1266  n=n.nextSibling();
1267 
1268  QString Name=e.attribute("name");
1269 
1270  for (int i=0;i<hlm->highlights();i++)
1271  {
1272  hl=hlm->getHl(i);
1273  if (hl && hl->name()==Name)
1274  {
1275  installedVersion=" "+hl->version();
1276  break;
1277  }
1278  else hl = 0;
1279  }
1280 
1281  // autoselect entry if new or updated.
1282  QTreeWidgetItem* entry = new QTreeWidgetItem(list);
1283  entry->setText(0, "");
1284  entry->setText(1, e.attribute("name"));
1285  entry->setText(2, installedVersion);
1286  entry->setText(3, e.attribute("version"));
1287  entry->setText(4, e.attribute("url"));
1288 
1289  bool is_fresh = false;
1290  if (hl)
1291  {
1292  unsigned prev_version = parseVersion(hl->version());
1293  unsigned next_version = parseVersion(e.attribute("version"));
1294  is_fresh = prev_version < next_version;
1295  }
1296  else is_fresh = true;
1297  if (is_fresh)
1298  {
1299  entry->treeWidget()->setItemSelected(entry, true);
1300  entry->setIcon(0, SmallIcon(("get-hot-new-stuff")));
1301  }
1302  }
1303  list->resizeColumnToContents(1);
1304  list->sortItems(1, Qt::AscendingOrder);
1305  }
1306  }
1307 }
1308 
1309 void KateHlDownloadDialog::slotUser1()
1310 {
1311  QString destdir=KGlobal::dirs()->saveLocation("data","katepart/syntax/");
1312  foreach (QTreeWidgetItem *it, list->selectedItems())
1313  {
1314  KUrl src(it->text(4));
1315  QString filename=src.fileName(KUrl::ObeyTrailingSlash);
1316  QString dest = destdir+filename;
1317 
1318  KIO::NetAccess::download(src,dest, this);
1319  }
1320 
1321  // update Config !!
1322  // this rewrites the cache....
1323  KateSyntaxDocument doc (KateHlManager::self()->getKConfig(), true);
1324 }
1325 //END KateHlDownloadDialog
1326 
1327 //BEGIN KateGotoBar
1328 KateGotoBar::KateGotoBar(KTextEditor::View *view, QWidget *parent)
1329  : KateViewBarWidget( true, parent )
1330  , m_view( view )
1331 {
1332  Q_ASSERT( m_view != 0 ); // this bar widget is pointless w/o a view
1333 
1334  QHBoxLayout *topLayout = new QHBoxLayout( centralWidget() );
1335  topLayout->setMargin(0);
1336  gotoRange = new KIntSpinBox(centralWidget());
1337 
1338  QLabel *label = new QLabel(i18n("&Go to line:"), centralWidget() );
1339  label->setBuddy(gotoRange);
1340 
1341  QToolButton *btnOK = new QToolButton(centralWidget());
1342  btnOK->setAutoRaise(true);
1343  btnOK->setIcon(QIcon(SmallIcon("go-jump")));
1344  btnOK->setText(i18n("Go"));
1345  btnOK->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
1346  connect(btnOK, SIGNAL(clicked()), this, SLOT(gotoLine()));
1347 
1348  topLayout->addWidget(label);
1349  topLayout->addWidget(gotoRange, 1);
1350  topLayout->setStretchFactor( gotoRange, 0 );
1351  topLayout->addWidget(btnOK);
1352  topLayout->addStretch();
1353 
1354  setFocusProxy(gotoRange);
1355 }
1356 
1357 void KateGotoBar::updateData()
1358 {
1359  gotoRange->setMaximum(m_view->document()->lines());
1360  if (!isVisible())
1361  {
1362  gotoRange->setValue(m_view->cursorPosition().line() + 1);
1363  gotoRange->adjustSize(); // ### does not respect the range :-(
1364  }
1365  gotoRange->setFocus(Qt::OtherFocusReason);
1366  gotoRange->selectAll();
1367 }
1368 
1369 void KateGotoBar::keyPressEvent(QKeyEvent* event)
1370 {
1371  int key = event->key();
1372  if (key == Qt::Key_Return || key == Qt::Key_Enter) {
1373  gotoLine();
1374  return;
1375  }
1376  KateViewBarWidget::keyPressEvent(event);
1377 }
1378 
1379 void KateGotoBar::gotoLine()
1380 {
1381  KateView *kv = qobject_cast<KateView*>(m_view);
1382  if (kv && kv->selection() && !kv->config()->persistentSelection()) {
1383  kv->clearSelection();
1384  }
1385 
1386  m_view->setCursorPosition( KTextEditor::Cursor(gotoRange->value() - 1, 0) );
1387  m_view->setFocus();
1388  emit hideMe();
1389 }
1390 //END KateGotoBar
1391 
1392 //BEGIN KateDictionaryBar
1393 KateDictionaryBar::KateDictionaryBar(KateView* view, QWidget *parent)
1394  : KateViewBarWidget( true, parent )
1395  , m_view( view )
1396 {
1397  Q_ASSERT(m_view != 0); // this bar widget is pointless w/o a view
1398 
1399  QHBoxLayout *topLayout = new QHBoxLayout(centralWidget());
1400  topLayout->setMargin(0);
1401  //topLayout->setSpacing(spacingHint());
1402  m_dictionaryComboBox = new Sonnet::DictionaryComboBox(centralWidget());
1403  connect(m_dictionaryComboBox, SIGNAL(dictionaryChanged(QString)),
1404  this, SLOT(dictionaryChanged(QString)));
1405  connect(view->doc(), SIGNAL(defaultDictionaryChanged(KateDocument*)),
1406  this, SLOT(updateData()));
1407  QLabel *label = new QLabel(i18n("Dictionary:"), centralWidget());
1408  label->setBuddy(m_dictionaryComboBox);
1409 
1410  topLayout->addWidget(label);
1411  topLayout->addWidget(m_dictionaryComboBox, 1);
1412  topLayout->setStretchFactor(m_dictionaryComboBox, 0);
1413  topLayout->addStretch();
1414 }
1415 
1416 KateDictionaryBar::~KateDictionaryBar()
1417 {
1418 }
1419 
1420 void KateDictionaryBar::updateData()
1421 {
1422  KateDocument *document = m_view->doc();
1423  QString dictionary = document->defaultDictionary();
1424  if(dictionary.isEmpty()) {
1425  dictionary = Sonnet::Speller().defaultLanguage();
1426  }
1427  m_dictionaryComboBox->setCurrentByDictionary(dictionary);
1428 }
1429 
1430 void KateDictionaryBar::dictionaryChanged(const QString& dictionary)
1431 {
1432  KTextEditor::Range selection = m_view->selectionRange();
1433  if(selection.isValid() && !selection.isEmpty()) {
1434  m_view->doc()->setDictionary(dictionary, selection);
1435  }
1436  else {
1437  m_view->doc()->setDefaultDictionary(dictionary);
1438  }
1439 }
1440 
1441 //END KateGotoBar
1442 
1443 
1444 //BEGIN KateModOnHdPrompt
1445 KateModOnHdPrompt::KateModOnHdPrompt( KateDocument *doc,
1446  KTextEditor::ModificationInterface::ModifiedOnDiskReason modtype,
1447  const QString &reason,
1448  QWidget *parent )
1449  : KDialog( parent ),
1450  m_doc( doc ),
1451  m_modtype ( modtype ),
1452  m_proc( 0 ),
1453  m_diffFile( 0 )
1454 {
1455  setButtons( Ok | Apply | Cancel | User1 );
1456 
1457  QString title, okText, okIcon, okToolTip;
1458  if ( modtype == KTextEditor::ModificationInterface::OnDiskDeleted )
1459  {
1460  title = i18n("File Was Deleted on Disk");
1461  okText = i18n("&Save File As...");
1462  okIcon = "document-save-as";
1463  okToolTip = i18n("Lets you select a location and save the file again.");
1464  } else {
1465  title = i18n("File Changed on Disk");
1466  okText = i18n("&Reload File");
1467  okIcon = "view-refresh";
1468  okToolTip = i18n("Reload the file from disk. If you have unsaved changes, "
1469  "they will be lost.");
1470  }
1471 
1472  setButtonText( Ok, okText );
1473  setButtonIcon( Ok, KIcon( okIcon ) );
1474  setButtonText( Apply, i18n("&Ignore Changes") );
1475  setButtonIcon( Apply, KIcon( "dialog-warning" ) );
1476 
1477  setButtonToolTip( Ok, okToolTip );
1478  setButtonToolTip( Apply, i18n("Ignore the changes. You will not be prompted again.") );
1479  setButtonToolTip( Cancel, i18n("Do nothing. Next time you focus the file, "
1480  "or try to save it or close it, you will be prompted again.") );
1481 
1482  setCaption( title );
1483 
1484  QWidget *w = new QWidget(this);
1485  ui = new Ui::ModOnHdWidget();
1486  ui->setupUi( w );
1487  setMainWidget( w );
1488 
1489  ui->lblIcon->setPixmap( DesktopIcon("dialog-warning" ) );
1490  ui->lblText->setText( reason + "\n\n" + i18n("What do you want to do?") );
1491 
1492  // If the file isn't deleted, present a diff button, and a overwrite action.
1493  if ( modtype != KTextEditor::ModificationInterface::OnDiskDeleted )
1494  {
1495  setButtonGuiItem( User1, KStandardGuiItem::overwrite() );
1496  setButtonToolTip( User1, i18n("Overwrite the disk file with the editor content.") );
1497  connect( ui->btnDiff, SIGNAL(clicked()), this, SLOT(slotDiff()) );
1498  }
1499  else
1500  {
1501  ui->chkIgnoreWhiteSpaces->setVisible( false );
1502  ui->btnDiff->setVisible( false );
1503  showButton( User1, false );
1504  }
1505 }
1506 
1507 KateModOnHdPrompt::~KateModOnHdPrompt()
1508 {
1509  delete m_proc;
1510  m_proc = 0;
1511  if (m_diffFile) {
1512  m_diffFile->setAutoRemove(true);
1513  delete m_diffFile;
1514  m_diffFile = 0;
1515  }
1516  delete ui;
1517 }
1518 
1519 void KateModOnHdPrompt::slotDiff()
1520 {
1521  if (m_diffFile)
1522  return;
1523 
1524  m_diffFile = new KTemporaryFile();
1525  m_diffFile->open();
1526 
1527  // Start a KProcess that creates a diff
1528  m_proc = new KProcess( this );
1529  m_proc->setOutputChannelMode( KProcess::MergedChannels );
1530  *m_proc << "diff" << QString(ui->chkIgnoreWhiteSpaces->isChecked() ? "-ub" : "-u")
1531  << "-" << m_doc->url().toLocalFile();
1532  connect( m_proc, SIGNAL(readyRead()), this, SLOT(slotDataAvailable()) );
1533  connect( m_proc, SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(slotPDone()) );
1534 
1535  setCursor( Qt::WaitCursor );
1536  // disable the button and checkbox, to hinder the user to run it twice.
1537  ui->chkIgnoreWhiteSpaces->setEnabled( false );
1538  ui->btnDiff->setEnabled( false );
1539 
1540  m_proc->start();
1541 
1542  QTextStream ts(m_proc);
1543  int lastln = m_doc->lines();
1544  for ( int l = 0; l < lastln; ++l )
1545  ts << m_doc->line( l ) << '\n';
1546  ts.flush();
1547  m_proc->closeWriteChannel();
1548 }
1549 
1550 void KateModOnHdPrompt::slotDataAvailable()
1551 {
1552  m_diffFile->write(m_proc->readAll());
1553 }
1554 
1555 void KateModOnHdPrompt::slotPDone()
1556 {
1557  setCursor( Qt::ArrowCursor );
1558  ui->chkIgnoreWhiteSpaces->setEnabled( true );
1559  ui->btnDiff->setEnabled( true );
1560 
1561  const QProcess::ExitStatus es = m_proc->exitStatus();
1562  delete m_proc;
1563  m_proc = 0;
1564 
1565  if ( es != QProcess::NormalExit )
1566  {
1567  KMessageBox::sorry( this,
1568  i18n("The diff command failed. Please make sure that "
1569  "diff(1) is installed and in your PATH."),
1570  i18n("Error Creating Diff") );
1571  delete m_diffFile;
1572  m_diffFile = 0;
1573  return;
1574  }
1575 
1576  if ( m_diffFile->size() == 0 )
1577  {
1578  KMessageBox::information( this,
1579  i18n("Besides white space changes, the files are identical."),
1580  i18n("Diff Output") );
1581  delete m_diffFile;
1582  m_diffFile = 0;
1583  return;
1584  }
1585 
1586  m_diffFile->setAutoRemove(false);
1587  KUrl url = KUrl::fromPath(m_diffFile->fileName());
1588  delete m_diffFile;
1589  m_diffFile = 0;
1590 
1591  // KRun::runUrl should delete the file, once the client exits
1592  KRun::runUrl( url, "text/x-patch", this, true );
1593 }
1594 
1595 void KateModOnHdPrompt::slotButtonClicked(int button)
1596 {
1597  switch(button)
1598  {
1599  case Default:
1600  case Ok:
1601  done( (m_modtype == KTextEditor::ModificationInterface::OnDiskDeleted) ?
1602  Save : Reload );
1603  break;
1604  case Apply:
1605  {
1606  if ( KMessageBox::warningContinueCancel(
1607  this,
1608  i18n("Ignoring means that you will not be warned again (unless "
1609  "the disk file changes once more): if you save the document, you "
1610  "will overwrite the file on disk; if you do not save then the disk "
1611  "file (if present) is what you have."),
1612  i18n("You Are on Your Own"),
1613  KStandardGuiItem::cont(),
1614  KStandardGuiItem::cancel(),
1615  "kate_ignore_modonhd" ) != KMessageBox::Continue )
1616  return;
1617  done( Ignore );
1618  break;
1619  }
1620  case User1:
1621  done( Overwrite );
1622  break;
1623  default:
1624  KDialog::slotButtonClicked(button);
1625  }
1626 }
1627 
1628 //END KateModOnHdPrompt
1629 
1630 // kate: space-indent on; indent-width 2; replace-tabs on;
KateModOnHdPrompt::Ignore
Definition: katedialogs.h:403
KateDocument::line
virtual QString line(int line) const
Definition: katedocument.cpp:447
KStandardGuiItem::cancel
KGuiItem cancel()
kfontdialog.h
KStandardDirs::saveLocation
QString saveLocation(const char *type, const QString &suffix=QString(), bool create=true) const
KDE_MAKE_VERSION
#define KDE_MAKE_VERSION(a, b, c)
knuminput.h
KateNavigationConfigTab::reload
void reload()
Definition: katedialogs.cpp:607
KateDocumentConfig::setKeepExtraSpaces
void setKeepExtraSpaces(bool on)
Definition: kateconfig.cpp:557
KCharsets::codecForName
QTextCodec * codecForName(const QString &name) const
KTextEditor::Editor::simpleMode
bool simpleMode() const
KateNavigationConfigTab::KateNavigationConfigTab
KateNavigationConfigTab(QWidget *parent)
Definition: katedialogs.cpp:550
kcombobox.h
KateDocumentConfig::LocalFiles
Definition: kateconfig.h:279
Apply
KatePartPluginInfo
Definition: katepartpluginmanager.h:39
KateViewConfig::setWordCompletionRemoveTail
void setWordCompletionRemoveTail(bool on)
Definition: kateconfig.cpp:1822
KTextEditor::ConfigPage::changed
void changed()
KPluginInfo
KateConfigPage::KateConfigPage
KateConfigPage(QWidget *parent=0, const char *name=0)
Definition: katedialogs.cpp:124
kateview.h
KateSaveConfigTab::defaults
void defaults()
Definition: katedialogs.cpp:1089
KProcess
Kate::Script::i18n
QScriptValue i18n(QScriptContext *context, QScriptEngine *engine)
i18n("text", arguments [optional])
Definition: katescripthelpers.cpp:186
ktabwidget.h
KateDocumentConfig::setIndentationMode
void setIndentationMode(const QString &identationMode)
Definition: kateconfig.cpp:459
kcharsets.h
netaccess.h
KateViGlobal::getMapping
const QString getMapping(MappingMode mode, const QString &from, bool decode=false) const
Definition: kateviglobal.cpp:186
KVBox
KateViewConfig::setViInputModeStealKeys
void setViInputModeStealKeys(bool on)
Definition: kateconfig.cpp:1724
KTextEditor::View::setCursorPosition
virtual bool setCursorPosition(Cursor position)=0
KMessageBox::Continue
KateView::clearSelection
bool clearSelection()
Definition: kateview.cpp:1966
KateEditGeneralConfigTab::defaults
void defaults()
Definition: katedialogs.h:210
KateGlobal::kateDocuments
QList< KateDocument * > & kateDocuments()
return a list of all registered docs
Definition: kateglobal.h:266
KateSpellCheckConfigTab::~KateSpellCheckConfigTab
~KateSpellCheckConfigTab()
Definition: katedialogs.cpp:517
kdebug.h
DesktopIcon
QPixmap DesktopIcon(const QString &name, int force_size, int state, const QStringList &overlays)
KateViGlobal::clearMappings
void clearMappings(MappingMode mode)
Definition: kateviglobal.cpp:242
KateSaveConfigTab::KateSaveConfigTab
KateSaveConfigTab(QWidget *parent)
Definition: katedialogs.cpp:893
KateHlManager
Definition: katesyntaxmanager.h:48
KateDocumentConfig::RemoteFiles
Definition: kateconfig.h:280
kapplication.h
KateViewDefaultsConfig::reload
void reload()
Definition: katedialogs.cpp:865
KateSpellCheckConfigTab::defaults
void defaults()
Definition: katedialogs.h:271
KateDocumentConfig::setTabHandling
void setTabHandling(uint tabHandling)
Definition: kateconfig.cpp:482
Sonnet::ConfigWidget::save
void save()
QTreeWidget
KateDocumentConfig::setAllowEolDetection
void setAllowEolDetection(bool on)
Definition: kateconfig.cpp:904
KTextEditor::Range::isValid
virtual bool isValid() const
kcolorbutton.h
KateDocumentConfig::setNewLineAtEof
void setNewLineAtEof(bool on)
Definition: kateconfig.cpp:725
kglobalsettings.h
KateViInputModeConfigTab::~KateViInputModeConfigTab
~KateViInputModeConfigTab()
Definition: katedialogs.cpp:365
KateDocumentConfig::tabIndents
Definition: kateconfig.h:196
KateCompletionConfigTab::reset
void reset()
Definition: katedialogs.h:188
KateDocumentConfig::setBackupSuffix
void setBackupSuffix(const QString &suffix)
Definition: kateconfig.cpp:988
KProcess::MergedChannels
KateDocument::simpleMode
static bool simpleMode()
Definition: katedocument.cpp:4787
kactioncollection.h
KateViewConfig::setIconBar
void setIconBar(bool on)
Definition: kateconfig.cpp:1494
kateautoindent.h
label
QString label(StandardShortcut id)
KMessageBox::information
static void information(QWidget *parent, const QString &text, const QString &caption=QString(), const QString &dontShowAgainName=QString(), Options options=Notify)
KateViewConfig::setScrollBarMiniMapAll
void setScrollBarMiniMapAll(bool on)
Definition: kateconfig.cpp:1452
KateViewConfig::setLineModification
void setLineModification(bool on)
Definition: kateconfig.cpp:1536
KateHlDownloadDialog::KateHlDownloadDialog
KateHlDownloadDialog(QWidget *parent, const char *name, bool modal)
Definition: katedialogs.cpp:1175
KateViGlobal::MappingRecursion
MappingRecursion
Definition: kateviglobal.h:60
kconfig.h
KateConfig::configEnd
void configEnd()
end a config change transaction, update the concerned documents/views/renderers
Definition: kateconfig.cpp:63
KateViGlobal::getMappings
const QStringList getMappings(MappingMode mode, bool decode=false) const
Definition: kateviglobal.cpp:196
QWidget
KateViewConfig::setWordCompletion
void setWordCompletion(bool on)
Definition: kateconfig.cpp:1782
KateEditConfigTab::reload
void reload()
Definition: katedialogs.cpp:724
KateIndentConfigTab::reload
void reload()
Definition: katedialogs.cpp:238
KGlobal::dirs
KStandardDirs * dirs()
KateSpellCheckConfigTab::ui
Ui::SpellCheckConfigWidget * ui
Definition: katedialogs.h:264
katedocument.h
KateEditConfigTab::KateEditConfigTab
KateEditConfigTab(QWidget *parent)
Definition: katedialogs.cpp:677
KateIndentConfigTab
Definition: katedialogs.h:152
KIO::get
TransferJob * get(const KUrl &url, LoadType reload=NoReload, JobFlags flags=DefaultFlags)
KateViInputModeConfigTab::reload
void reload()
Definition: katedialogs.cpp:401
KatePartPluginInfo::service
KService::Ptr service() const
Definition: katepartpluginmanager.h:46
plugin.h
KateCompletionConfigTab::defaults
void defaults()
Definition: katedialogs.h:189
ModeConfigPage
Definition: katemodeconfigpage.h:37
KUrl::fromPath
static KUrl fromPath(const QString &text)
KatePartPluginConfigPage::reload
void reload()
Definition: katedialogs.cpp:1157
KateDictionaryBar::updateData
void updateData()
Definition: katedialogs.cpp:1420
kiconloader.h
KUrl::toLocalFile
QString toLocalFile(AdjustPathOption trailing=LeaveTrailingSlash) const
KProcess::setOutputChannelMode
void setOutputChannelMode(OutputChannelMode mode)
KateGlobal::self
static KateGlobal * self()
Kate Part Internal stuff ;)
Definition: kateglobal.cpp:462
KateDocumentConfig::setSwapFileNoSync
void setSwapFileNoSync(bool on)
Definition: kateconfig.cpp:1009
KDialog
QString
KTemporaryFile
KateViInputModeConfigTab::apply
void apply()
Definition: katedialogs.cpp:375
KateSaveConfigTab::removeSpaces
QCheckBox * removeSpaces
Definition: katedialogs.h:337
katedialogs.h
KateDictionaryBar::~KateDictionaryBar
virtual ~KateDictionaryBar()
Definition: katedialogs.cpp:1416
KateModOnHdPrompt::~KateModOnHdPrompt
~KateModOnHdPrompt()
Definition: katedialogs.cpp:1507
KateSpellCheckConfigTab::reload
void reload()
Definition: katedialogs.cpp:543
ModeConfigPage::reload
void reload()
Definition: katemodeconfigpage.cpp:123
KateEditGeneralConfigTab::reload
void reload()
Definition: katedialogs.cpp:665
kDebug
static QDebug kDebug(bool cond, int area=KDE_DEFAULT_DEBUG_AREA)
KTextEditor::Cursor
klocale.h
KateCompletionConfigTab::ui
Ui::CompletionConfigTab * ui
Definition: katedialogs.h:183
KateModOnHdPrompt::Overwrite
Definition: katedialogs.h:402
KateConfigPage::m_changed
bool m_changed
Definition: katedialogs.h:110
ki18np
KLocalizedString ki18np(const char *singular, const char *plural)
insert
KGuiItem insert()
KateConfigPage::slotChanged
void slotChanged()
Definition: katedialogs.cpp:135
kplugininfo.h
spellcheck.h
KatePartPluginManager::enablePlugin
void enablePlugin(KatePartPluginInfo &item)
Definition: katepartpluginmanager.cpp:247
KParts::ReadOnlyPart::url
KUrl url
KateViGlobal::addMapping
void addMapping(MappingMode mode, const QString &from, const QString &to, MappingRecursion recursion)
Definition: kateviglobal.cpp:171
KUrl
KateViewConfig::setScrollBarMarks
void setScrollBarMarks(bool on)
Definition: kateconfig.cpp:1410
KateSaveConfigTab::reload
void reload()
Definition: katedialogs.cpp:1015
KGlobal::config
KSharedConfigPtr config()
KateModOnHdPrompt::slotButtonClicked
virtual void slotButtonClicked(int button)
Definition: katedialogs.cpp:1595
katebuffer.h
KatePartPluginManager::unloadPlugin
void unloadPlugin(KatePartPluginInfo &item)
Definition: katepartpluginmanager.cpp:226
KateViewConfig::setDynWordWrapAlignIndent
void setDynWordWrapAlignIndent(int indent)
Definition: kateconfig.cpp:1368
KateConfig::configStart
void configStart()
start some config changes this method is needed to init some kind of transaction for config changes...
Definition: kateconfig.cpp:53
KateCompletionConfigTab::apply
void apply()
Definition: katedialogs.cpp:307
KateView::selectionRange
virtual const KTextEditor::Range & selectionRange() const
Definition: kateview.cpp:2760
KateViewConfig::setScrollPastEnd
void setScrollPastEnd(bool on)
Definition: kateconfig.cpp:1862
Ok
kshortcutsdialog.h
KateViewBarWidget
Definition: kateviewhelpers.h:288
KateModOnHdPrompt::slotDiff
void slotDiff()
Show a diff between the document text and the disk file.
Definition: katedialogs.cpp:1519
KateDocumentConfig::setBackspaceIndents
void setBackspaceIndents(bool on)
Definition: kateconfig.cpp:599
kglobal.h
ModeConfigPage::defaults
void defaults()
Definition: katemodeconfigpage.cpp:144
kprocess.h
KateViewConfig::setViInputMode
void setViInputMode(bool on)
Definition: kateconfig.cpp:1698
KateViewBarWidget::centralWidget
QWidget * centralWidget()
Definition: kateviewhelpers.h:305
KateIndentConfigTab::KateIndentConfigTab
KateIndentConfigTab(QWidget *parent)
Definition: katedialogs.cpp:148
KateViInputModeConfigTab::ui
Ui::ViInputModeConfigWidget * ui
Definition: katedialogs.h:240
Close
KateNavigationConfigTab::apply
void apply()
Definition: katedialogs.cpp:584
KateDocument::setDefaultDictionary
void setDefaultDictionary(const QString &dict)
Definition: katedocument.cpp:5137
KateRendererConfig::setShowWholeBracketExpression
void setShowWholeBracketExpression(bool on)
Definition: kateconfig.cpp:2610
HLDOWNLOADPATH
#define HLDOWNLOADPATH
Definition: katedialogs.cpp:119
KateEditGeneralConfigTab::reset
void reset()
Definition: katedialogs.h:209
KateEditGeneralConfigTab::~KateEditGeneralConfigTab
~KateEditGeneralConfigTab()
Definition: katedialogs.cpp:640
KStandardGuiItem::overwrite
KGuiItem overwrite()
KatePartPluginConfigPage::reset
void reset()
Definition: katedialogs.cpp:1162
KatePartPluginManager::pluginList
KatePartPluginList & pluginList()
Definition: katepartpluginmanager.h:84
KateViewConfig::setAutoCenterLines
void setAutoCenterLines(int lines)
Definition: kateconfig.cpp:1578
KTextEditor::ModificationInterface::OnDiskDeleted
kateschema.h
KateSaveConfigTab::reset
void reset()
Definition: katedialogs.cpp:1084
KateDocument::setDictionary
void setDictionary(const QString &dict, const KTextEditor::Range &range)
Definition: katedocument.cpp:5057
KateHlDownloadDialog::slotUser1
void slotUser1()
Definition: katedialogs.cpp:1309
KateGlobalConfig::setProberType
void setProberType(KEncodingProber::ProberType proberType)
Definition: kateconfig.cpp:118
kmenu.h
katepartpluginmanager.h
KateViewDefaultsConfig::apply
void apply()
Definition: katedialogs.cpp:821
KateGlobal::katePartVersion
static QString katePartVersion()
Returns the current version of Kate Part: KDE X.Y.Z contains Kate Part X-1.Y.
Definition: kateglobal.cpp:59
KatePartPluginConfigPage::apply
void apply()
Definition: katedialogs.cpp:1137
KPluginInfo::setPluginEnabled
void setPluginEnabled(bool enabled)
KGuiItem
kateglobal.h
KateDocumentConfig::setWordWrapAt
void setWordWrapAt(int col)
Definition: kateconfig.cpp:520
KateEditConfigTab::apply
void apply()
Definition: katedialogs.cpp:713
KateDictionaryBar::dictionaryChanged
void dictionaryChanged(const QString &dictionary)
Definition: katedialogs.cpp:1430
KateViewDefaultsConfig::KateViewDefaultsConfig
KateViewDefaultsConfig(QWidget *parent)
Definition: katedialogs.cpp:756
KateDocumentConfig::tabInsertsTab
Definition: kateconfig.h:195
QStringList
KMessageBox::sorry
static void sorry(QWidget *parent, const QString &text, const QString &caption=QString(), Options options=Notify)
KateViewConfig::setWordCompletionMinimalWordLength
void setWordCompletionMinimalWordLength(int length)
Definition: kateconfig.cpp:1801
KateGotoBar::keyPressEvent
virtual void keyPressEvent(QKeyEvent *event)
Definition: katedialogs.cpp:1369
katesyntaxdocument.h
KateSpellCheckConfigTab::reset
void reset()
Definition: katedialogs.h:270
KTextEditor::View::document
virtual Document * document() const =0
Sonnet::ConfigWidget
KateViewBarWidget::hideMe
void hideMe()
KateDocument::lines
virtual int lines() const
Definition: katedocument.cpp:753
KateSyntaxDocument
Store and manage the information about Syntax Highlighting.
Definition: katesyntaxdocument.h:73
KIcon
KateConfigPage::hasChanged
bool hasChanged()
Definition: katedialogs.h:101
KateViewConfig::persistentSelection
bool persistentSelection() const
Definition: kateconfig.cpp:1669
KGlobal::charsets
KCharsets * charsets()
KateViewConfig::setPersistentSelection
void setPersistentSelection(bool on)
Definition: kateconfig.cpp:1677
KCharsets::encodingForName
QString encodingForName(const QString &descriptiveName) const
KateConfigPage::~KateConfigPage
virtual ~KateConfigPage()
Definition: katedialogs.cpp:131
KateDocumentConfig::setLineLengthLimit
void setLineLengthLimit(int limit)
Definition: kateconfig.cpp:1080
KateEditConfigTab::reset
void reset()
Definition: katedialogs.cpp:734
KateGotoBar::KateGotoBar
KateGotoBar(KTextEditor::View *view, QWidget *parent=0)
Definition: katedialogs.cpp:1328
KateRendererConfig::global
static KateRendererConfig * global()
Definition: kateconfig.h:613
KateSaveConfigTab::~KateSaveConfigTab
~KateSaveConfigTab()
Definition: katedialogs.cpp:955
KateAutoIndent::modeNumber
static uint modeNumber(const QString &name)
Maps name -> index.
Definition: kateautoindent.cpp:102
KateDocumentConfig::setSmartHome
void setSmartHome(bool on)
Definition: kateconfig.cpp:620
KTextEditor::View::cursorPosition
virtual Cursor cursorPosition() const =0
KateDocumentConfig::setRemoveSpaces
void setRemoveSpaces(int triState)
Remove trailing spaces on save.
Definition: kateconfig.cpp:704
kvbox.h
KateIndentConfigTab::reset
void reset()
Definition: katedialogs.h:166
KateGlobalConfig::global
static KateGlobalConfig * global()
Definition: kateconfig.h:109
KateDocumentConfig::setShowTabs
void setShowTabs(bool on)
Definition: kateconfig.cpp:641
KateRendererConfig::setShowIndentationLines
void setShowIndentationLines(bool on)
Definition: kateconfig.cpp:2589
KateView::selection
virtual bool selection() const
Definition: kateview.cpp:2008
KateDocumentConfig::encoding
const QString & encoding() const
Definition: kateconfig.cpp:788
KProcess::start
void start()
KateCompletionConfigTab::KateCompletionConfigTab
KateCompletionConfigTab(QWidget *parent)
Definition: katedialogs.cpp:269
KatePartPluginManager::self
static KatePartPluginManager * self()
Definition: katepartpluginmanager.cpp:70
KateDocumentConfig::setBackupPrefix
void setBackupPrefix(const QString &prefix)
Definition: kateconfig.cpp:975
KateRendererConfig::setWordWrapMarker
void setWordWrapMarker(bool on)
Definition: kateconfig.cpp:2165
KateView
Definition: kateview.h:78
KateViInputModeConfigTab
Definition: katedialogs.h:231
Sonnet::Speller
KTextEditor::Range
KateNavigationConfigTab::defaults
void defaults()
Definition: katedialogs.h:228
KateViGlobal::NonRecursive
Definition: kateviglobal.h:60
KateViGlobal::isMappingRecursive
bool isMappingRecursive(MappingMode mode, const QString &from) const
Definition: kateviglobal.cpp:213
KateHighlighting::version
const QString & version() const
Definition: katehighlight.h:157
KateDocumentConfig::setSearchDirConfigDepth
void setSearchDirConfigDepth(int depth)
Definition: kateconfig.cpp:1030
KIO::Reload
KateViInputModeConfigTab::KateViInputModeConfigTab
KateViInputModeConfigTab(QWidget *parent)
Definition: katedialogs.cpp:332
KateDocument
Definition: katedocument.h:74
KateViewConfig::setAutomaticCompletionInvocation
void setAutomaticCompletionInvocation(bool on)
Definition: kateconfig.cpp:1763
KateViGlobal::NormalModeMapping
Definition: kateviglobal.h:61
KatePartPluginManager::disablePlugin
void disablePlugin(KatePartPluginInfo &item)
Definition: katepartpluginmanager.cpp:274
Sonnet::DictionaryComboBox
KateEditConfigTab::~KateEditConfigTab
~KateEditConfigTab()
Definition: katedialogs.cpp:709
KateDocument::defaultDictionary
QString defaultDictionary() const
Definition: katedocument.cpp:5032
KateEditGeneralConfigTab
Definition: katedialogs.h:195
KateNavigationConfigTab::reset
void reset()
Definition: katedialogs.h:227
KateCompletionConfigTab
Definition: katedialogs.h:174
KateViInputModeConfigTab::reset
void reset()
Definition: katedialogs.h:245
KateHlDownloadDialog::~KateHlDownloadDialog
~KateHlDownloadDialog()
Definition: katedialogs.cpp:1212
ki18ncp
KLocalizedString ki18ncp(const char *ctxt, const char *singular, const char *plural)
kpushbutton.h
Cancel
KateViewConfig::setFoldingBar
void setFoldingBar(bool on)
Definition: kateconfig.cpp:1515
KateDocumentConfig::setAllowSimpleMode
void setAllowSimpleMode(bool on)
Definition: kateconfig.cpp:925
katevikeyparser.h
KEncodingProber::nameForProberType
static QString nameForProberType(ProberType proberType)
KateViInputModeConfigTab::defaults
void defaults()
Definition: katedialogs.h:246
KatePartPluginConfigPage::defaults
void defaults()
Definition: katedialogs.cpp:1167
KateGotoBar::gotoLine
void gotoLine()
Definition: katedialogs.cpp:1379
KateNavigationConfigTab::~KateNavigationConfigTab
~KateNavigationConfigTab()
Definition: katedialogs.cpp:579
kseparator.h
KateViewDefaultsConfig::defaults
void defaults()
Definition: katedialogs.cpp:889
KateIndentConfigTab::defaults
void defaults()
Definition: katedialogs.h:167
job.h
KTextEditor::ModificationInterface::ModifiedOnDiskReason
ModifiedOnDiskReason
KateDocumentConfig::setWordWrap
void setWordWrap(bool on)
Definition: kateconfig.cpp:499
KateSaveConfigTab::apply
void apply()
Definition: katedialogs.cpp:960
KateNavigationConfigTab
Definition: katedialogs.h:213
KateGotoBar::updateData
void updateData()
Definition: katedialogs.cpp:1357
kcolorcombo.h
KTextEditor::Cursor::line
virtual int line() const
krun.h
KateGlobal::viInputModeGlobal
KateViGlobal * viInputModeGlobal()
vi input mode global
Definition: kateglobal.h:338
ktemporaryfile.h
KateViGlobal::Recursive
Definition: kateviglobal.h:60
KIntSpinBox
KRun::runUrl
static bool runUrl(const KUrl &url, const QString &mimetype, QWidget *window, bool tempFile=false, bool runExecutables=true, const QString &suggestedFileName=QString(), const QByteArray &asn=QByteArray())
KateDocumentConfig::setEol
void setEol(int mode)
Definition: kateconfig.cpp:862
Sonnet::Speller::defaultLanguage
QString defaultLanguage() const
KateIndentConfigTab::ui
Ui::IndentationConfigWidget * ui
Definition: katedialogs.h:161
KateEditConfigTab::defaults
void defaults()
Definition: katedialogs.cpp:744
KateAutoIndent::modeName
const QString & modeName() const
mode name
Definition: kateautoindent.h:177
KateSaveConfigTab::allowEolDetection
QCheckBox * allowEolDetection
Definition: katedialogs.h:337
KateHlManager::getHl
KateHighlighting * getHl(int n)
Definition: katesyntaxmanager.cpp:108
KateDocumentConfig::setShowSpaces
void setShowSpaces(bool on)
Definition: kateconfig.cpp:662
kcolordialog.h
KateDocumentConfig::setPageUpDownMovesCursor
void setPageUpDownMovesCursor(bool on)
Definition: kateconfig.cpp:544
jobclasses.h
kstandarddirs.h
KateConfigPage
Definition: katedialogs.h:92
KateHighlighting
Definition: katehighlight.h:119
QLabel
KateSpellCheckConfigTab::KateSpellCheckConfigTab
KateSpellCheckConfigTab(QWidget *parent)
Definition: katedialogs.cpp:492
kmimetypechooser.h
KateIndentConfigTab::~KateIndentConfigTab
~KateIndentConfigTab()
Definition: katedialogs.cpp:193
KateViewConfig::setBookmarkSort
void setBookmarkSort(int mode)
Definition: kateconfig.cpp:1557
KateViewConfig::setSmartCopyCut
void setSmartCopyCut(bool on)
Definition: kateconfig.cpp:1841
KUrl::ObeyTrailingSlash
KateViewDefaultsConfig::~KateViewDefaultsConfig
~KateViewDefaultsConfig()
Definition: katedialogs.cpp:815
KateModOnHdPrompt::KateModOnHdPrompt
KateModOnHdPrompt(KateDocument *doc, KTextEditor::ModificationInterface::ModifiedOnDiskReason modtype, const QString &reason, QWidget *parent)
Definition: katedialogs.cpp:1445
KIO::Job
KateGlobalConfig::setFallbackEncoding
bool setFallbackEncoding(const QString &encoding)
Definition: kateconfig.cpp:138
KHBox::setSpacing
void setSpacing(int space)
KEncodingProber::ProberType
ProberType
KateDocumentConfig::setReplaceTabsDyn
void setReplaceTabsDyn(bool on)
Definition: kateconfig.cpp:683
SmallIcon
QPixmap SmallIcon(const QString &name, int force_size, int state, const QStringList &overlays)
KateModOnHdPrompt::Save
Definition: katedialogs.h:401
KateEditGeneralConfigTab::apply
void apply()
Definition: katedialogs.cpp:645
KateDocument::refreshOnTheFlyCheck
void refreshOnTheFlyCheck(const KTextEditor::Range &range=KTextEditor::Range::invalid())
Definition: katedocument.cpp:5194
ModeConfigPage::apply
void apply()
Definition: katemodeconfigpage.cpp:113
katemodeconfigpage.h
KateViewConfig::setLineNumbers
void setLineNumbers(bool on)
Definition: kateconfig.cpp:1389
KateModOnHdPrompt::Reload
Definition: katedialogs.h:400
KateView::doc
KateDocument * doc()
accessor to katedocument pointer
Definition: kateview.h:552
KateSpellCheckConfigTab
Definition: katedialogs.h:255
KatePartPluginConfigPage::KatePartPluginConfigPage
KatePartPluginConfigPage(QWidget *parent)
Definition: katedialogs.cpp:1105
KStandardGuiItem::cont
KGuiItem cont()
klineedit.h
QTabWidget
KateCompletionConfigTab::reload
void reload()
Definition: katedialogs.cpp:322
KateViewConfig::setScrollBarMiniMapWidth
void setScrollBarMiniMapWidth(int width)
Definition: kateconfig.cpp:1473
KateDocumentConfig::global
static KateDocumentConfig * global()
Definition: kateconfig.h:165
KateIndentConfigTab::apply
void apply()
Definition: katedialogs.cpp:211
KateEditGeneralConfigTab::KateEditGeneralConfigTab
KateEditGeneralConfigTab(QWidget *parent)
Definition: katedialogs.cpp:619
KateDocumentConfig::setIndentPastedText
void setIndentPastedText(bool on)
Definition: kateconfig.cpp:578
QToolButton
KateHighlighting::name
const QString & name() const
Definition: katehighlight.h:153
KateViewDefaultsConfig::reset
void reset()
Definition: katedialogs.cpp:887
KateCompletionConfigTab::~KateCompletionConfigTab
~KateCompletionConfigTab()
Definition: katedialogs.cpp:297
KatePartPluginInfo::load
bool load
Definition: katepartpluginmanager.h:43
KTextEditor::View
ModeConfigPage::reset
void reset()
Definition: katemodeconfigpage.cpp:139
KateViewConfig::setDynWordWrap
void setDynWordWrap(bool wrap)
Definition: kateconfig.cpp:1326
KateSpellCheckConfigTab::apply
void apply()
Definition: katedialogs.cpp:527
kmessagebox.h
KateDocumentConfig::setBom
void setBom(bool bom)
Definition: kateconfig.cpp:875
KTextEditor::Range::isEmpty
bool isEmpty() const
KateDocumentConfig::setTabWidth
void setTabWidth(int tabWidth)
Definition: kateconfig.cpp:411
KIO::NetAccess::download
static bool download(const KUrl &src, QString &target, QWidget *window)
KateView::config
KateViewConfig * config()
Configuration.
Definition: kateview.h:654
KateViKeyParser::self
static KateViKeyParser * self()
Definition: katevikeyparser.cpp:38
kateviglobal.h
kateconfig.h
KMessageBox::warningContinueCancel
static int warningContinueCancel(QWidget *parent, const QString &text, const QString &caption=QString(), const KGuiItem &buttonContinue=KStandardGuiItem::cont(), const KGuiItem &buttonCancel=KStandardGuiItem::cancel(), const QString &dontAskAgainName=QString(), Options options=Notify)
KateHlManager::self
static KateHlManager * self()
Definition: katesyntaxmanager.cpp:103
KateDocumentConfig::setIndentationWidth
void setIndentationWidth(int indentationWidth)
Definition: kateconfig.cpp:435
KateDictionaryBar::KateDictionaryBar
KateDictionaryBar(KateView *view, QWidget *parent=NULL)
Definition: katedialogs.cpp:1393
Default
KatePartPluginConfigPage::~KatePartPluginConfigPage
~KatePartPluginConfigPage()
Definition: katedialogs.cpp:1133
KateAutoIndent::listModes
static QStringList listModes()
List all possible modes by name, i.e.
Definition: kateautoindent.cpp:45
KateDocumentConfig::allowSimpleMode
bool allowSimpleMode() const
Definition: kateconfig.cpp:917
KMessageBox::error
static void error(QWidget *parent, const QString &text, const QString &caption=QString(), Options options=Notify)
Sonnet::DictionaryComboBox::setCurrentByDictionary
void setCurrentByDictionary(const QString &dictionary)
KateViewConfig::setScrollBarMiniMap
void setScrollBarMiniMap(bool on)
Definition: kateconfig.cpp:1431
KateViewConfig::setDynWordWrapIndicators
void setDynWordWrapIndicators(int mode)
Definition: kateconfig.cpp:1347
QList
KateDocumentConfig::setEncoding
bool setEncoding(const QString &encoding)
Definition: kateconfig.cpp:811
KTextEditor::Document::lines
virtual int lines() const =0
KateViewConfig::global
static KateViewConfig * global()
Definition: kateconfig.h:402
KateDocumentConfig::setBackupFlags
void setBackupFlags(uint flags)
Definition: kateconfig.cpp:946
KateDocumentConfig::tabSmart
indents in leading space, otherwise inserts tab
Definition: kateconfig.h:197
KateHlManager::highlights
int highlights()
Definition: katesyntaxmanager.cpp:355
KatePartPluginManager::loadPlugin
void loadPlugin(KatePartPluginInfo &item)
Definition: katepartpluginmanager.cpp:198
KEncodingProber::Universal
KTabWidget
KateSpellCheckConfigTab::m_sonnetConfigWidget
Sonnet::ConfigWidget * m_sonnetConfigWidget
Definition: katedialogs.h:265
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:31:51 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

Kate

Skip menu "Kate"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

applications API Reference

Skip menu "applications API Reference"
  •   kate
  •       kate
  •   KTextEditor
  •   Kate
  • Applications
  •   Libraries
  •     libkonq
  • Konsole

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal