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

0001 /**************************************************************************
0002 *   Copyright (C) 2011-2012 by Michel Ludwig (michel.ludwig@kdemail.net)  *
0003 ***************************************************************************/
0004 
0005 /**************************************************************************
0006 *                                                                         *
0007 *   This program is free software; you can redistribute it and/or modify  *
0008 *   it under the terms of the GNU General Public License as published by  *
0009 *   the Free Software Foundation; either version 2 of the License, or     *
0010 *   (at your option) any later version.                                   *
0011 *                                                                         *
0012 ***************************************************************************/
0013 
0014 #include "livepreviewconfigwidget.h"
0015 
0016 #include "kileconfig.h"
0017 
0018 #include "livepreview_utils.h"
0019 
0020 #include "kiledebug.h"
0021 #include "kiletoolmanager.h"
0022 #include <KToggleAction>
0023 
0024 
0025 KileWidgetLivePreviewConfig::KileWidgetLivePreviewConfig(KConfig *config, QWidget *parent)
0026     : QWidget(parent),
0027       m_config(config)
0028 {
0029     setupUi(this);
0030 }
0031 
0032 KileWidgetLivePreviewConfig::~KileWidgetLivePreviewConfig()
0033 {
0034 }
0035 
0036 void KileWidgetLivePreviewConfig::readConfig()
0037 {
0038     if(KileConfig::livePreviewCompileOnlyAfterSaving()) {
0039         m_compileDocumentOnSaveRadioButton->setChecked(true);
0040     }
0041     else {
0042         m_compileDocumentOnChangesRadioButton->setChecked(true);
0043     }
0044 
0045     QString defaultToolName = KileConfig::livePreviewDefaultTool();
0046     if(defaultToolName.isEmpty()) {
0047         defaultToolName = LIVEPREVIEW_DEFAULT_TOOL_NAME;
0048     }
0049     KileTool::ToolConfigPair defaultTool = KileTool::ToolConfigPair::fromConfigStringRepresentation(defaultToolName);
0050 
0051     int currentIndex = 0;
0052     int defaultToolNameIndex = 0;
0053 
0054     QList<KileTool::ToolConfigPair> toolList = KileTool::toolsWithConfigurationsBasedOnClass(m_config, "LaTeXLivePreview");
0055     std::sort(toolList.begin(), toolList.end());
0056     m_previewDefaultToolComboBox->clear();
0057     for(QList<KileTool::ToolConfigPair>::iterator i = toolList.begin(); i != toolList.end(); ++i) {
0058         KileTool::ToolConfigPair currentTool = KileTool::ToolConfigPair(QString((*i).first), QString((*i).second));
0059 
0060         if(currentTool == defaultTool) {
0061             defaultToolNameIndex = currentIndex;
0062         }
0063         m_previewDefaultToolComboBox->addItem(currentTool.userStringRepresentation().remove("LivePreview-"), QVariant::fromValue(currentTool));
0064         currentIndex++;
0065     }
0066     m_previewDefaultToolComboBox->setCurrentIndex(defaultToolNameIndex);
0067 }
0068 
0069 void KileWidgetLivePreviewConfig::writeConfig()
0070 {
0071     KileConfig::setLivePreviewCompileOnlyAfterSaving(m_compileDocumentOnSaveRadioButton->isChecked());
0072 
0073     KileTool::ToolConfigPair defaultTool = m_previewDefaultToolComboBox->itemData(m_previewDefaultToolComboBox->currentIndex()).value<KileTool::ToolConfigPair>();
0074     KileConfig::setLivePreviewDefaultTool(defaultTool.configStringRepresentation());
0075 }
0076 
0077