diff --git a/kmymoney/dialogs/settings/ksettingsgeneraldecl.ui b/kmymoney/dialogs/settings/ksettingsgeneraldecl.ui --- a/kmymoney/dialogs/settings/ksettingsgeneraldecl.ui +++ b/kmymoney/dialogs/settings/ksettingsgeneraldecl.ui @@ -25,6 +25,22 @@ + + + Startup options + + + + + + Show splash screen + + + + + + + Autosave options diff --git a/kmymoney/kstartuplogo.h b/kmymoney/kstartuplogo.h --- a/kmymoney/kstartuplogo.h +++ b/kmymoney/kstartuplogo.h @@ -1,8 +1,9 @@ /*************************************************************************** kstartuplogo.h ------------------- - copyright : (C) 2000 by Michael Edwardes - email : mte@users.sourceforge.net + copyright : (C) 2000 by Michael Edwardes + (C) 2017 by Łukasz Wojniłowicz + ***************************************************************************/ /*************************************************************************** @@ -17,25 +18,17 @@ #ifndef KSTARTUPLOGO_H #define KSTARTUPLOGO_H +#include + // ---------------------------------------------------------------------------- // QT Includes -#include -#include +#include // ---------------------------------------------------------------------------- // Project Includes -// Simple class that just shows a picture -class KStartupLogo : public QObject -{ - Q_OBJECT -public: - KStartupLogo(); - ~KStartupLogo(); - -private: - QPointer m_splash; -}; + +std::unique_ptr createStartupLogo(); #endif diff --git a/kmymoney/kstartuplogo.cpp b/kmymoney/kstartuplogo.cpp --- a/kmymoney/kstartuplogo.cpp +++ b/kmymoney/kstartuplogo.cpp @@ -1,8 +1,9 @@ /*************************************************************************** kstartuplogo.cpp ------------------- - copyright : (C) 2000 by Michael Edwardes - email : mte@users.sourceforge.net + copyright : (C) 2000 by Michael Edwardes + (C) 2017 by Łukasz Wojniłowicz + ***************************************************************************/ /*************************************************************************** @@ -16,58 +17,37 @@ #include "kstartuplogo.h" + // ---------------------------------------------------------------------------- // QT Includes -#include #include -#include -#include +#include // ---------------------------------------------------------------------------- // KDE Includes -#include -#include +#include #include // ---------------------------------------------------------------------------- // Project Includes -#include "kmymoneyglobalsettings.h" -KStartupLogo::KStartupLogo() : - QObject(0), - m_splash(0) +std::unique_ptr createStartupLogo() { - // splash screen setting - if (!KMyMoneyGlobalSettings::showSplash()) - return; - - QString filename = QStandardPaths::locate(QStandardPaths::DataLocation, "pics/startlogo.png"); - QString localeFilename = KLocalizedString::localizedFilePath(filename); - QPixmap logoOverlay(localeFilename); - + KColorScheme scheme(QPalette::Active, KColorScheme::Selection); + QPixmap logoOverlay(KLocalizedString::localizedFilePath( + QStandardPaths::locate(QStandardPaths::DataLocation, + QStringLiteral("pics/startlogo.png")))); QPixmap logoPixmap(logoOverlay.size()); - logoPixmap.fill(KColorScheme(QPalette::Active, KColorScheme::Selection).background(KColorScheme::NormalBackground).color()); + logoPixmap.fill(scheme.background(KColorScheme::NormalBackground).color()); QPainter pixmapPainter(&logoPixmap); pixmapPainter.drawPixmap(0, 0, logoOverlay, 0, 0, logoOverlay.width(), logoOverlay.height()); - - if (!logoOverlay.isNull()) { - QSplashScreen* splash = new QSplashScreen(logoPixmap, Qt::WindowStaysOnTopHint); - splash->setFixedSize(logoPixmap.size()); - - splash->show(); - splash->showMessage(i18n("Loading %1...", KAboutData::applicationData().version()), //krazy:exclude=qmethods - Qt::AlignLeft | Qt::AlignBottom, - KColorScheme(QPalette::Active, KColorScheme::Selection) - .foreground(KColorScheme::NormalText).color()); - m_splash = splash; - } + std::unique_ptr splash(new QSplashScreen(logoPixmap, Qt::WindowStaysOnTopHint)); + splash->showMessage(i18n("Loading %1...", QCoreApplication::applicationVersion()), //krazy:exclude=qmethods + Qt::AlignLeft | Qt::AlignBottom, + scheme.foreground(KColorScheme::NormalText).color()); + splash->show(); + return splash; } - -KStartupLogo::~KStartupLogo() -{ - delete m_splash; -} - diff --git a/kmymoney/main.cpp b/kmymoney/main.cpp --- a/kmymoney/main.cpp +++ b/kmymoney/main.cpp @@ -18,8 +18,6 @@ #include #include -#include - // ---------------------------------------------------------------------------- // QT Includes @@ -58,7 +56,7 @@ KMyMoneyApp* kmymoney; -static int runKMyMoney(QApplication *a, std::unique_ptr splash, const QUrl & file, bool noFile); +static int runKMyMoney(QApplication *a, std::unique_ptr splash, const QUrl & file, bool noFile); int main(int argc, char *argv[]) { @@ -198,7 +196,7 @@ KMyMoneyUtils::checkConstants(); // show startup logo - std::unique_ptr splash = std::unique_ptr(new KStartupLogo()); + std::unique_ptr splash(KMyMoneyGlobalSettings::showSplash() ? createStartupLogo() : nullptr); app.processEvents(); // setup the MyMoneyMoney locale settings according to the KDE settings @@ -259,7 +257,7 @@ return rc; } -int runKMyMoney(QApplication *a, std::unique_ptr splash, const QUrl & file, bool noFile) +int runKMyMoney(QApplication *a, std::unique_ptr splash, const QUrl & file, bool noFile) { #ifdef KMM_DBUS if (QDBusConnection::sessionBus().interface()->isServiceRegistered("org.kde.kmymoney")) {