File indexing completed on 2024-05-19 15:27:53
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 /* This file was part of the KDE project 0020 Copyright (C) 2005 Jarosław Staniek <staniek@kde.org> 0021 0022 This program is free software; you can redistribute it and/or 0023 modify it under the terms of the GNU Library General Public 0024 License as published by the Free Software Foundation; either 0025 version 2 of the License, or (at your option) any later version. 0026 */ 0027 0028 #include "simpleprintingsettings.h" 0029 0030 // #include <core/keximainwindow.h> 0031 // #include <kexiutils/utils.h> 0032 0033 #include <KSharedConfig> 0034 #include <QApplication> 0035 // #include <kiconloader.h> 0036 // #include <kfontdialog.h> 0037 // #include <kurllabel.h> 0038 #include <QDebug> 0039 #include <kconfig.h> 0040 #include <kconfiggroup.h> 0041 0042 // #include <qimage.h> 0043 // #include <qlabel.h> 0044 // #include <qlayout.h> 0045 // #include <qpainter.h> 0046 // #include <qcheckbox.h> 0047 // #include <qwhatsthis.h> 0048 // #include <qpaintdevicemetrics.h> 0049 0050 // #include <kprinter.h> 0051 0052 namespace KGraphViewer 0053 { 0054 KGVSimplePrintingSettings::KGVSimplePrintingSettings() 0055 { 0056 pageLayout = KgvPageLayout::standardLayout(); 0057 addPageNumbers = true; 0058 addDateAndTime = true; 0059 addTableBorders = false; 0060 pageTitleFont = qApp->font(); 0061 pageTitleFont.setPointSizeF((double)QFontInfo(pageTitleFont).pointSize() * 1.5); 0062 pageTitleFont.setBold(true); 0063 fittingMode = FitToOnePage; 0064 fitToOnePage = true; 0065 horizFitting = 0; 0066 vertFitting = 0; 0067 chainedFittings = true; 0068 } 0069 0070 KGVSimplePrintingSettings::~KGVSimplePrintingSettings() 0071 { 0072 } 0073 0074 KGVSimplePrintingSettings KGVSimplePrintingSettings::load() 0075 { 0076 KGVSimplePrintingSettings settings; // this will set defaults 0077 0078 KConfigGroup simplegroup(KSharedConfig::openConfig(), "Simple Printing"); 0079 0080 // if (simplegroup.hasKey("pageTitleFont")) 0081 // settings.pageTitleFont = simplegroup.readFontEntry("pageTitleFont"); 0082 //! @todo system default? 0083 if (simplegroup.hasKey("pageFormat")) 0084 settings.pageLayout.format = KgvPageFormat::formatFromString(simplegroup.readEntry("pageFormat")); 0085 if (simplegroup.readEntry("pageOrientation", "portrait").toLower() == "landscape") 0086 settings.pageLayout.orientation = PG_LANDSCAPE; 0087 else 0088 settings.pageLayout.orientation = PG_PORTRAIT; 0089 if (simplegroup.hasKey("pageWidth")) 0090 settings.pageLayout.ptWidth = simplegroup.readEntry("pageWidth", 0.0); 0091 if (simplegroup.hasKey("pageHeight")) 0092 settings.pageLayout.ptHeight = simplegroup.readEntry("pageHeight", 0.0); 0093 if (simplegroup.hasKey("pageLeftMargin")) 0094 settings.pageLayout.ptLeft = simplegroup.readEntry("pageLeftMargin", 0.0); 0095 if (simplegroup.hasKey("pageRightMargin")) 0096 settings.pageLayout.ptRight = simplegroup.readEntry("pageRightMargin", 0.0); 0097 if (simplegroup.hasKey("pageTopMargin")) 0098 settings.pageLayout.ptTop = simplegroup.readEntry("pageTopMargin", 0.0); 0099 if (simplegroup.hasKey("pageBottomMargin")) 0100 settings.pageLayout.ptBottom = simplegroup.readEntry("pageBottomMargin", 0.0); 0101 settings.addPageNumbers = simplegroup.readEntry("addPageNumbersToPage", true); 0102 settings.addDateAndTime = simplegroup.readEntry("addDateAndTimePage", true); 0103 settings.addTableBorders = simplegroup.readEntry("addTableBorders", false); 0104 if (simplegroup.hasKey("fittingMode") && simplegroup.readEntry("fittingMode", 0) <= FitToSeveralPages) 0105 settings.fittingMode = FittingModes(simplegroup.readEntry("fittingMode", 0)); 0106 // std::cerr << "fittingMode after loading: " << settings.fittingMode << std::endl; 0107 settings.fitToOnePage = settings.fittingMode == FitToOnePage ? true : false; 0108 if (simplegroup.hasKey("horizFitting")) 0109 settings.horizFitting = simplegroup.readEntry("horizFitting", 0); 0110 if (simplegroup.hasKey("vertFitting")) 0111 settings.vertFitting = simplegroup.readEntry("vertFitting", 0); 0112 settings.chainedFittings = simplegroup.readEntry("chainedFittings", true); 0113 return settings; 0114 } 0115 0116 void KGVSimplePrintingSettings::save() 0117 { 0118 KConfigGroup simplegroup(KSharedConfig::openConfig(), "Simple Printing"); 0119 0120 simplegroup.writeEntry("pageTitleFont", pageTitleFont); 0121 simplegroup.writeEntry("pageFormat", KgvPageFormat::formatString(pageLayout.format)); 0122 simplegroup.writeEntry("pageOrientation", pageLayout.orientation == PG_PORTRAIT ? "portrait" : "landscape"); 0123 simplegroup.writeEntry("pageWidth", pageLayout.ptWidth); 0124 simplegroup.writeEntry("pageHeight", pageLayout.ptHeight); 0125 simplegroup.writeEntry("pageLeftMargin", pageLayout.ptLeft); 0126 simplegroup.writeEntry("pageRightMargin", pageLayout.ptRight); 0127 simplegroup.writeEntry("pageTopMargin", pageLayout.ptTop); 0128 simplegroup.writeEntry("pageBottomMargin", pageLayout.ptBottom); 0129 simplegroup.writeEntry("addPageNumbersToPage", addPageNumbers); 0130 simplegroup.writeEntry("addDateAndTimePage", addDateAndTime); 0131 simplegroup.writeEntry("addTableBorders", addTableBorders); 0132 simplegroup.writeEntry("fittingMode", (int)fittingMode); 0133 simplegroup.writeEntry("horizFitting", horizFitting); 0134 simplegroup.writeEntry("vertFitting", vertFitting); 0135 simplegroup.writeEntry("chainedFittings", chainedFittings); 0136 } 0137 0138 }