00001
00002
00003
00004
00005
00006
00007 #include "CmdMediator.h"
00008 #include "DocumentSerialize.h"
00009 #include "Logger.h"
00010 #include "MainWindowModel.h"
00011 #include <QLocale>
00012 #include <QObject>
00013 #include <QTextStream>
00014 #include "QtToString.h"
00015 #include <QXmlStreamWriter>
00016 #include "Xml.h"
00017 #include "ZoomFactorInitial.h"
00018
00019
00020 const QLocale::NumberOption HIDE_GROUP_SEPARATOR = QLocale::OmitGroupSeparator;
00021
00022 MainWindowModel::MainWindowModel() :
00023 m_zoomControl (ZOOM_CONTROL_MENU_WHEEL_PLUSMINUS),
00024 m_zoomFactorInitial (DEFAULT_ZOOM_FACTOR_INITIAL),
00025 m_mainTitleBarFormat (MAIN_TITLE_BAR_FORMAT_PATH)
00026 {
00027
00028 }
00029
00030 MainWindowModel::MainWindowModel(const MainWindowModel &other) :
00031 m_locale (other.locale()),
00032 m_zoomControl (other.zoomControl()),
00033 m_zoomFactorInitial (other.zoomFactorInitial()),
00034 m_mainTitleBarFormat (other.mainTitleBarFormat())
00035 {
00036 }
00037
00038 MainWindowModel &MainWindowModel::operator=(const MainWindowModel &other)
00039 {
00040 m_locale = other.locale();
00041 m_zoomControl = other.zoomControl();
00042 m_zoomFactorInitial = other.zoomFactorInitial();
00043 m_mainTitleBarFormat = other.mainTitleBarFormat();
00044
00045 return *this;
00046 }
00047
00048 void MainWindowModel::loadXml(QXmlStreamReader &reader)
00049 {
00050 LOG4CPP_INFO_S ((*mainCat)) << "MainWindowModel::loadXml";
00051
00052 bool success = true;
00053
00054
00055 while ((reader.tokenType() != QXmlStreamReader::EndElement) ||
00056 (reader.name() != DOCUMENT_SERIALIZE_MAIN_WINDOW)){
00057 loadNextFromReader(reader);
00058 if (reader.atEnd()) {
00059 success = false;
00060 break;
00061 }
00062 }
00063
00064 if (!success) {
00065 reader.raiseError (QObject::tr ("Cannot read main window data"));
00066 }
00067 }
00068
00069 QLocale MainWindowModel::locale () const
00070 {
00071 return m_locale;
00072 }
00073
00074 MainTitleBarFormat MainWindowModel::mainTitleBarFormat() const
00075 {
00076 return m_mainTitleBarFormat;
00077 }
00078
00079 void MainWindowModel::printStream(QString indentation,
00080 QTextStream &str) const
00081 {
00082 str << indentation << "MainWindowModel\n";
00083
00084 indentation += INDENTATION_DELTA;
00085
00086 str << indentation << "locale=" << m_locale.name() << "\n";
00087 str << indentation << "zoomControl=" << m_zoomControl << "\n";
00088 str << indentation << "zoomFactorInitial=" << m_zoomFactorInitial << "\n";
00089 str << indentation << "mainWindowTitleBarFormat=" << (m_mainTitleBarFormat == MAIN_TITLE_BAR_FORMAT_NO_PATH ?
00090 "NoPath" :
00091 "Path");
00092 }
00093
00094 void MainWindowModel::saveXml(QXmlStreamWriter &writer) const
00095 {
00096 LOG4CPP_INFO_S ((*mainCat)) << "MainWindowModel::saveXml";
00097
00098 writer.writeStartElement(DOCUMENT_SERIALIZE_MAIN_WINDOW);
00099 writer.writeEndElement();
00100 }
00101
00102 void MainWindowModel::setLocale (QLocale::Language language,
00103 QLocale::Country country)
00104 {
00105 QLocale locale (language,
00106 country);
00107 locale.setNumberOptions(HIDE_GROUP_SEPARATOR);
00108
00109 m_locale = locale;
00110 }
00111
00112 void MainWindowModel::setLocale (const QLocale &locale)
00113 {
00114 m_locale = locale;
00115 m_locale.setNumberOptions(HIDE_GROUP_SEPARATOR);
00116 }
00117
00118 void MainWindowModel::setMainTitleBarFormat(MainTitleBarFormat mainTitleBarFormat)
00119 {
00120 m_mainTitleBarFormat = mainTitleBarFormat;
00121 }
00122
00123 void MainWindowModel::setZoomControl (ZoomControl zoomControl)
00124 {
00125 m_zoomControl = zoomControl;
00126 }
00127
00128 void MainWindowModel::setZoomFactorInitial(ZoomFactorInitial zoomFactorInitial)
00129 {
00130 m_zoomFactorInitial = zoomFactorInitial;
00131 }
00132
00133 ZoomControl MainWindowModel::zoomControl () const
00134 {
00135 return m_zoomControl;
00136 }
00137
00138 ZoomFactorInitial MainWindowModel::zoomFactorInitial() const
00139 {
00140 return m_zoomFactorInitial;
00141 }