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 }