File indexing completed on 2024-04-28 16:26:36

0001 /******************************************************************************************
0002     begin                : Sat 3-1 20:40:00 CEST 2004
0003     copyright            : (C) 2004 by Jeroen Wijnhout (Jeroen.Wijnhout@kdemail.net)
0004                                2007-2017 by Michel Ludwig (michel.ludwig@kdemail.net)
0005  ******************************************************************************************/
0006 
0007 /***************************************************************************
0008  *                                                                         *
0009  *   This program is free software; you can redistribute it and/or modify  *
0010  *   it under the terms of the GNU General Public License as published by  *
0011  *   the Free Software Foundation; either version 2 of the License, or     *
0012  *   (at your option) any later version.                                   *
0013  *                                                                         *
0014  ***************************************************************************/
0015 
0016 #include "widgets/toolconfigwidget.h"
0017 
0018 #include <QCheckBox>
0019 #include <QInputDialog>
0020 #include <QLabel>
0021 #include <QLayout>
0022 #include <QRegExp>
0023 #include <QSpinBox>
0024 #include <QStackedWidget>
0025 #include <QTabWidget>
0026 #include <QVBoxLayout>
0027 
0028 #include "kiledebug.h"
0029 #include <KLocalizedString>
0030 #include <kicondialog.h>
0031 #include <kiconloader.h>
0032 #include <kcombobox.h>
0033 #include <QPushButton>
0034 #include <kconfig.h>
0035 #include <kmessagebox.h>
0036 #include <KConfigGroup>
0037 
0038 #include "kiletool_enums.h"
0039 #include "kiletoolmanager.h"
0040 #include "kilestdtools.h"
0041 #include "widgets/maintoolconfigwidget.h"
0042 #include "widgets/processtoolconfigwidget.h"
0043 #include "widgets/quicktoolconfigwidget.h"
0044 #include "widgets/latextoolconfigwidget.h"
0045 #include "dialogs/newtoolwizard.h"
0046 
0047 namespace KileWidget
0048 {
0049 ToolConfig::ToolConfig(KileTool::Manager *mngr, QWidget *parent, const char *name) :
0050     QWidget(parent),
0051     m_manager(mngr)
0052 {
0053     setObjectName(name);
0054     m_config = m_manager->config();
0055     QVBoxLayout *layout = new QVBoxLayout();
0056     layout->setContentsMargins(0, 0, 0, 0);
0057 //TODO PORT QT5         layout->setSpacing(QDialog::spacingHint());
0058     setLayout(layout);
0059     m_configWidget = new ToolConfigWidget(this);
0060     layout->addWidget(m_configWidget);
0061 
0062     m_tabGeneral = m_configWidget->m_tab->widget(0);
0063     m_tabAdvanced = m_configWidget->m_tab->widget(1);
0064     m_tabMenu = m_configWidget->m_tab->widget(2);
0065 
0066     updateToollist();
0067     QListWidgetItem *item = m_configWidget->m_lstbTools->item(indexQuickBuild());
0068     if (item)
0069         m_configWidget->m_lstbTools->setCurrentItem(item);
0070 
0071     connect(m_configWidget->m_cbConfig, SIGNAL(activated(int)), this, SLOT(switchConfig(int)));
0072 
0073     // 'm_cbMenu' also stores a mapping from English menu names to their translation
0074     m_configWidget->m_cbMenu->addItem(i18n("Quick"), QVariant("Quick"));
0075     m_configWidget->m_cbMenu->addItem(i18n("Compile"), QVariant("Compile"));
0076     m_configWidget->m_cbMenu->addItem(i18n("Convert"), QVariant("Convert"));
0077     m_configWidget->m_cbMenu->addItem(i18n("View"), QVariant("View"));
0078     m_configWidget->m_cbMenu->addItem(i18n("Other"), QVariant("Other"));
0079     connect(m_configWidget->m_cbMenu, SIGNAL(activated(int)), this, SLOT(setMenu(int)));
0080     connect(m_configWidget->m_pshbIcon, SIGNAL(clicked()), this, SLOT(selectIcon()));
0081 
0082     connect(m_configWidget->m_pshbRemoveTool, SIGNAL(clicked()), this, SLOT(removeTool()));
0083     connect(m_configWidget->m_pshbNewTool, SIGNAL(clicked()), this, SLOT(newTool()));
0084     connect(m_configWidget->m_pshbRemoveConfig, SIGNAL(clicked()), this, SLOT(removeConfig()));
0085     connect(m_configWidget->m_pshbNewConfig, SIGNAL(clicked()), this, SLOT(newConfig()));
0086     connect(m_configWidget->m_pshbDefault, SIGNAL(clicked()), this, SLOT(writeDefaults()));
0087 
0088     //--->m_current = m_configWidget->m_lstbTools->text(0);
0089     QListWidgetItem *currentItem = m_configWidget->m_lstbTools->currentItem();
0090     if(currentItem) {
0091         m_current = currentItem->text();
0092     }
0093     m_manager->retrieveEntryMap(m_current, m_map, false, false);
0094     QString cfg = KileTool::configName(m_current, m_config);
0095     m_configWidget->m_cbConfig->addItem(cfg);
0096 
0097     setupGeneral();
0098     setupAdvanced();
0099 
0100     switchConfig(cfg);
0101     switchTo(m_current, false);
0102     connect(m_configWidget->m_lstbTools, SIGNAL(currentTextChanged(QString)), this, SLOT(switchTo(QString)));
0103 
0104     connect(this, SIGNAL(changed()), this, SLOT(updateAdvanced()));
0105     connect(this, SIGNAL(changed()), this, SLOT(updateGeneral()));
0106 }
0107 
0108 void ToolConfig::setupAdvanced()
0109 {
0110     m_configWidget->m_cbType->addItem(i18n("Run Outside of Kile"));
0111     m_configWidget->m_cbType->addItem(i18n("Run in Konsole"));
0112     m_configWidget->m_cbType->addItem(i18n("Use Document Viewer"));
0113     m_configWidget->m_cbType->addItem(i18n("Run Sequence of Tools"));
0114     connect(m_configWidget->m_cbType, SIGNAL(activated(int)), this, SLOT(switchType(int)));
0115     connect(m_configWidget->m_ckClose, SIGNAL(toggled(bool)), this, SLOT(setClose(bool)));
0116 
0117     m_classes << "Compile" << "Convert" << "Archive" << KileTool::BibliographyCompile::ToolClass << "View" <<  "Sequence" << "LaTeX" << "ViewHTML" << "ViewBib" << "ForwardDVI" << "Base";
0118     m_configWidget->m_cbClass->addItems(m_classes);
0119     connect(m_configWidget->m_cbClass, SIGNAL(activated(QString)), this, SLOT(switchClass(QString)));
0120 
0121     connect(m_configWidget->m_leSource, SIGNAL(textChanged(QString)), this, SLOT(setFrom(QString)));
0122     connect(m_configWidget->m_leTarget, SIGNAL(textChanged(QString)), this, SLOT(setTo(QString)));
0123     connect(m_configWidget->m_leFile, SIGNAL(textChanged(QString)), this, SLOT(setTarget(QString)));
0124     connect(m_configWidget->m_leRelDir, SIGNAL(textChanged(QString)), this, SLOT(setRelDir(QString)));
0125 }
0126 
0127 void ToolConfig::updateAdvanced()
0128 {
0129     bool enablekonsoleclose = false;
0130     QString type = m_map["type"];
0131     if(type == "Process") {
0132         m_configWidget->m_cbType->setCurrentIndex(0);
0133     }
0134     else if(type == "Konsole") {
0135         m_configWidget->m_cbType->setCurrentIndex(1);
0136         enablekonsoleclose = true;
0137     }
0138     else if(type == "DocumentViewer") {
0139         m_configWidget->m_cbType->setCurrentIndex(2);
0140     }
0141     else if(type == "Sequence") {
0142         m_configWidget->m_cbType->setCurrentIndex(3);
0143     }
0144     m_configWidget->m_ckClose->setEnabled(enablekonsoleclose);
0145 
0146     int index = m_classes.indexOf(m_map["class"]);
0147     if(index == -1) {
0148         index = m_classes.count() - 1;
0149     }
0150     m_configWidget->m_cbClass->setCurrentIndex(index);
0151     m_configWidget->m_ckClose->setChecked(m_map["close"] == "yes");
0152     m_configWidget->m_leSource->setText(m_map["from"]);
0153     m_configWidget->m_leTarget->setText(m_map["to"]);
0154     m_configWidget->m_leFile->setText(m_map["target"]);
0155     m_configWidget->m_leRelDir->setText(m_map["relDir"]);
0156 }
0157 
0158 void ToolConfig::setupGeneral()
0159 {
0160     m_configWidget->m_stackBasic->insertWidget(GBS_None, new QLabel(i18n("Use the \"Advanced\" tab to configure this tool."), this));
0161 
0162     m_ptcw = new ProcessToolConfigWidget(m_configWidget->m_stackBasic);
0163     m_configWidget->m_stackBasic->insertWidget(GBS_Process, m_ptcw);
0164     connect(m_ptcw->m_command, SIGNAL(textChanged(QString)), this, SLOT(setCommand(QString)));
0165     connect(m_ptcw->m_options, SIGNAL(textChanged()), this, SLOT(setOptions()));
0166 
0167     m_qtcw = new QuickToolConfigWidget(m_configWidget->m_stackBasic);
0168     m_configWidget->m_stackBasic->insertWidget(GBS_Sequence, m_qtcw);
0169     connect(m_qtcw, SIGNAL(sequenceChanged(QString)), this, SLOT(setSequence(QString)));
0170 
0171     m_configWidget->m_stackBasic->insertWidget(GBS_Error, new QLabel(i18n("Unknown tool type; your configuration data is malformed.\nPerhaps it is a good idea to restore the default settings."), this));
0172 
0173     m_configWidget->m_stackExtra->insertWidget(GES_None, new QWidget(this));
0174 
0175     m_LaTeXtcw = new LaTeXToolConfigWidget(m_configWidget->m_stackExtra);
0176     m_configWidget->m_stackExtra->insertWidget(GES_LaTeX, m_LaTeXtcw);
0177     connect(m_LaTeXtcw->m_ckRootDoc, SIGNAL(toggled(bool)), this, SLOT(setLaTeXCheckRoot(bool)));
0178     connect(m_LaTeXtcw->m_ckJump, SIGNAL(toggled(bool)), this, SLOT(setLaTeXJump(bool)));
0179     connect(m_LaTeXtcw->m_ckAutoRun, SIGNAL(toggled(bool)), this, SLOT(setLaTeXAuto(bool)));
0180 
0181 }
0182 
0183 void ToolConfig::updateGeneral()
0184 {
0185     QString type = m_map["type"];
0186 
0187     int basicPage = GBS_None;
0188     int extraPage = GES_None;
0189 
0190     if(type == "Process" || type == "Konsole") {
0191         basicPage = GBS_Process;
0192     }
0193     else if(type == "DocumentViewer") {
0194         basicPage = GBS_None;
0195     }
0196     else if(type == "Sequence") {
0197         basicPage = GBS_Sequence;
0198         m_qtcw->updateSequence(m_map["sequence"]);
0199     }
0200     else {
0201         basicPage = GBS_Error;
0202     }
0203 
0204     QString cls = m_map["class"];
0205     if(cls == "LaTeX") {
0206         extraPage = GES_LaTeX;
0207     }
0208 
0209     m_ptcw->m_command->setText(m_map["command"]);
0210     m_ptcw->m_options->setText(m_map["options"]);
0211 
0212     m_LaTeXtcw->m_ckRootDoc->setChecked(m_map["checkForRoot"] == "yes");
0213     m_LaTeXtcw->m_ckJump->setChecked(m_map["jumpToFirstError"] == "yes");
0214     m_LaTeXtcw->m_ckAutoRun->setChecked(m_map["autoRun"] == "yes");
0215 
0216     KILE_DEBUG_MAIN << "showing pages " << basicPage << " " << extraPage;
0217     m_configWidget->m_stackBasic->setCurrentIndex(basicPage);
0218     m_configWidget->m_stackExtra->setCurrentIndex(extraPage);
0219 
0220 }
0221 
0222 void ToolConfig::writeDefaults()
0223 {
0224     if (KMessageBox::warningContinueCancel(this, i18n("All your tool settings will be overwritten with the default settings.\nAre you sure you want to continue?")) == KMessageBox::Continue) {
0225         m_manager->factory()->resetToolConfigurations();
0226         m_config->sync();
0227         updateToollist();
0228         QStringList tools = KileTool::toolList(m_config, true);
0229         for (int i = 0; i < tools.count(); ++i) {
0230             switchTo(tools[i], false);// needed to retrieve the new map
0231             switchTo(tools[i], true); // this writes the newly retrieved entry map (and not an perhaps changed old one)
0232         }
0233         int index = indexQuickBuild();
0234         if(!tools.empty()) {
0235             switchTo(tools[index], false);
0236             m_configWidget->m_lstbTools->item(index)->setSelected(true);
0237         }
0238     }
0239 }
0240 
0241 void ToolConfig::updateToollist()
0242 {
0243     //KILE_DEBUG_MAIN << "==ToolConfig::updateToollist()====================";
0244     m_configWidget->m_lstbTools->clear();
0245     m_configWidget->m_lstbTools->addItems(KileTool::toolList(m_config, true));
0246     m_configWidget->m_lstbTools->sortItems();
0247 }
0248 
0249 void ToolConfig::setMenu(int index)
0250 {
0251     // internally, menu names are stored in English
0252     m_map["menu"] = m_configWidget->m_cbMenu->itemData(index).toString();
0253 }
0254 
0255 void ToolConfig::writeConfig()
0256 {
0257     //KILE_DEBUG_MAIN << "==ToolConfig::writeConfig()====================";
0258     //save config
0259     m_manager->saveEntryMap(m_current, m_map, false, false);
0260     // internally, menu names are stored in English
0261     KileTool::setGUIOptions(m_current,
0262                             m_configWidget->m_cbMenu->itemData(m_configWidget->m_cbMenu->currentIndex()).toString(),
0263                             m_icon,
0264                             m_config);
0265 }
0266 
0267 int ToolConfig::indexQuickBuild()
0268 {
0269     QList<QListWidgetItem *> itemsList = m_configWidget->m_lstbTools->findItems("QuickBuild", Qt::MatchExactly);
0270     if(itemsList.isEmpty()) {
0271         return 0;
0272     }
0273 
0274     return m_configWidget->m_lstbTools->row(itemsList.first());
0275 }
0276 
0277 void ToolConfig::switchConfig(int /*index*/)
0278 {
0279     //KILE_DEBUG_MAIN << "==ToolConfig::switchConfig(int /*index*/)====================";
0280     switchTo(m_current);
0281 }
0282 
0283 void ToolConfig::switchConfig(const QString & cfg)
0284 {
0285     //KILE_DEBUG_MAIN << "==ToolConfig::switchConfig(const QString & cfg)==========";
0286     for(int i = 0; i < m_configWidget->m_cbConfig->count(); ++i) {
0287         if (m_configWidget->m_cbConfig->itemText(i) == cfg) {
0288             m_configWidget->m_cbConfig->setCurrentIndex(i);
0289         }
0290     }
0291 }
0292 
0293 void ToolConfig::switchTo(const QString & tool, bool save /* = true */)
0294 {
0295     //KILE_DEBUG_MAIN << "==ToolConfig::switchTo(const QString & tool, bool save /* = true */)====================";
0296     //save config
0297     if(save) {
0298         writeConfig();
0299 
0300         //update the config number
0301         QString cf = m_configWidget->m_cbConfig->currentText();
0302         KileTool::setConfigName(m_current, cf, m_config);
0303     }
0304 
0305     m_current = tool;
0306 
0307     m_map.clear();
0308     if (!m_manager->retrieveEntryMap(m_current, m_map, false, false)) {
0309         qWarning() << "no entrymap";
0310     }
0311 
0312     updateConfiglist();
0313     updateGeneral();
0314     updateAdvanced();
0315 
0316     //show GUI info
0317     QString menu = KileTool::menuFor(m_current, m_config);
0318     int i = m_configWidget->m_cbMenu->findData(menu);
0319     if(i >= 0) {
0320         m_configWidget->m_cbMenu->setCurrentIndex(i);
0321     }
0322     else {
0323         m_configWidget->m_cbMenu->addItem(menu, QVariant(menu));
0324         m_configWidget->m_cbMenu->setCurrentIndex(m_configWidget->m_cbMenu->count() - 1);
0325     }
0326     m_icon = KileTool::iconFor(m_current, m_config);
0327     if(m_icon.isEmpty()) {
0328         m_configWidget->m_pshbIcon->setIcon(QIcon::fromTheme(QString()));
0329     }
0330     else {
0331         m_configWidget->m_pshbIcon->setIcon(QIcon::fromTheme(m_icon));
0332     }
0333 }
0334 
0335 void ToolConfig::updateConfiglist()
0336 {
0337     //KILE_DEBUG_MAIN << "==ToolConfig::updateConfiglist()=====================";
0338     m_configWidget->m_groupBox->setTitle(i18n("Choose a configuration for the tool %1",m_current));
0339     m_configWidget->m_cbConfig->clear();
0340     m_configWidget->m_cbConfig->addItems(KileTool::configNames(m_current, m_config));
0341     QString cfg = KileTool::configName(m_current, m_config);
0342     switchConfig(cfg);
0343     m_configWidget->m_cbConfig->setEnabled(m_configWidget->m_cbConfig->count() > 1);
0344 }
0345 
0346 void ToolConfig::selectIcon()
0347 {
0348     KILE_DEBUG_MAIN << "icon ---> " << m_icon;
0349     //KILE_DEBUG_MAIN << "==ToolConfig::selectIcon()=====================";
0350     KIconDialog *dlg = new KIconDialog(this);
0351     QString res = dlg->openDialog();
0352     if(m_icon != res) {
0353         if(res.isEmpty()) {
0354             return;
0355         }
0356 
0357         m_icon = res;
0358         writeConfig();
0359         if (m_icon.isEmpty()) {
0360             m_configWidget->m_pshbIcon->setIcon(QIcon::fromTheme(QString()));
0361         }
0362         else {
0363             m_configWidget->m_pshbIcon->setIcon(QIcon::fromTheme(m_icon));
0364         }
0365     }
0366 }
0367 
0368 void ToolConfig::newTool()
0369 {
0370     //KILE_DEBUG_MAIN << "==ToolConfig::newTool()=====================";
0371     NewToolWizard *ntw = new NewToolWizard(this);
0372     if (ntw->exec()) {
0373         QString toolName = ntw->toolName();
0374         QString parentTool = ntw->parentTool();
0375 
0376         writeStdConfig(toolName, "Default");
0377         if(parentTool != ntw->customTool()) {
0378             //copy tool info
0379             KileTool::Config tempMap;
0380             m_manager->retrieveEntryMap(parentTool, tempMap, false, false);
0381             KConfigGroup toolGroup = m_config->group(KileTool::groupFor(toolName, "Default"));
0382             toolGroup.writeEntry("class", tempMap["class"]);
0383             toolGroup.writeEntry("type", tempMap["type"]);
0384             toolGroup.writeEntry("close", tempMap["close"]);
0385             toolGroup.writeEntry("checkForRoot", tempMap["checkForRoot"]);
0386             toolGroup.writeEntry("autoRun", tempMap["autoRun"]);
0387             toolGroup.writeEntry("jumpToFirstError", tempMap["jumpToFirstError"]);
0388         }
0389 
0390         m_configWidget->m_lstbTools->blockSignals(true);
0391         updateToollist();
0392         switchTo(toolName);
0393         for(int i = 0; i < m_configWidget->m_lstbTools->count(); ++i) {
0394             if(m_configWidget->m_lstbTools->item(i)->text() == toolName) {
0395                 m_configWidget->m_lstbTools->setCurrentRow(i);
0396                 break;
0397             }
0398         }
0399         m_configWidget->m_lstbTools->blockSignals(false);
0400     }
0401 }
0402 
0403 void ToolConfig::newConfig()
0404 {
0405     //KILE_DEBUG_MAIN << "==ToolConfig::newConfig()=====================";
0406     writeConfig();
0407     bool ok;
0408     QString cfg = QInputDialog::getText(this, i18n("New Configuration"), i18n("Enter new configuration name:"), QLineEdit::Normal, "", &ok);
0409     if (ok && (!cfg.isEmpty())) {
0410         //copy config
0411         KConfigGroup toolGroup = m_config->group(KileTool::groupFor(m_current, cfg));
0412         for (QMap<QString,QString>::Iterator it  = m_map.begin(); it != m_map.end(); ++it) {
0413             toolGroup.writeEntry(it.key(), it.value());
0414         }
0415         KileTool::setConfigName(m_current, cfg, m_config);
0416         switchTo(m_current, false);
0417         switchConfig(cfg);
0418     }
0419 }
0420 
0421 void ToolConfig::writeStdConfig(const QString & tool, const QString & cfg)
0422 {
0423     KConfigGroup toolGroup = m_config->group(KileTool::groupFor(tool, cfg));
0424     toolGroup.writeEntry("class", "Compile");
0425     toolGroup.writeEntry("type", "Process");
0426     toolGroup.writeEntry("menu", "Compile");
0427     toolGroup.writeEntry("close", "no");
0428 
0429     m_config->group("Tools").writeEntry(tool, cfg);
0430 }
0431 
0432 void ToolConfig::removeTool()
0433 {
0434 //      KILE_DEBUG_MAIN << "==ToolConfig::removeTool()=====================";
0435     if(KMessageBox::warningContinueCancel(this, i18n("Are you sure you want to remove the tool %1?", m_current)) == KMessageBox::Continue) {
0436         QStringList cfgs = KileTool::configNames(m_current, m_config);
0437 //          KILE_DEBUG_MAIN << "cfgs " <<  cfgs.join(", ");
0438         for(int i = 0; i < cfgs.count(); ++i) {
0439 //              KILE_DEBUG_MAIN << "group " << KileTool::groupFor(m_current, cfgs[i]);
0440             m_config->deleteGroup(KileTool::groupFor(m_current, cfgs[i]));
0441         }
0442         m_config->group("Tools").deleteEntry(m_current);
0443         m_config->group("ToolsGUI").deleteEntry(m_current);
0444         m_config->sync();
0445 
0446         int index = m_configWidget->m_lstbTools->currentRow() - 1;
0447         if(index < 0) {
0448             index = 0;
0449         }
0450         QString tool = m_configWidget->m_lstbTools->item(index)->text();
0451 //          KILE_DEBUG_MAIN << "tool is " << tool;
0452         m_configWidget->m_lstbTools->blockSignals(true);
0453         updateToollist();
0454         m_configWidget->m_lstbTools->setCurrentRow(index);
0455         switchTo(tool, false);
0456         m_configWidget->m_lstbTools->blockSignals(false);
0457     }
0458 }
0459 
0460 void ToolConfig::removeConfig()
0461 {
0462     //KILE_DEBUG_MAIN << "==ToolConfig::removeConfig()=====================";
0463     writeConfig();
0464     if ( m_configWidget->m_cbConfig->count() > 1) {
0465         if(KMessageBox::warningContinueCancel(this, i18n("Are you sure that you want to remove this configuration?") )
0466                 == KMessageBox::Continue) {
0467             m_config->deleteGroup(KileTool::groupFor(m_current, m_configWidget->m_cbConfig->currentText()));
0468             int currentIndex = m_configWidget->m_cbConfig->currentIndex();
0469             int newIndex = 0;
0470             if(currentIndex == 0 )
0471                 newIndex = 1;
0472             KileTool::setConfigName(m_current, m_configWidget->m_cbConfig->itemText(newIndex), m_config);
0473             m_config->reparseConfiguration(); // FIXME should be not needed
0474             updateConfiglist();
0475             switchTo(m_current, false);
0476         }
0477     }
0478     else {
0479         KMessageBox::error(this, i18n("You need at least one configuration for each tool."), i18n("Cannot Remove Configuration"));
0480     }
0481 }
0482 
0483 void ToolConfig::switchClass(const QString & cls)
0484 {
0485     if(m_map["class"] != cls) {
0486         setClass(cls);
0487         emit(changed());
0488     }
0489 }
0490 
0491 void ToolConfig::switchType(int index)
0492 {
0493     switch (index) {
0494     case 0 :
0495         m_map["type"] = "Process";
0496         break;
0497     case 1 :
0498         m_map["type"] = "Konsole";
0499         break;
0500     case 2 :
0501         m_map["type"] = "DocumentViewer";
0502         break;
0503     case 3 :
0504         m_map["type"] = "Sequence";
0505         break;
0506     default :
0507         m_map["type"] = "Process";
0508         break;
0509     }
0510     emit(changed());
0511 }
0512 
0513 void ToolConfig::setCommand(const QString & command) {
0514     m_map["command"] = command.trimmed();
0515 }
0516 void ToolConfig::setOptions() {
0517     m_map["options"] = m_ptcw->m_options->toPlainText().trimmed();
0518 }
0519 void ToolConfig::setSequence(const QString & sequence) {
0520     m_map["sequence"] = sequence.trimmed();
0521 }
0522 void ToolConfig::setClose(bool on) {
0523     m_map["close"] = on ? "yes" : "no";
0524 }
0525 void ToolConfig::setTarget(const QString & trg) {
0526     m_map["target"] = trg.trimmed();
0527 }
0528 void ToolConfig::setRelDir(const QString & rd) {
0529     m_map["relDir"] = rd.trimmed();
0530 }
0531 void ToolConfig::setLaTeXCheckRoot(bool ck) {
0532     m_map["checkForRoot"] = ck ? "yes" : "no";
0533 }
0534 void ToolConfig::setLaTeXJump(bool ck) {
0535     m_map["jumpToFirstError"] = ck ? "yes" : "no";
0536 }
0537 void ToolConfig::setLaTeXAuto(bool ck) {
0538     m_map["autoRun"] = ck ? "yes" : "no";
0539 }
0540 void ToolConfig::setRunLyxServer(bool ck)
0541 {
0542     //KILE_DEBUG_MAIN << "setRunLyxServer";
0543     m_config->group("Tools").writeEntry("RunLyxServer", ck);
0544 }
0545 void ToolConfig::setFrom(const QString & from) {
0546     m_map["from"] = from.trimmed();
0547 }
0548 void ToolConfig::setTo(const QString & to) {
0549     m_map["to"] = to.trimmed();
0550 }
0551 void ToolConfig::setClass(const QString & cls) {
0552     m_map["class"] = cls.trimmed();
0553 }
0554 }
0555