26#include <tdeapplication.h>
27#include <KoUnitWidgets.h>
30#include <kdialogbase.h>
31#include <kiconloader.h>
33#include <kcolorbutton.h>
34#include "KPrVariableCollection.h"
36#include <tkcoloractions.h>
40#include <tqgroupbox.h>
41#include <tqvgroupbox.h>
45#include <tqcheckbox.h>
46#include <tqcombobox.h>
47#include <tqtabwidget.h>
48#include <tqwhatsthis.h>
50#include "KPrPenStyleWidget.h"
51#include "KPrBrushProperty.h"
52#include "KPrPieProperty.h"
53#include "KPrRectProperty.h"
54#include "KPrPolygonProperty.h"
58#include "KPrDocument.h"
63#include <knumvalidator.h>
64#include <tqlineedit.h>
65#include "KPrCommand.h"
66#include <tqvgroupbox.h>
67#include <tdefontdialog.h>
70#include <tdemessagebox.h>
71#include <tdeversion.h>
72#include <kurlrequesterdlg.h>
73#include <tdelistview.h>
74#include <tdefiledialog.h>
75#include <KoEditPath.h>
77#include <tdespell2/configwidget.h>
78#include <tdespell2/settings.h>
79#include <tdespell2/broker.h>
80using namespace KSpell2;
82KPrConfig::KPrConfig( KPrView* parent )
83 : KDialogBase(KDialogBase::IconList,i18n(
"Configure KPresenter") ,
84 KDialogBase::Ok | KDialogBase::Apply | KDialogBase::Cancel| KDialogBase::Default,
85 KDialogBase::Ok, parent)
88 m_doc = parent->kPresenterDoc();
89 TQVBox *page = addVBoxPage( i18n(
"Interface"), i18n(
"Interface"),
90 BarIcon(
"misc", TDEIcon::SizeMedium) );
91 _interfacePage=
new KPrConfigureInterfacePage( parent, page );
92 page = addVBoxPage( i18n(
"Color"), i18n(
"Color"),
93 BarIcon(
"colorize", TDEIcon::SizeMedium) );
94 _colorBackground =
new KPrConfigureColorBackground( parent, page );
96 page = addVBoxPage( i18n(
"Spelling"), i18n(
"Spellchecker Behavior"),
97 BarIcon(
"tools-check-spelling", TDEIcon::SizeMedium) );
98 _spellPage=
new KPrConfigureSpellPage(parent, page);
100 page = addVBoxPage( i18n(
"Misc"), i18n(
"Misc"),
101 BarIcon(
"misc", TDEIcon::SizeMedium) );
102 _miscPage=
new KPrConfigureMiscPage(parent, page);
104 page = addVBoxPage( i18n(
"Document"), i18n(
"Document Settings"),
105 BarIcon(
"application-x-kpresenter", TDEIcon::SizeMedium) );
107 _defaultDocPage=
new KPrConfigureDefaultDocPage(parent, page);
109 page = addVBoxPage( i18n(
"Tools"), i18n(
"Default Tools Settings"),
110 BarIcon(
"configure", TDEIcon::SizeMedium) );
112 _toolsPage=
new KPrConfigureToolsPage(parent, page);
114 page = addVBoxPage( i18n(
"Paths"), i18n(
"Path Settings"),
117 m_pathPage=
new KPrConfigurePathPage(parent, page);
119 if (KoSpeaker::isKttsdInstalled()) {
120 page = addVBoxPage( i18n(
"Abbreviation for Text-to-Speech",
"TTS"), i18n(
"Text-to-Speech Settings"),
121 BarIcon(
"access", TDEIcon::SizeMedium) );
122 m_ttsPage=
new KPrConfigureTTSPage(parent, page);
123 }
else m_ttsPage = 0;
125 connect(
this, TQ_SIGNAL( okClicked() ),
this, TQ_SLOT( slotApply() ) );
128void KPrConfig::openPage(
int flags)
130 if(flags & KP_INTERFACE)
132 else if(flags & KP_COLOR)
134 else if(flags & KP_TDESPELL)
136 else if(flags & KP_MISC)
138 else if(flags & KP_DOC)
140 else if(flags & KP_TOOLS)
142 else if(flags & KP_PATH)
146void KPrConfig::slotApply()
148 KMacroCommand *macro = 0L;
149 _interfacePage->apply();
150 _colorBackground->apply();
151 if (_spellPage) _spellPage->apply();
153 KCommand *cmd = _miscPage->apply();
157 macro =
new KMacroCommand(i18n(
"Change Config") );
158 macro->addCommand( cmd );
160 cmd = _defaultDocPage->apply();
164 macro =
new KMacroCommand(i18n(
"Change Config") );
166 macro->addCommand( cmd );
170 if (m_ttsPage) m_ttsPage->apply();
172 m_doc->addCommand( macro);
175void KPrConfig::slotDefault()
177 switch( activePageIndex() ) {
179 _interfacePage->slotDefault();
182 _colorBackground->slotDefault();
185 if (_spellPage) _spellPage->slotDefault();
188 _miscPage->slotDefault();
191 _defaultDocPage->slotDefault();
194 _toolsPage->slotDefault();
197 m_pathPage->slotDefault();
200 m_ttsPage->slotDefault();
206KPrConfigureInterfacePage::KPrConfigureInterfacePage( KPrView *_view, TQWidget *parent ,
char *name )
207 :TQWidget ( parent,name )
209 TQVBoxLayout *box =
new TQVBoxLayout(
this, 0, 0 );
212 config = KPrFactory::global()->config();
214 KoUnit::Unit unit = m_pView->kPresenterDoc()->unit();
217 double ptIndent = MM_TO_POINT(10.0);
218 bool bShowRuler=
true;
219 bool oldShowStatusBar =
true;
221 if( config->hasGroup(
"Interface") ) {
222 config->setGroup(
"Interface" );
223 oldNbRecentFiles=config->readNumEntry(
"NbRecentFile",oldNbRecentFiles);
224 ptIndent = config->readDoubleNumEntry(
"Indent", ptIndent);
225 bShowRuler=config->readBoolEntry(
"Rulers",
true);
226 oldShowStatusBar = config->readBoolEntry(
"ShowStatusBar" ,
true );
230 showRuler=
new TQCheckBox(i18n(
"Show rulers"),
this);
231 TQWhatsThis::add(showRuler, i18n(
"When checked, both vertical and horizontal rulers are shown on the KPresenter slide (this is the default). When unchecked, the rulers are not shown on any slide." ) );
232 showRuler->setChecked(bShowRuler);
233 box->addWidget(showRuler);
235 showStatusBar =
new TQCheckBox(i18n(
"Show status bar"),
this);
236 TQWhatsThis::add(showStatusBar, i18n(
"Toggle the statusbar, which is shown by default." ) );
237 showStatusBar->setChecked(oldShowStatusBar);
238 box->addWidget(showStatusBar);
241 recentFiles=
new KIntNumInput( oldNbRecentFiles,
this);
242 recentFiles->setRange(1, 20, 1);
243 recentFiles->setLabel(i18n(
"Number of recent files:"));
244 TQWhatsThis::add(recentFiles, i18n(
"Set the number of recent files which will be opened using the File->Open Recent menu. Default is to remember 10 filenames. The maximum you can set is 20 and the minimum is 1." ) );
246 box->addWidget(recentFiles);
248 TQString suffix = KoUnit::unitName( unit ).prepend(
' ');
249 indent =
new KDoubleNumInput(
this );
250 indent->setValue( KoUnit::toUserValue( ptIndent, unit ) );
251 indent->setRange(KoUnit::toUserValue( 0.1, unit ), KoUnit::toUserValue( 50, unit ), KoUnit::toUserValue( 0.1, unit ));
254 indent->setSuffix( suffix );
255 indent->setLabel(i18n(
"Text indentation depth:"));
256 TQWhatsThis::add(indent, i18n(
"This setting is used by Increase Depth and Decrease Depth menu items (in the Text menu) to change the indentation depth. The Default is 1 centimeter." ) );
258 box->addWidget(indent);
260 TQSpacerItem* spacer =
new TQSpacerItem( 20, 20, TQSizePolicy::Minimum, TQSizePolicy::Expanding );
261 box->addItem( spacer);
264void KPrConfigureInterfacePage::apply()
266 bool ruler=showRuler->isChecked();
267 bool statusBar=showStatusBar->isChecked();
269 KPrDocument * doc = m_pView->kPresenterDoc();
271 config->setGroup(
"Interface" );
273 double newIndent = KoUnit::fromUserValue( indent->value(), doc->unit() );
274 if( newIndent != doc->getIndentValue() )
276 config->writeEntry(
"Indent", newIndent,
true,
false,
'g', DBL_DIG );
277 doc->setIndentValue( newIndent );
279 int nbRecent=recentFiles->value();
280 if(nbRecent!=oldNbRecentFiles)
282 config->writeEntry(
"NbRecentFile", nbRecent);
283 m_pView->changeNbOfRecentFiles(nbRecent);
284 oldNbRecentFiles=nbRecent;
286 bool refreshGUI=
false;
287 if(ruler != doc->showRuler())
289 config->writeEntry(
"Rulers", ruler );
290 doc->setShowRuler( ruler );
294 if( statusBar != doc->showStatusBar() )
296 config->writeEntry(
"ShowStatusBar", statusBar );
297 doc->setShowStatusBar( statusBar );
302 doc->reorganizeGUI();
306void KPrConfigureInterfacePage::slotDefault()
308 double newIndent = KoUnit::toUserValue( MM_TO_POINT( 10 ), m_pView->kPresenterDoc()->unit() );
309 indent->setValue( newIndent );
310 recentFiles->setValue(10);
311 showRuler->setChecked(
true);
312 showStatusBar->setChecked(
true);
315KPrConfigureColorBackground::KPrConfigureColorBackground( KPrView* _view, TQWidget *parent ,
char *name )
316 :TQWidget ( parent,name )
319 config = KPrFactory::global()->config();
321 oldBgColor = m_pView->kPresenterDoc()->txtBackCol();
322 oldGridColor = m_pView->kPresenterDoc()->gridColor();
323 TQVBoxLayout *box =
new TQVBoxLayout(
this, 0, 0 );
325 TQLabel *lab =
new TQLabel(
this,
"label20" );
326 lab->setText( i18n(
"Background object color:" ) );
327 TQWhatsThis::add(lab, i18n(
"Change the background color of the text box. The background is white by default. If you have a dark background color and you want to put some white text on it, you can change the color of the text box so that you can see what you are typing. When you have finished, the area around the text will revert to the background color. The Defaults button restores the original settings." ) );
330 bgColor =
new KColorButton( oldBgColor,
333 bgColor->setColor( oldBgColor );
334 box->addWidget(bgColor);
337 lab =
new TQLabel(
this,
"label20" );
338 lab->setText( i18n(
"Grid color:" ) );
339 TQWhatsThis::add(lab, i18n(
"Here you can change the grid color, which is black by default." ) );
342 gridColor =
new KColorButton( oldGridColor,
345 box->addWidget(gridColor);
346 TQSpacerItem* spacer =
new TQSpacerItem( 20, 20, TQSizePolicy::Minimum, TQSizePolicy::Expanding );
347 box->addItem( spacer);
351void KPrConfigureColorBackground::apply()
353 KPrDocument * doc = m_pView->kPresenterDoc();
354 bool repaintNeeded =
false;
355 TQColor _col = bgColor->color();
356 if( oldBgColor != _col ) {
357 config->setGroup(
"KPresenter Color" );
358 config->writeEntry(
"BackgroundColor", _col );
359 doc->setTxtBackCol( _col );
362 repaintNeeded =
true;
364 _col = gridColor->color();
365 if( oldGridColor != _col ) {
366 config->setGroup(
"KPresenter Color" );
367 config->writeEntry(
"GridColor", _col );
368 doc->repaint(
false );
369 doc->setGridColor( _col );
371 repaintNeeded =
true;
374 doc->repaint(
false );
377void KPrConfigureColorBackground::slotDefault()
379 bgColor->setColor( TQt::white );
380 gridColor->setColor( TQt::black );
385KPrConfigureSpellPage::KPrConfigureSpellPage( KPrView *_view, TQWidget *parent,
char *name )
386 : TQWidget( parent, name )
389 config = KPrFactory::global()->config();
390 m_spellConfigWidget =
new ConfigWidget( _view->broker(), parent );
391 m_spellConfigWidget->setBackgroundCheckingButtonShown(
true );
394void KPrConfigureSpellPage::apply()
397 KPrDocument* doc = m_pView->kPresenterDoc();
398 m_spellConfigWidget->save();
401 m_pView->kPresenterDoc()->setSpellCheckIgnoreList(
402 m_pView->broker()->settings()->currentIgnoreList() );
404 doc->enableBackgroundSpellCheck( m_pView->broker()->settings()->backgroundCheckerEnabled() );
405 doc->reactivateBgSpellChecking();
408void KPrConfigureSpellPage::slotDefault()
410 m_spellConfigWidget->slotDefault();
413KPrConfigureMiscPage::KPrConfigureMiscPage( KPrView *_view, TQWidget *parent,
char *name )
414 : TQWidget( parent, name )
416 TQVBoxLayout *box =
new TQVBoxLayout(
this, 0, 0 );
419 config = KPrFactory::global()->config();
421 TQGroupBox* tmpTQGroupBox =
new TQGroupBox( 0, TQt::Vertical, i18n(
"Misc"),
this,
"GroupBox" );
422 tmpTQGroupBox->layout()->setSpacing(KDialog::spacingHint());
423 tmpTQGroupBox->layout()->setMargin(KDialog::marginHint());
424 TQGridLayout *grid =
new TQGridLayout( tmpTQGroupBox->layout(), 8, 1 );
428 if( config->hasGroup(
"Misc") )
430 config->setGroup(
"Misc" );
431 m_oldNbRedo=config->readNumEntry(
"UndoRedo",m_oldNbRedo);
432 m_printNotes = config->readBoolEntry(
"PrintNotes",
true);
435 m_undoRedoLimit=
new KIntNumInput( m_oldNbRedo, tmpTQGroupBox );
436 m_undoRedoLimit->setLabel(i18n(
"Undo/redo limit:"));
437 m_undoRedoLimit->setRange(10, 60, 1);
438 TQWhatsThis::add(m_undoRedoLimit, i18n(
"Set the number of actions you can undo and redo (how many actions KPresenter keeps in its Undo buffer). This ranges from a minimum of 10 to a maximum of 60 (the default is 30). Once the number of actions reaches the number set here, earlier actions will be forgotten." ) );
439 grid->addWidget(m_undoRedoLimit,0,0);
441 KPrDocument* doc = m_pView->kPresenterDoc();
443 m_displayLink=
new TQCheckBox(i18n(
"Display links"),tmpTQGroupBox);
444 TQWhatsThis::add(m_displayLink, i18n(
"When you want to include a link in your slide, you can use the Insert->Link... menu, which allows you to insert URL, mail or file links. If the option Display links is checked, all links will be active and displayed in a different color (this is the default behavior). If the option is unchecked, the links will be inactive and the same color as the text. This affects both the edited slides and the slide show." ) );
445 grid->addWidget(m_displayLink,3,0);
446 m_displayLink->setChecked(doc->getVariableCollection()->variableSetting()->displayLink());
448 m_underlineLink=
new TQCheckBox(i18n(
"&Underline all links"),tmpTQGroupBox);
449 m_underlineLink->setChecked(doc->getVariableCollection()->variableSetting()->underlineLink());
450 TQWhatsThis::add(m_underlineLink, i18n(
"If this is checked, all links will be underlined (this is the default). If it is not checked, the links will not be underlined." ) );
451 grid->addWidget(m_underlineLink,4,0);
454 m_displayComment=
new TQCheckBox(i18n(
"Display comments"),tmpTQGroupBox);
455 m_displayComment->setChecked(doc->getVariableCollection()->variableSetting()->displayComment());
456 TQWhatsThis::add(m_displayComment, i18n(
"Comments are inserted in the text at the cursor using the Insert->Comment... menu. Comments can only be viewed in edit mode and not in the slide show. If this option is checked (default) then each comment will be shown as a small yellow rectangle. You can then right-click on them to edit them, remove them or copy the text." ) );
457 grid->addWidget(m_displayComment,5,0);
459 m_displayFieldCode=
new TQCheckBox(i18n(
"Display field code"),tmpTQGroupBox);
460 m_displayFieldCode->setChecked(doc->getVariableCollection()->variableSetting()->displayFieldCode());
461 TQWhatsThis::add(m_displayFieldCode, i18n(
"In editor mode (not in slide show) this option will display all the variable codes as well as Link at links location. This is very useful to see what variable is displayed. Variables are inserted using the Insert -> Variable menu." ) );
462 grid->addWidget(m_displayFieldCode,6,0);
464 m_cbPrintNotes=
new TQCheckBox(i18n(
"Print slide notes"),tmpTQGroupBox);
465 m_cbPrintNotes->setChecked(m_printNotes);
466 TQWhatsThis::add(m_cbPrintNotes, i18n(
"If checked, all notes will be printed on paper. The notes will all be printed separately on the last page, from the first slide to the last and finally the Master Page Note. You can see the notes for each slide using the View->Show notebar menu." ) );
467 grid->addWidget(m_cbPrintNotes,7,0);
469 box->addWidget(tmpTQGroupBox);
471 tmpTQGroupBox =
new TQGroupBox( 0, TQt::Vertical, i18n(
"Grid"),
this,
"GroupBox" );
472 tmpTQGroupBox->layout()->setSpacing(KDialog::spacingHint());
473 tmpTQGroupBox->layout()->setMargin(KDialog::marginHint());
474 grid =
new TQGridLayout( tmpTQGroupBox->layout(), 8, 1 );
476 KoRect rect = doc->masterPage()->getPageRect();
477 TQLabel *lab=
new TQLabel(i18n(
"Horizontal grid size:"), tmpTQGroupBox);
478 TQWhatsThis::add(lab, i18n(
"Set the space in millimeters between two horizontal points on the grid. Default is 5 millimeters." ) );
479 grid->addWidget(lab,0,0);
480 KoUnit::Unit unit = doc->unit();
481 resolutionX =
new KoUnitDoubleSpinBox(tmpTQGroupBox, 5.0,rect.width(),1,doc->getGridX() );
482 resolutionX->setUnit( unit );
484 grid->addWidget(resolutionX,1,0);
486 lab=
new TQLabel(i18n(
"Vertical grid size:"), tmpTQGroupBox);
487 TQWhatsThis::add(lab, i18n(
"Set the space in millimeters between two vertical points on the grid. Default is 5 millimeters." ) );
488 grid->addWidget(lab,2,0);
490 resolutionY =
new KoUnitDoubleSpinBox(tmpTQGroupBox, 5.0,rect.height(),1,doc->getGridY() );
491 resolutionY->setUnit( unit );
493 grid->addWidget(resolutionY, 3, 0);
494 box->addWidget(tmpTQGroupBox);
496 TQSpacerItem* spacer =
new TQSpacerItem( 20, 20, TQSizePolicy::Minimum, TQSizePolicy::Expanding );
497 box->addItem( spacer);
502KCommand * KPrConfigureMiscPage::apply()
504 config->setGroup(
"Misc" );
505 int newUndo=m_undoRedoLimit->value();
506 KPrDocument* doc = m_pView->kPresenterDoc();
507 if(newUndo!=m_oldNbRedo)
509 config->writeEntry(
"UndoRedo",newUndo);
510 doc->setUndoRedoLimit(newUndo);
513 config->writeEntry(
"PrintNotes", m_cbPrintNotes->isChecked());
515 KMacroCommand * macroCmd=0L;
516 bool b=m_displayLink->isChecked();
517 bool b_new=doc->getVariableCollection()->variableSetting()->displayLink();
521 macroCmd=
new KMacroCommand(i18n(
"Change Display Link Command"));
524 i18n(
"Change Display Link Command"), doc, b_new, b, KPrChangeVariableSettingsCommand::VS_DISPLAYLINK);
526 macroCmd->addCommand(cmd);
529 b=m_underlineLink->isChecked();
530 if(doc->getVariableCollection()->variableSetting()->underlineLink()!=b)
533 macroCmd=
new KMacroCommand(i18n(
"Change Display Link Command"));
536 i18n(
"Change Display Link Command"), doc, doc->getVariableCollection()->variableSetting()->underlineLink(),
537 b, KPrChangeVariableSettingsCommand::VS_UNDERLINELINK);
539 macroCmd->addCommand(cmd);
542 b=m_displayComment->isChecked();
543 if(doc->getVariableCollection()->variableSetting()->displayComment()!=b)
546 macroCmd=
new KMacroCommand(i18n(
"Change Display Link Command"));
549 i18n(
"Change Display Link Command"), doc, doc->getVariableCollection()->variableSetting()->displayComment(),
550 b, KPrChangeVariableSettingsCommand::VS_DISPLAYCOMMENT);
552 macroCmd->addCommand(cmd);
555 b=m_displayFieldCode->isChecked();
556 if(doc->getVariableCollection()->variableSetting()->displayFieldCode()!=b)
559 macroCmd=
new KMacroCommand(i18n(
"Change Display Field Code Command"));
562 i18n(
"Change Display Field Code Command"), doc, doc->getVariableCollection()->variableSetting()->displayComment(),
563 b, KPrChangeVariableSettingsCommand::VS_DISPLAYFIELDCODE);
565 macroCmd->addCommand(cmd);
568 doc->setGridValue( resolutionX->value(),
569 resolutionY->value(),
true);
570 doc->repaint(
false );
577void KPrConfigureMiscPage::slotDefault()
579 m_undoRedoLimit->setValue(30);
580 m_displayLink->setChecked(
true);
581 m_displayComment->setChecked(
true);
582 m_underlineLink->setChecked(
true);
583 m_displayFieldCode->setChecked(
false );
584 m_cbPrintNotes->setChecked(
true);
587 resolutionY->setValue( MM_TO_POINT( 5.0 ));
588 resolutionX->setValue( MM_TO_POINT( 5.0 ));
591KPrConfigureDefaultDocPage::KPrConfigureDefaultDocPage(KPrView *_view, TQWidget *parent,
char *name )
592 : TQWidget( parent, name )
594 TQVBoxLayout *box =
new TQVBoxLayout(
this, 0, 0 );
597 config = KPrFactory::global()->config();
598 KPrDocument *doc = m_pView->kPresenterDoc();
599 oldAutoSaveValue = doc->defaultAutoSave()/60;
600 m_oldBackupFile =
true;
601 m_oldLanguage = doc->globalLanguage();
602 m_oldHyphenation = doc->globalHyphenation();
603 if( config->hasGroup(
"Interface") ) {
604 config->setGroup(
"Interface" );
605 oldAutoSaveValue = config->readNumEntry(
"AutoSave", oldAutoSaveValue );
606 m_oldBackupFile=config->readBoolEntry(
"BackupFile",m_oldBackupFile);
607 m_oldLanguage = config->readEntry(
"language", m_oldLanguage );
608 m_oldHyphenation = config->readBoolEntry(
"hyphenation", m_oldHyphenation);
611 TQVGroupBox* gbDocumentDefaults =
new TQVGroupBox( i18n(
"Document Defaults"),
this,
"GroupBox" );
612 gbDocumentDefaults->setMargin( KDialog::marginHint() );
613 gbDocumentDefaults->setInsideSpacing( 5 );
615 TQWidget *fontContainer =
new TQWidget(gbDocumentDefaults);
616 TQGridLayout * fontLayout =
new TQGridLayout(fontContainer, 1, 3);
618 fontLayout->setColStretch(0, 0);
619 fontLayout->setColStretch(1, 1);
620 fontLayout->setColStretch(2, 0);
622 TQLabel *fontTitle =
new TQLabel(i18n(
"Default font:"), fontContainer);
624 font=
new TQFont( doc->defaultFont() );
626 TQString labelName = font->family() +
' ' + TQString::number(font->pointSize());
627 fontName =
new TQLabel(labelName, fontContainer);
628 fontName->setFont(*font);
629 fontName->setFrameStyle(TQFrame::StyledPanel | TQFrame::Sunken);
631 TQPushButton *chooseButton =
new TQPushButton(i18n(
"Choose..."), fontContainer);
632 TQWhatsThis::add(chooseButton, i18n(
"Click here if you want to set a new font. The TDE default Select Font dialog will then be displayed." ) );
633 connect(chooseButton, TQ_SIGNAL(clicked()),
this, TQ_SLOT(selectNewDefaultFont()));
635 fontLayout->addWidget(fontTitle, 0, 0);
636 fontLayout->addWidget(fontName, 0, 1);
637 fontLayout->addWidget(chooseButton, 0, 2);
639 TQWidget *languageContainer =
new TQWidget(gbDocumentDefaults);
640 TQGridLayout * languageLayout =
new TQGridLayout(languageContainer, 1, 3);
642 languageLayout->setColStretch(0, 0);
643 languageLayout->setColStretch(1, 1);
645 TQLabel *languageTitle =
new TQLabel(i18n(
"Global language:"), languageContainer);
646 TQWhatsThis::add(languageTitle, i18n(
"Use this drop down box to determine the default language for the document. This setting is used by the hyphenation and spelling tools." ) );
648 m_globalLanguage =
new TQComboBox( languageContainer );
649 m_globalLanguage->insertStringList( KoGlobal::listOfLanguages() );
650 m_globalLanguage->setCurrentText( KoGlobal::languageFromTag( doc->globalLanguage() ) );
652 languageLayout->addWidget(languageTitle, 0, 0);
653 languageLayout->addWidget(m_globalLanguage, 0, 1);
655 m_autoHyphenation =
new TQCheckBox( i18n(
"Automatic hyphenation"), gbDocumentDefaults);
656 TQWhatsThis::add(m_autoHyphenation, i18n(
"Check this box if you want KPresenter to automatically hyphenate long words when it determines the word wrap in text frames. This is not set by default." ) );
657 m_autoHyphenation->setChecked( m_oldHyphenation );
659 box->addWidget(gbDocumentDefaults);
661 TQVGroupBox* gbDocumentSettings =
new TQVGroupBox( i18n(
"Document Settings"),
this );
662 gbDocumentSettings->setMargin( KDialog::marginHint() );
663 gbDocumentSettings->setInsideSpacing( KDialog::spacingHint() );
665 m_createBackupFile =
new TQCheckBox( i18n(
"Create backup file"), gbDocumentSettings);
666 TQWhatsThis::add(m_createBackupFile, i18n(
"If checked, this will create a .<name>.kpr.autosave.kpr in the folder where your file is. This backup file can then be used in case of a problem.\nThe backup file is updated every time you save your document or every time there is an autosave." ) );
667 m_createBackupFile->setChecked( m_oldBackupFile );
670 autoSave =
new KIntNumInput( oldAutoSaveValue, gbDocumentSettings );
671 autoSave->setRange( 0, 60, 1 );
672 autoSave->setLabel( i18n(
"Autosave (min):") );
673 autoSave->setSpecialValueText( i18n(
"No autosave") );
674 autoSave->setSuffix( i18n(
"min") );
675 TQWhatsThis::add(autoSave, i18n(
"You can use this to adjust how often KPresenter saves a temporary file. If you set this value to No autosave, KPresenter will not autosave. You can adjust the autosave from 1 to 60 minutes." ) );
677 new TQLabel(i18n(
"Starting page number:"), gbDocumentSettings);
678 m_oldStartingPage=doc->getVariableCollection()->variableSetting()->startingPageNumber();
679 m_variableNumberOffset=
new KIntNumInput(gbDocumentSettings);
680 m_variableNumberOffset->setRange(1, 9999, 1,
false);
681 m_variableNumberOffset->setValue(m_oldStartingPage);
682 TQWhatsThis::add(m_variableNumberOffset, i18n(
"Here you can change the number for the first page. It is set to 1 by default.\nTip: this is helpful if you have split a single document into multiple files." ) );
684 new TQLabel(i18n(
"Tab stop:"), gbDocumentSettings);
685 m_oldTabStopWidth = doc->tabStopValue();
686 KoRect rect = doc->masterPage()->getPageRect();
687 m_tabStopWidth =
new KoUnitDoubleSpinBox( gbDocumentSettings , MM_TO_POINT(2), rect.width() ,0.1, m_oldTabStopWidth );
689 m_tabStopWidth->setUnit( doc->unit() );
691 TQWhatsThis::add(m_tabStopWidth, i18n(
"Each KPresenter document has a default set of tab stops. If you add tab stops to your document, the newly added tab stops override the default ones. You can use this text box to define the spacing between default tab stops. As an example, if you enter 1.5 in this text box, and the unit of measurement is in centimeters, the first default tab stop will be located 1.5 cm to the right of the frame's left-hand margin. The second default tab stop will be located at 3 cm from the left-hand margin, and so on." ) );
693 box->addWidget(gbDocumentSettings);
694 TQVGroupBox* gbDocumentCursor =
new TQVGroupBox( i18n(
"Cursor"),
this );
695 gbDocumentCursor->setMargin( KDialog::marginHint() );
696 gbDocumentCursor->setInsideSpacing( KDialog::spacingHint() );
698 m_cursorInProtectedArea=
new TQCheckBox(i18n(
"Cursor in protected area"),gbDocumentCursor);
699 m_cursorInProtectedArea->setChecked(doc->cursorInProtectedArea());
700 TQWhatsThis::add(m_cursorInProtectedArea, i18n(
"When this box is checked and you click in a protected frame within your document, a cursor will appear. When this box is unchecked, and you click in a protected frame, no cursor will be visible." ) );
702 m_directInsertCursor=
new TQCheckBox(i18n(
"Direct insert cursor"),gbDocumentCursor);
703 m_directInsertCursor->setChecked(doc->insertDirectCursor());
704 TQWhatsThis::add(m_directInsertCursor, i18n(
"When this box is checked, you can select a section of text using your mouse. Move the mouse to a new area in your document and click once with the middle mouse button and a copy of the selected text will be copied and pasted to the new location in the document.\nWhen this box is unchecked, in order to copy text from one section to another, you must select the text, manually copy the text to the clipboard, then manually paste the text in the new location." ) );
705 box->addWidget(gbDocumentCursor);
707 TQSpacerItem* spacer =
new TQSpacerItem( 20, 20, TQSizePolicy::Minimum, TQSizePolicy::Expanding );
708 box->addItem(spacer);
712KPrConfigureDefaultDocPage::~KPrConfigureDefaultDocPage()
717KCommand *KPrConfigureDefaultDocPage::apply()
719 config->setGroup(
"Document defaults" );
720 KPrDocument* doc = m_pView->kPresenterDoc();
721 config->writeEntry(
"DefaultFont",TQString(font->toString()));
723 config->setGroup(
"Interface" );
724 int autoSaveVal = autoSave->value();
725 if( autoSaveVal != oldAutoSaveValue ) {
726 config->writeEntry(
"AutoSave", autoSaveVal );
727 m_pView->kPresenterDoc()->setAutoSave( autoSaveVal*60 );
728 oldAutoSaveValue=autoSaveVal;
730 bool state =m_createBackupFile->isChecked();
732 if(state!=m_oldBackupFile)
734 config->writeEntry(
"BackupFile", state );
735 doc->setBackupFile( state);
736 m_oldBackupFile=state;
739 state = m_cursorInProtectedArea->isChecked();
740 if ( state != doc->cursorInProtectedArea() )
742 config->writeEntry(
"cursorInProtectArea", state );
743 m_pView->kPresenterDoc()->setCursorInProtectedArea( state );
746 state = m_directInsertCursor->isChecked();
747 if ( state != doc->insertDirectCursor() )
748 doc->setInsertDirectCursor( state );
752 const TQString lang = KoGlobal::tagOfLanguage( m_globalLanguage->currentText() );
753 config->writeEntry(
"language" , lang);
754 m_oldLanguage = lang;
760 state = m_autoHyphenation->isChecked();
761 config->writeEntry(
"hyphenation", state );
762 m_oldHyphenation = state;
764 KMacroCommand *macro = 0L;
765 int newStartingPage=m_variableNumberOffset->value();
766 if(newStartingPage!=m_oldStartingPage)
768 macro =
new KMacroCommand( i18n(
"Change Starting Page Number") );
771 macro->addCommand( cmd);
772 m_oldStartingPage=newStartingPage;
774 double newTabStop = m_tabStopWidth->value();
775 if ( newTabStop != m_oldTabStopWidth)
778 macro =
new KMacroCommand( i18n(
"Change Tab Stop Value") );
779 KPrChangeTabStopValueCommand *cmd =
new KPrChangeTabStopValueCommand( i18n(
"Change Tab Stop Value"), m_oldTabStopWidth, newTabStop, doc);
781 macro->addCommand( cmd );
782 m_oldTabStopWidth = newTabStop;
787void KPrConfigureDefaultDocPage::slotDefault()
789 autoSave->setValue( m_pView->kPresenterDoc()->defaultAutoSave()/60 );
790 m_variableNumberOffset->setValue(1);
791 m_cursorInProtectedArea->setChecked(
true);
792 m_tabStopWidth->setValue( MM_TO_POINT(15));
793 m_createBackupFile->setChecked(
true );
794 m_directInsertCursor->setChecked(
false );
795 m_globalLanguage->setCurrentText( KoGlobal::languageFromTag( TDEGlobal::locale()->language() ) );
796 m_autoHyphenation->setChecked(
false );
799void KPrConfigureDefaultDocPage::selectNewDefaultFont() {
801 TDEFontChooser::getFontList(list, TDEFontChooser::SmoothScalableFonts);
802 TDEFontDialog dlg(
this,
"Font Selector",
false,
true, list,
true );
804 int result = dlg.exec();
805 if (KDialog::Accepted == result) {
807 font =
new TQFont(dlg.font());
808 fontName->setText(font->family() +
' ' + TQString::number(font->pointSize()));
809 fontName->setFont(*font);
810 m_pView->kPresenterDoc()->setDefaultFont( *font );
814KPrConfigureToolsPage::KPrConfigureToolsPage( KPrView *_view, TQWidget *parent,
char *name )
815 : TQWidget( parent, name )
817 TQVBoxLayout *box =
new TQVBoxLayout(
this, 0, 0 );
820 config = KPrFactory::global()->config();
821 m_pView->getCanvas()->deSelectAllObj();
823 TQTabWidget *tab =
new TQTabWidget(
this);
825 KoPenCmd::Pen pen( m_pView->getPen(), m_pView->getLineBegin(), m_pView->getLineEnd() );
826 m_confPenDia =
new KPrPenStyleWidget(tab, 0, pen,
true );
827 tab->addTab( m_confPenDia, i18n(
"Outl&ine" ) );
829 KPrBrushCmd::Brush brush( m_pView->getBrush(),
830 m_pView->getGColor1(),
831 m_pView->getGColor2(),
833 m_pView->getFillType(),
834 m_pView->getGUnbalanced(),
835 m_pView->getGXFactor(),
836 m_pView->getGYFactor() );
837 m_brushProperty =
new KPrBrushProperty(
this, 0, brush );
838 tab->addTab( m_brushProperty, i18n(
"&Fill" ) );
840 KPrRectValueCmd::RectValues rectValues;
841 rectValues.xRnd = m_pView->getRndX();
842 rectValues.yRnd = m_pView->getRndY();
843 m_rectProperty =
new KPrRectProperty(
this, 0, rectValues );
844 tab->addTab( m_rectProperty, i18n(
"&Rectangle" ) );
846 KPrPolygonSettingCmd::PolygonSettings polygonSettings;
847 polygonSettings.checkConcavePolygon = m_pView->getCheckConcavePolygon();
848 polygonSettings.cornersValue = m_pView->getCornersValue();
849 polygonSettings.sharpnessValue = m_pView->getSharpnessValue();
850 m_polygonProperty =
new KPrPolygonProperty(
this, 0, polygonSettings );
851 tab->addTab( m_polygonProperty, i18n(
"Polygo&n" ) );
853 KPrPieValueCmd::PieValues pieValues;
854 pieValues.pieType = m_pView->getPieType();
855 pieValues.pieAngle = m_pView->getPieAngle();
856 pieValues.pieLength = m_pView->getPieLength();
857 m_pieProperty =
new KPrPieProperty(
this, 0, pieValues );
858 tab->addTab( m_pieProperty, i18n(
"&Pie" ) );
863KPrConfigureToolsPage::~KPrConfigureToolsPage()
867void KPrConfigureToolsPage::apply()
869 KoPenCmd::Pen pen = m_confPenDia->getPen();
870 m_pView->setPen( pen.pen );
871 m_pView->setLineBegin( pen.lineBegin );
872 m_pView->setLineEnd( pen.lineEnd );
873 m_pView->getActionPenColor()->setCurrentColor( pen.pen.color() );
875 KPrBrushCmd::Brush brush = m_brushProperty->getBrush();
876 m_pView->setBrush( brush.brush );
877 m_pView->setFillType( brush.fillType );
878 m_pView->setGColor1( brush.gColor1 );
879 m_pView->setGColor2( brush.gColor2 );
880 m_pView->setGType( brush.gType );
881 m_pView->setGUnbalanced( brush.unbalanced );
882 m_pView->setGXFactor( brush.xfactor );
883 m_pView->setGYFactor( brush.yfactor );
884 m_pView->getActionBrushColor()->setCurrentColor( brush.brush.color() );
886 KPrRectValueCmd::RectValues rectValues = m_rectProperty->getRectValues();
887 m_pView->setRndX( rectValues.xRnd );
888 m_pView->setRndY( rectValues.yRnd );
890 KPrPolygonSettingCmd::PolygonSettings polygonSettings = m_polygonProperty->getPolygonSettings();
891 m_pView->setCheckConcavePolygon( polygonSettings.checkConcavePolygon );
892 m_pView->setCornersValue( polygonSettings.cornersValue );
893 m_pView->setSharpnessValue( polygonSettings.sharpnessValue );
895 KPrPieValueCmd::PieValues pieValues = m_pieProperty->getPieValues();
896 m_pView->setPieType( pieValues.pieType );
897 m_pView->setPieAngle( pieValues.pieAngle );
898 m_pView->setPieLength( pieValues.pieLength );
905void KPrConfigureToolsPage::slotDefault()
907 KoPenCmd::Pen pen( KoPen(black, 1.0, TQt::SolidLine), L_NORMAL, L_NORMAL );
908 m_confPenDia->setPen( pen );
909 m_pView->getActionPenColor()->setCurrentColor( pen.pen.color() );
911 KPrBrushCmd::Brush brush( TQBrush( white, SolidPattern ), red, green,
912 BCT_GHORZ, FT_BRUSH,
false, 100, 100 );
913 m_brushProperty->setBrush( brush );
914 m_pView->getActionBrushColor()->setCurrentColor( brush.brush.color() );
916 KPrRectValueCmd::RectValues rectValues;
919 m_rectProperty->setRectValues( rectValues );
921 KPrPolygonSettingCmd::PolygonSettings polygonSettings;
922 polygonSettings.checkConcavePolygon =
false;
923 polygonSettings.cornersValue = 3;
924 polygonSettings.sharpnessValue = 0;
925 m_polygonProperty->setPolygonSettings( polygonSettings );
927 KPrPieValueCmd::PieValues pieValues;
928 pieValues.pieType = PT_PIE;
929 pieValues.pieAngle = 45 * 16;
930 pieValues.pieLength = 270 * 16;
933KPrConfigurePathPage::KPrConfigurePathPage( KPrView *_view, TQWidget *parent,
char *name )
934 : TQWidget( parent, name )
936 TQVBoxLayout *box =
new TQVBoxLayout(
this, 0, 0 );
939 KPrDocument* doc = m_pView->kPresenterDoc();
940 config = KPrFactory::global()->config();
942 m_pPathView =
new TDEListView(
this );
943 m_pPathView->setResizeMode(TQListView::NoColumn);
944 m_pPathView->addColumn( i18n(
"Type" ) );
945 m_pPathView->addColumn( i18n(
"Path" ) );
946 (void)
new TQListViewItem( m_pPathView, i18n(
"Picture Path"),doc->picturePath() );
947 (void)
new TQListViewItem( m_pPathView, i18n(
"Backup Path"),doc->backupPath() );
948 TQWhatsThis::add(m_pPathView, i18n(
"There are two paths that are set here: the Backup Path and the Picture Path. The Backup path is the folder where your backup files are saved and the Picture Path is the folder where your pictures are saved." ) );
949 box->addWidget(m_pPathView);
951 m_modifyPath =
new TQPushButton( i18n(
"Modify Path..."),
this);
952 connect( m_modifyPath, TQ_SIGNAL( clicked ()),
this, TQ_SLOT( slotModifyPath()));
953 connect( m_pPathView, TQ_SIGNAL( doubleClicked (TQListViewItem *,
const TQPoint &,
int )),
954 this, TQ_SLOT( slotModifyPath()));
955 connect( m_pPathView, TQ_SIGNAL( selectionChanged ( TQListViewItem * )),
956 this, TQ_SLOT( slotSelectionChanged(TQListViewItem * )));
957 slotSelectionChanged(m_pPathView->currentItem());
958 TQWhatsThis::add(m_modifyPath, i18n(
"When you click this button, a small dialog will appear and, if Default path is unchecked, you can either enter a path yourself or choose one using the standard TDE file dialog." ) );
959 box->addWidget(m_modifyPath);
963void KPrConfigurePathPage::slotSelectionChanged(TQListViewItem * item)
965 m_modifyPath->setEnabled( item );
968void KPrConfigurePathPage::slotModifyPath()
970 TQListViewItem *item = m_pPathView->currentItem ();
973 if ( item->text(0)==i18n(
"Picture Path"))
975 KURLRequesterDlg * dlg =
new KURLRequesterDlg( item->text(1), 0L,
977 dlg->fileDialog()->setMode(KFile::Directory | KFile::LocalOnly);
979 item->setText( 1, dlg->selectedURL().path());
982 else if ( item->text(0)==i18n(
"Backup Path"))
984 KoChangePathDia *dlg =
new KoChangePathDia( item->text(1), 0L,
987 item->setText(1, dlg->newPath());
993void KPrConfigurePathPage::slotDefault()
995 TQListViewItem * item = m_pPathView->findItem(i18n(
"Picture Path"), 0);
997 item->setText(1, TDEGlobalSettings::documentPath());
998 item = m_pPathView->findItem(i18n(
"Backup Path"), 0);
1000 item->setText(1, TQString() );
1003void KPrConfigurePathPage::apply()
1005 TQListViewItem *item = m_pPathView->findItem(i18n(
"Backup Path"), 0);
1008 TQString res = item->text(1 );
1009 if ( res != m_pView->kPresenterDoc()->backupPath())
1011 config->setGroup(
"Kpresenter Path" );
1012 m_pView->kPresenterDoc()->setBackupPath( res );
1013#if KDE_IS_VERSION(3,1,3)
1014 config->writePathEntry(
"backup path",res );
1016 config->writeEntry(
"backup path",res );
1020 item = m_pPathView->findItem(i18n(
"Picture Path"), 0);
1023 TQString res = item->text(1 );
1024 if ( res != m_pView->kPresenterDoc()->picturePath())
1026 config->setGroup(
"Kpresenter Path" );
1027 m_pView->kPresenterDoc()->setPicturePath( res );
1028#if KDE_IS_VERSION(3,1,3)
1029 config->writePathEntry(
"picture path",res );
1031 config->writeEntry(
"picture path",res );
1039KPrConfigureTTSPage::KPrConfigureTTSPage( KPrView *_view, TQWidget *parent,
char *name )
1040 : TQWidget( parent, name )
1044 TQVBoxLayout *box =
new TQVBoxLayout(
this, 0, 0 );
1046 m_cbSpeakPointerWidget =
new TQCheckBox(i18n(
"Speak widget under &mouse pointer"),
this);
1047 m_cbSpeakFocusWidget =
new TQCheckBox(i18n(
"Speak widget with &focus"),
this);
1048 m_gbScreenReaderOptions =
new TQVGroupBox(
"",
this);
1049 box->add(m_cbSpeakPointerWidget);
1050 box->add(m_cbSpeakFocusWidget);
1051 box->add(m_gbScreenReaderOptions);
1052 m_gbScreenReaderOptions->setMargin( KDialog::marginHint() );
1053 m_gbScreenReaderOptions->setInsideSpacing( KDialog::spacingHint() );
1054 m_cbSpeakTooltips =
new TQCheckBox(i18n(
"Speak &tool tips"), m_gbScreenReaderOptions);
1055 m_cbSpeakWhatsThis =
new TQCheckBox(i18n(
"Speak &What's This?"), m_gbScreenReaderOptions);
1056 m_cbSpeakDisabled =
new TQCheckBox(i18n(
"Verbal indication if widget is disabled (grayed)",
1057 "&Say whether disabled"), m_gbScreenReaderOptions);
1058 m_cbSpeakAccelerators =
new TQCheckBox(i18n(
"Spea&k accelerators"), m_gbScreenReaderOptions);
1059 TQHBox* hbAcceleratorPrefix =
new TQHBox(m_gbScreenReaderOptions);
1060 TQWidget* spacer =
new TQWidget(hbAcceleratorPrefix);
1061 spacer->setMinimumWidth(2 * KDialog::marginHint());
1062 m_lblAcceleratorPrefix =
1063 new TQLabel(i18n(
"A word spoken before another word",
"Pr&efaced by the word:"),
1064 hbAcceleratorPrefix);
1065 m_leAcceleratorPrefixWord =
new TQLineEdit(i18n(
"Keyboard accelerator, such as Alt+F",
"Accelerator"),
1066 hbAcceleratorPrefix);
1067 m_lblAcceleratorPrefix->setBuddy(m_leAcceleratorPrefixWord);
1068 TQHBox* hbPollingInterval =
new TQHBox(m_gbScreenReaderOptions);
1069 hbPollingInterval->setMargin( 0 );
1070 TQLabel* lblPollingInterval =
new TQLabel(i18n(
"&Polling interval:"), hbPollingInterval);
1071 m_iniPollingInterval =
new KIntNumInput(hbPollingInterval);
1072 m_iniPollingInterval->setSuffix(
" ms");
1073 m_iniPollingInterval->setRange(100, 5000, 100,
true);
1074 lblPollingInterval->setBuddy(m_iniPollingInterval);
1076 config = KPrFactory::global()->config();
1077 config->setGroup(
"TTS");
1078 m_cbSpeakPointerWidget->setChecked(config->readBoolEntry(
"SpeakPointerWidget",
false));
1079 m_cbSpeakFocusWidget->setChecked(config->readBoolEntry(
"SpeakFocusWidget",
false));
1080 m_cbSpeakTooltips->setChecked(config->readBoolEntry(
"SpeakTooltips",
true));
1081 m_cbSpeakWhatsThis->setChecked(config->readBoolEntry(
"SpeakWhatsThis",
false));
1082 m_cbSpeakDisabled->setChecked(config->readBoolEntry(
"SpeakDisabled",
true));
1083 m_cbSpeakAccelerators->setChecked(config->readBoolEntry(
"SpeakAccelerators",
true));
1084 m_leAcceleratorPrefixWord->setText(config->readEntry(
"AcceleratorPrefixWord",
1085 i18n(
"Keyboard accelerator, such as Alt+F",
"Accelerator")));
1086 m_iniPollingInterval->setValue(config->readNumEntry(
"PollingInterval", 600));
1088 screenReaderOptionChanged();
1089 connect(m_cbSpeakPointerWidget, TQ_SIGNAL(toggled(
bool)),
this, TQ_SLOT(screenReaderOptionChanged()));
1090 connect(m_cbSpeakFocusWidget, TQ_SIGNAL(toggled(
bool)),
this, TQ_SLOT(screenReaderOptionChanged()));
1091 connect(m_cbSpeakAccelerators, TQ_SIGNAL(toggled(
bool)),
this, TQ_SLOT(screenReaderOptionChanged()));
1094void KPrConfigureTTSPage::slotDefault()
1096 m_cbSpeakPointerWidget->setChecked(
false);
1097 m_cbSpeakFocusWidget->setChecked(
false);
1098 m_cbSpeakTooltips->setChecked(
true);
1099 m_cbSpeakWhatsThis->setChecked(
false);
1100 m_cbSpeakDisabled->setChecked(
true);
1101 m_cbSpeakAccelerators->setChecked(
true);
1102 m_leAcceleratorPrefixWord->setText(i18n(
"Keyboard accelerator, such as Alt+F",
"Accelerator"));
1103 m_iniPollingInterval->setValue(600);
1106void KPrConfigureTTSPage::apply()
1108 config->setGroup(
"TTS");
1109 config->writeEntry(
"SpeakPointerWidget", m_cbSpeakPointerWidget->isChecked());
1110 config->writeEntry(
"SpeakFocusWidget", m_cbSpeakFocusWidget->isChecked());
1111 config->writeEntry(
"SpeakTooltips", m_cbSpeakTooltips->isChecked());
1112 config->writeEntry(
"SpeakWhatsThis", m_cbSpeakWhatsThis->isChecked());
1113 config->writeEntry(
"SpeakDisabled", m_cbSpeakDisabled->isChecked());
1114 config->writeEntry(
"SpeakAccelerators", m_cbSpeakAccelerators->isChecked());
1115 config->writeEntry(
"AcceleratorPrefixWord", m_leAcceleratorPrefixWord->text());
1116 config->writeEntry(
"PollingInterval", m_iniPollingInterval->value());
1117 if (kospeaker) kospeaker->readConfig(config);
1120void KPrConfigureTTSPage::screenReaderOptionChanged()
1122 m_gbScreenReaderOptions->setEnabled(
1123 m_cbSpeakPointerWidget->isChecked() | m_cbSpeakFocusWidget->isChecked());
1124 m_leAcceleratorPrefixWord->setEnabled(m_cbSpeakAccelerators->isChecked());
1125 m_lblAcceleratorPrefix->setEnabled(m_cbSpeakAccelerators->isChecked());
1128#include "KPrConfig.moc"
Command to change variable setting.
Command to display link setting.