Engauge Digitizer  2
 All Classes Files Functions Variables Enumerations Enumerator Friends Pages
MainWindowModel.cpp
1 /******************************************************************************************************
2  * (C) 2014 markummitchell@github.com. This file is part of Engauge Digitizer, which is released *
3  * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file *
4  * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. *
5  ******************************************************************************************************/
6 
7 #include "CmdMediator.h"
8 #include "DocumentSerialize.h"
9 #include "Logger.h"
10 #include "MainWindowModel.h"
11 #include <QLocale>
12 #include <QObject>
13 #include <QTextStream>
14 #include "QtToString.h"
15 #include <QXmlStreamWriter>
16 #include "Xml.h"
17 #include "ZoomFactorInitial.h"
18 
20  m_zoomControl (ZOOM_CONTROL_MENU_WHEEL_PLUSMINUS),
21  m_zoomFactorInitial (DEFAULT_ZOOM_FACTOR_INITIAL),
22  m_mainTitleBarFormat (MAIN_TITLE_BAR_FORMAT_PATH)
23 {
24  // Locale member variable m_locale is initialized to default locale when default constructor is called
25 }
26 
28  m_locale (other.locale()),
29  m_zoomControl (other.zoomControl()),
30  m_zoomFactorInitial (other.zoomFactorInitial()),
31  m_mainTitleBarFormat (other.mainTitleBarFormat())
32 {
33 }
34 
36 {
37  m_locale = other.locale();
38  m_zoomControl = other.zoomControl();
39  m_zoomFactorInitial = other.zoomFactorInitial();
40  m_mainTitleBarFormat = other.mainTitleBarFormat();
41 
42  return *this;
43 }
44 
45 void MainWindowModel::loadXml(QXmlStreamReader &reader)
46 {
47  LOG4CPP_INFO_S ((*mainCat)) << "MainWindowModel::loadXml";
48 
49  bool success = true;
50 
51  // Read until end of this subtree
52  while ((reader.tokenType() != QXmlStreamReader::EndElement) ||
53  (reader.name() != DOCUMENT_SERIALIZE_MAIN_WINDOW)){
54  loadNextFromReader(reader);
55  if (reader.atEnd()) {
56  success = false;
57  break;
58  }
59  }
60 
61  if (!success) {
62  reader.raiseError (QObject::tr ("Cannot read main window data"));
63  }
64 }
65 
66 QLocale MainWindowModel::locale () const
67 {
68  return m_locale;
69 }
70 
71 MainTitleBarFormat MainWindowModel::mainTitleBarFormat() const
72 {
73  return m_mainTitleBarFormat;
74 }
75 
76 void MainWindowModel::printStream(QString indentation,
77  QTextStream &str) const
78 {
79  str << indentation << "MainWindowModel\n";
80 
81  indentation += INDENTATION_DELTA;
82 
83  str << indentation << "locale=" << m_locale.name() << "\n";
84  str << indentation << "zoomControl=" << m_zoomControl << "\n";
85  str << indentation << "zoomFactorInitial=" << m_zoomFactorInitial << "\n";
86  str << indentation << "mainWindowTitleBarFormat=" << (m_mainTitleBarFormat == MAIN_TITLE_BAR_FORMAT_NO_PATH ?
87  "NoPath" :
88  "Path");
89 }
90 
91 void MainWindowModel::saveXml(QXmlStreamWriter &writer) const
92 {
93  LOG4CPP_INFO_S ((*mainCat)) << "MainWindowModel::saveXml";
94 
95  writer.writeStartElement(DOCUMENT_SERIALIZE_MAIN_WINDOW);
96  writer.writeEndElement();
97 }
98 
99 void MainWindowModel::setLocale (QLocale::Language language,
100  QLocale::Country country)
101 {
102  QLocale locale (language,
103  country);
104 
105  m_locale = locale;
106 }
107 
108 void MainWindowModel::setLocale (const QLocale &locale)
109 {
110  m_locale = locale;
111 }
112 
113 void MainWindowModel::setMainTitleBarFormat(MainTitleBarFormat mainTitleBarFormat)
114 {
115  m_mainTitleBarFormat = mainTitleBarFormat;
116 }
117 
118 void MainWindowModel::setZoomControl (ZoomControl zoomControl)
119 {
120  m_zoomControl = zoomControl;
121 }
122 
123 void MainWindowModel::setZoomFactorInitial(ZoomFactorInitial zoomFactorInitial)
124 {
125  m_zoomFactorInitial = zoomFactorInitial;
126 }
127 
128 ZoomControl MainWindowModel::zoomControl () const
129 {
130  return m_zoomControl;
131 }
132 
133 ZoomFactorInitial MainWindowModel::zoomFactorInitial() const
134 {
135  return m_zoomFactorInitial;
136 }
MainWindowModel & operator=(const MainWindowModel &other)
Assignment constructor.
virtual void saveXml(QXmlStreamWriter &writer) const
Save entire model as xml into stream.
MainTitleBarFormat mainTitleBarFormat() const
Get method for MainWindow titlebar filename format.
void setLocale(QLocale::Language language, QLocale::Country country)
Set method for locale given attributes.
MainWindowModel()
Default constructor.
virtual void loadXml(QXmlStreamReader &reader)
Load model from serialized xml.
ZoomControl zoomControl() const
Get method for zoom control.
Model for DlgSettingsMainWindow.
void printStream(QString indentation, QTextStream &str) const
Debugging method that supports print method of this class and printStream method of some other class(...
void setZoomControl(ZoomControl zoomControl)
Set method for zoom control.
void setMainTitleBarFormat(MainTitleBarFormat mainTitleBarFormat)
Set method for MainWindow titlebar filename format.
void setZoomFactorInitial(ZoomFactorInitial zoomFactorInitial)
Set method for initial zoom factor.
ZoomFactorInitial zoomFactorInitial() const
Get method for initial zoom factor.
QLocale locale() const
Get method for locale.