From 39c7580932b4f6770a3e5bdf41794b9d22efa79d Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 <0xFEEDC0DE64@gmail.com> Date: Thu, 21 Dec 2017 21:53:26 +0100 Subject: [PATCH] Added profileplugin --- plugins/plugins.pro | 1 + plugins/profileplugin/images/profile.png | Bin 0 -> 5577 bytes plugins/profileplugin/profileplugin.cpp | 38 ++++++++++++++++++ plugins/profileplugin/profileplugin.h | 24 +++++++++++ plugins/profileplugin/profileplugin.json | 0 plugins/profileplugin/profileplugin.pro | 35 ++++++++++++++++ .../profileplugin/profileplugin_resources.qrc | 5 +++ .../translations/profileplugin_de.ts | 12 ++++++ .../translations/profileplugin_en.ts | 12 ++++++ 9 files changed, 127 insertions(+) create mode 100644 plugins/profileplugin/images/profile.png create mode 100644 plugins/profileplugin/profileplugin.cpp create mode 100644 plugins/profileplugin/profileplugin.h create mode 100644 plugins/profileplugin/profileplugin.json create mode 100644 plugins/profileplugin/profileplugin.pro create mode 100644 plugins/profileplugin/profileplugin_resources.qrc create mode 100644 plugins/profileplugin/translations/profileplugin_de.ts create mode 100644 plugins/profileplugin/translations/profileplugin_en.ts diff --git a/plugins/plugins.pro b/plugins/plugins.pro index dab007d..f035e31 100644 --- a/plugins/plugins.pro +++ b/plugins/plugins.pro @@ -3,6 +3,7 @@ TEMPLATE = subdirs SUBDIRS += advancedviewplugin \ devtoolsplugin \ lunchmealplugin \ + profileplugin \ presenceplugin \ reportsplugin \ updaterplugin \ diff --git a/plugins/profileplugin/images/profile.png b/plugins/profileplugin/images/profile.png new file mode 100644 index 0000000000000000000000000000000000000000..e6e955fcc9165f5bc8b6b7ce89bc2263dcd199e8 GIT binary patch literal 5577 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 +#include +#include +#include +#include +#include +#include + +#include "mainwindow.h" + +ProfilePlugin::ProfilePlugin(QObject *parent) : + ZeiterfassungPlugin(parent) +{ + qDebug() << "called"; + + static auto dir = QDir(QCoreApplication::applicationDirPath()).absoluteFilePath(QStringLiteral("translations")); + + if(m_translator.load(QLocale(), QStringLiteral("profileplugin"), QStringLiteral("_"), dir)) + { + if(!QCoreApplication::installTranslator(&m_translator)) + { + qWarning() << "could not install translation profileplugin"; + } + } + else + { + qWarning() << "could not load translation profileplugin"; + } +} + +void ProfilePlugin::attachTo(MainWindow &mainWindow) +{ + auto dialog = new QDialog(&mainWindow); + mainWindow.menuTools()->addAction(QIcon(QStringLiteral(":/zeiterfassung/plugins/profileplugin/images/profile.png")), + tr("My profile"), dialog, &QDialog::open); +} diff --git a/plugins/profileplugin/profileplugin.h b/plugins/profileplugin/profileplugin.h new file mode 100644 index 0000000..ee1f67e --- /dev/null +++ b/plugins/profileplugin/profileplugin.h @@ -0,0 +1,24 @@ +#pragma once + +#include +#include + +#include "zeiterfassungplugin.h" + +class MainWindow; + +class Q_DECL_EXPORT ProfilePlugin : public ZeiterfassungPlugin +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID "dbsoftware.zeiterfassung.plugin/1.0" FILE "profileplugin.json") + Q_INTERFACES(ZeiterfassungPlugin) + +public: + explicit ProfilePlugin(QObject *parent = Q_NULLPTR); + + // ZeiterfassungPlugin interface + void attachTo(MainWindow &mainWindow) Q_DECL_OVERRIDE; + +private: + QTranslator m_translator; +}; diff --git a/plugins/profileplugin/profileplugin.json b/plugins/profileplugin/profileplugin.json new file mode 100644 index 0000000..e69de29 diff --git a/plugins/profileplugin/profileplugin.pro b/plugins/profileplugin/profileplugin.pro new file mode 100644 index 0000000..215c70b --- /dev/null +++ b/plugins/profileplugin/profileplugin.pro @@ -0,0 +1,35 @@ +QT += core network gui widgets + +TARGET = profileplugin +TEMPLATE = lib + +CONFIG += shared c++14 + +DESTDIR = $${OUT_PWD}/../../bin/plugins/zeiterfassung + +LIBS += -L$$OUT_PWD/../../lib -lzeiterfassungcorelib -lzeiterfassungguilib + +INCLUDEPATH += $$PWD/../../zeiterfassungcorelib $$PWD/../../zeiterfassungguilib +DEPENDPATH += $$PWD/../../zeiterfassungcorelib $$PWD/../../zeiterfassungguilib + +DEFINES += QT_DEPRECATED_WARNINGS QT_DISABLE_DEPRECATED_BEFORE=0x060000 QT_MESSAGELOGCONTEXT + +HEADERS += profileplugin.h + +SOURCES += profileplugin.cpp + +FORMS += + +RESOURCES += profileplugin_resources.qrc + +TRANSLATIONS += translations/profileplugin_en.ts \ + translations/profileplugin_de.ts + +OTHER_FILES += profileplugin.json + +include(../../lrelease.pri) + +COMPILED_TRANSLATIONS += $${OUT_PWD}/translations/profileplugin_en.qm \ + $${OUT_PWD}/translations/profileplugin_de.qm + +include(../copy_translations.pri) diff --git a/plugins/profileplugin/profileplugin_resources.qrc b/plugins/profileplugin/profileplugin_resources.qrc new file mode 100644 index 0000000..d1346b0 --- /dev/null +++ b/plugins/profileplugin/profileplugin_resources.qrc @@ -0,0 +1,5 @@ + + + images/profile.png + + diff --git a/plugins/profileplugin/translations/profileplugin_de.ts b/plugins/profileplugin/translations/profileplugin_de.ts new file mode 100644 index 0000000..0d7005a --- /dev/null +++ b/plugins/profileplugin/translations/profileplugin_de.ts @@ -0,0 +1,12 @@ + + + + + ProfilePlugin + + + My profile + + + + diff --git a/plugins/profileplugin/translations/profileplugin_en.ts b/plugins/profileplugin/translations/profileplugin_en.ts new file mode 100644 index 0000000..d73e0c8 --- /dev/null +++ b/plugins/profileplugin/translations/profileplugin_en.ts @@ -0,0 +1,12 @@ + + + + + ProfilePlugin + + + My profile + + + +