passwordmanager/quickgui/applicationinfo.cpp

94 lines
3.1 KiB
C++
Raw Normal View History

2015-09-06 20:33:09 +02:00
#include "./applicationinfo.h"
2015-04-22 19:30:09 +02:00
#include <qmath.h>
2017-05-01 03:26:04 +02:00
#include <QDebug>
2015-04-22 19:30:09 +02:00
#include <QFile>
2017-05-01 03:26:04 +02:00
#include <QGuiApplication>
2015-04-22 19:30:09 +02:00
#include <QRegExp>
2017-05-01 03:26:04 +02:00
#include <QScreen>
2015-04-22 19:30:09 +02:00
#include <QUrl>
#include <QUrlQuery>
using namespace Io;
namespace QtGui {
ApplicationInfo::ApplicationInfo()
{
m_colors = new QQmlPropertyMap(this);
m_colors->insert(QLatin1String("white"), QVariant("#ffffff"));
m_colors->insert(QLatin1String("smokeGray"), QVariant("#eeeeee"));
m_colors->insert(QLatin1String("paleGray"), QVariant("#d7d6d5"));
m_colors->insert(QLatin1String("lightGray"), QVariant("#aeadac"));
m_colors->insert(QLatin1String("darkGray"), QVariant("#35322f"));
m_colors->insert(QLatin1String("mediumGray"), QVariant("#5d5b59"));
m_colors->insert(QLatin1String("doubleDarkGray"), QVariant("#1e1b18"));
m_colors->insert(QLatin1String("blue"), QVariant("#14aaff"));
m_colors->insert(QLatin1String("yetAnotherBlue"), QVariant("#428bca"));
m_colors->insert(QLatin1String("darkBlue"), QVariant("#14148c"));
m_colors->insert(QLatin1String("darkYellow"), QVariant("#dfdc00"));
m_colors->insert(QLatin1String("darkYellow"), QVariant("#eb881c"));
m_colors->insert(QLatin1String("almostBlack"), QVariant("#222222"));
m_constants = new QQmlPropertyMap(this);
m_constants->insert(QLatin1String("isMobile"), QVariant(isMobile()));
QRect rect = QGuiApplication::primaryScreen()->geometry();
m_ratio = isMobile() ? qMin(qMax(rect.width(), rect.height()) / 1136., qMin(rect.width(), rect.height()) / 640.) : .5;
m_sliderHandleWidth = sizeWithRatio(70);
m_sliderHandleHeight = sizeWithRatio(87);
m_sliderGapWidth = sizeWithRatio(100);
m_isPortraitMode = isMobile() ? rect.height() > rect.width() : false;
2017-05-01 03:26:04 +02:00
m_hMargin = m_isPortraitMode ? 20 * ratio() : 50 * ratio();
2015-04-22 19:30:09 +02:00
m_applicationWidth = isMobile() ? rect.width() : 1120;
m_constants->insert(QLatin1String("rowDelegateHeight"), QVariant(sizeWithRatio(118)));
m_fieldModel = new FieldModel(this);
2017-05-01 03:26:04 +02:00
if (isMobile()) {
2015-04-22 19:30:09 +02:00
connect(QGuiApplication::primaryScreen(), &QScreen::orientationChanged, this, &ApplicationInfo::notifyPortraitMode);
}
}
void ApplicationInfo::setApplicationWidth(const int newWidth)
{
if (newWidth != m_applicationWidth) {
m_applicationWidth = newWidth;
emit applicationWidthChanged();
}
}
QString ApplicationInfo::imagePath(const QString image)
{
return QStringLiteral("qrc:/qml/images/%1").arg(image);
}
void ApplicationInfo::notifyPortraitMode(Qt::ScreenOrientation orientation)
{
switch (orientation) {
case Qt::LandscapeOrientation:
case Qt::InvertedLandscapeOrientation:
setIsPortraitMode(false);
break;
case Qt::PortraitOrientation:
case Qt::InvertedPortraitOrientation:
setIsPortraitMode(true);
break;
default:
break;
}
}
void ApplicationInfo::setIsPortraitMode(const bool newMode)
{
if (m_isPortraitMode != newMode) {
m_isPortraitMode = newMode;
m_hMargin = m_isPortraitMode ? 20 * ratio() : 50 * ratio();
emit portraitModeChanged();
emit hMarginChanged();
}
}
}