File indexing completed on 2024-05-05 16:27:23

0001 /* This file is part of KGraphViewer.
0002    Copyright (C) 2005-2007 Gael de Chalendar <kleag@free.fr>
0003 
0004    KGraphViewer is free software; you can redistribute it and/or
0005    modify it under the terms of the GNU General Public
0006    License as published by the Free Software Foundation, version 2.
0007 
0008    This program is distributed in the hope that it will be useful,
0009    but WITHOUT ANY WARRANTY; without even the implied warranty of
0010    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0011    General Public License for more details.
0012 
0013    You should have received a copy of the GNU General Public License
0014    along with this program; if not, write to the Free Software
0015    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
0016    02110-1301, USA
0017 */
0018 
0019 #include "kgraphviewerConfigDialog.h"
0020 #include "kgraphviewer_debug.h"
0021 #include "kgraphviewersettings.h"
0022 #include "ui_preferencesAppearance.h"
0023 #include "ui_preferencesOpenInExistingWindow.h"
0024 #include "ui_preferencesParsing.h"
0025 #include "ui_preferencesReload.h"
0026 #include "ui_preferencesReopenPreviouslyOpenedFiles.h"
0027 
0028 #include <QDebug>
0029 #include <QFileDialog>
0030 #include <QTabWidget>
0031 #include <QUrl>
0032 #include <kconfig.h>
0033 #include <kedittoolbar.h>
0034 #include <kparts/partmanager.h>
0035 
0036 #include <KPluginFactory>
0037 #include <KService>
0038 #include <QMessageBox>
0039 #include <QStatusBar>
0040 #include <kconfigdialog.h>
0041 #include <klocalizedstring.h>
0042 
0043 //#include <kapp.h>
0044 //#include <dcopclient.h>
0045 
0046 #include <QDialogButtonBox>
0047 #include <iostream>
0048 
0049 KgvConfigurationDialog::KgvConfigurationDialog(QWidget *parent, const QString &name, KConfigSkeleton *config)
0050     : KConfigDialog(parent, name, config)
0051     , m_changed(false)
0052     , parsingWidget(new Ui::KGraphViewerPreferencesParsingWidget())
0053     , reloadWidget(new Ui::KGraphViewerPreferencesReloadWidget())
0054     , openingWidget(new Ui::KGraphViewerPreferencesOpenInExistingWindowWidget())
0055     , reopeningWidget(new Ui::KGraphViewerPreferencesReopenPreviouslyOpenedFilesWidget())
0056     , appearanceWidget(new Ui::KGraphViewerPreferencesAppearanceWidget())
0057 {
0058     QWidget *page4 = new QWidget();
0059     appearanceWidget->setupUi(page4);
0060     QWidget *page0 = new QWidget();
0061     parsingWidget->setupUi(page0);
0062     QWidget *page1 = new QWidget();
0063     reloadWidget->setupUi(page1);
0064     QWidget *page2 = new QWidget();
0065     openingWidget->setupUi(page2);
0066     QWidget *page3 = new QWidget();
0067     reopeningWidget->setupUi(page3);
0068 
0069     appearanceWidget->kcolorbutton->setColor(KGraphViewerSettings::backgroundColor());
0070     appearanceWidget->kcolorbutton->setDefaultColor(KGraphViewerSettings::backgroundColor());
0071     addPage(page4, i18n("Appearance"), "preferences-other", i18n("Appearance"), false);
0072     addPage(page0, i18n("Parsing"), "preferences-other", i18n("Parsing"), false);
0073     addPage(page1, i18n("Reloading"), "view-refresh", i18n("Reloading"), false);
0074     addPage(page2, i18n("Opening"), "document-open", i18n("Opening"), false);
0075     addPage(page3, i18n("Session Management"), "preferences-other", i18n("Session Management"), false);
0076     connect(parsingWidget->parsingMode, &QGroupBox::clicked, this, &KgvConfigurationDialog::settingChanged);
0077     connect(reloadWidget->reloadOnChangeMode, &QGroupBox::clicked, this, &KgvConfigurationDialog::settingChanged);
0078     connect(openingWidget->openInExistingWindowMode, &QGroupBox::clicked, this, &KgvConfigurationDialog::settingChanged);
0079     connect(reopeningWidget->reopenPreviouslyOpenedFilesMode, &QGroupBox::clicked, this, &KgvConfigurationDialog::settingChanged);
0080     connect(appearanceWidget->kcolorbutton, &KColorButton::changed, this, &KgvConfigurationDialog::slotBackgroundColorChanged);
0081 }
0082 
0083 KgvConfigurationDialog::~KgvConfigurationDialog()
0084 {
0085 }
0086 
0087 void KgvConfigurationDialog::settingChanged(int)
0088 {
0089     //   std::cerr << "KgvConfigurationDialog::settingChanged" << std::endl;
0090     m_changed = true;
0091 }
0092 
0093 bool KgvConfigurationDialog::hasChanged()
0094 {
0095     //   std::cerr << "KgvConfigurationDialog::hasChanged" << std::endl;
0096     return m_changed;
0097 }
0098 
0099 void KgvConfigurationDialog::updateSettings()
0100 {
0101     //   std::cerr << "KgvConfigurationDialog::updateSettings" << std::endl;
0102     m_changed = false;
0103     /*  switch (openingWidget->openInExistingWindowMode->selectedId())
0104       {
0105         case 0: // no
0106           KGraphViewerSettings::setOpenInExistingWindowMode("no");
0107         break;
0108         case 1: // yes
0109           KGraphViewerSettings::setOpenInExistingWindowMode("yes");
0110         break;
0111         case 2: // ask
0112           KGraphViewerSettings::setOpenInExistingWindowMode("ask");
0113         break;
0114         default: ;
0115       }
0116       switch (reloadWidget->reloadOnChangeMode->selectedId())
0117       {
0118         case 0: // no
0119           KGraphViewerSettings::setReloadOnChangeMode("no");
0120         break;
0121         case 1: // yes
0122           KGraphViewerSettings::setReloadOnChangeMode("yes");
0123         break;
0124         case 2: // ask
0125           KGraphViewerSettings::setReloadOnChangeMode("ask");
0126         break;
0127         default: ;
0128       }
0129       switch (reopeningWidget->reopenPreviouslyOpenedFilesMode->selectedId())
0130       {
0131         case 0: // no
0132           KGraphViewerSettings::setReopenPreviouslyOpenedFilesMode("no");
0133         break;
0134         case 1: // yes
0135           KGraphViewerSettings::setReopenPreviouslyOpenedFilesMode("yes");
0136         break;
0137         case 2: // ask
0138           KGraphViewerSettings::setReopenPreviouslyOpenedFilesMode("ask");
0139         break;
0140         default: ;
0141       }*/
0142     //@TODO to port
0143     // KGraphViewerSettings::writeConfig();
0144 }
0145 
0146 void KgvConfigurationDialog::updateWidgets()
0147 {
0148     m_changed = false;
0149     qCDebug(KGRAPHVIEWER_LOG) << "  openInExistingWindowMode: " << KGraphViewerSettings::openInExistingWindowMode();
0150     //   if (KGraphViewerSettings::openInExistingWindowMode() == "no")
0151     //     openingWidget->openInExistingWindowMode->setButton(0);
0152     //   else if (KGraphViewerSettings::openInExistingWindowMode() == "yes")
0153     //     openingWidget->openInExistingWindowMode->setButton(1);
0154     //   else if (KGraphViewerSettings::openInExistingWindowMode() == "ask")
0155     //     openingWidget->openInExistingWindowMode->setButton(2);
0156 
0157     //   std::cerr << "  reloadOnChangeMode: " << KGraphViewerSettings::reloadOnChangeMode() << std::endl;
0158     //   if (KGraphViewerSettings::reloadOnChangeMode() == "no")
0159     //     reloadWidget->reloadOnChangeMode->setButton(0);
0160     //   else if (KGraphViewerSettings::reloadOnChangeMode() == "yes")
0161     //     reloadWidget->reloadOnChangeMode->setButton(1);
0162     //   else if (KGraphViewerSettings::reloadOnChangeMode() == "ask")
0163     //     reloadWidget->reloadOnChangeMode->setButton(2);
0164 
0165     //   std::cerr << "  reopenPreviouslyOpenedFilesMode: " << KGraphViewerSettings::reopenPreviouslyOpenedFilesMode() << std::endl;
0166     /*  if (KGraphViewerSettings::reopenPreviouslyOpenedFilesMode() == "no")
0167         reopeningWidget->reopenPreviouslyOpenedFilesMode->setButton(0);
0168       else if (KGraphViewerSettings::reopenPreviouslyOpenedFilesMode() == "yes")
0169         reopeningWidget->reopenPreviouslyOpenedFilesMode->setButton(1);
0170       else if (KGraphViewerSettings::reopenPreviouslyOpenedFilesMode() == "ask")
0171         reopeningWidget->reopenPreviouslyOpenedFilesMode->setButton(2);*/
0172 }
0173 
0174 void KgvConfigurationDialog::slotBackgroundColorChanged(const QColor &color)
0175 {
0176     KGraphViewerSettings::setBackgroundColor(color);
0177     emit backgroundColorChanged(color);
0178 }
0179 
0180 #include "moc_kgraphviewerConfigDialog.cpp"