From f397c64e9a1c3e1549aa784b5f4dcf87962f6bb5 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 <0xFEEDC0DE64@gmail.com> Date: Thu, 21 Dec 2017 21:42:23 +0100 Subject: [PATCH 01/12] Added webradioplugin --- plugins/plugins.pro | 3 +- plugins/webradioplugin/images/web-radio.png | Bin 0 -> 4209 bytes .../translations/webradioplugin_de.ts | 12 ++++++ .../translations/webradioplugin_en.ts | 12 ++++++ plugins/webradioplugin/webradioplugin.cpp | 40 ++++++++++++++++++ plugins/webradioplugin/webradioplugin.h | 22 ++++++++++ plugins/webradioplugin/webradioplugin.json | 0 plugins/webradioplugin/webradioplugin.pro | 35 +++++++++++++++ .../webradioplugin_resources.qrc | 5 +++ 9 files changed, 128 insertions(+), 1 deletion(-) create mode 100644 plugins/webradioplugin/images/web-radio.png create mode 100644 plugins/webradioplugin/translations/webradioplugin_de.ts create mode 100644 plugins/webradioplugin/translations/webradioplugin_en.ts create mode 100644 plugins/webradioplugin/webradioplugin.cpp create mode 100644 plugins/webradioplugin/webradioplugin.h create mode 100644 plugins/webradioplugin/webradioplugin.json create mode 100644 plugins/webradioplugin/webradioplugin.pro create mode 100644 plugins/webradioplugin/webradioplugin_resources.qrc diff --git a/plugins/plugins.pro b/plugins/plugins.pro index dab007d..5a6d1f5 100644 --- a/plugins/plugins.pro +++ b/plugins/plugins.pro @@ -6,4 +6,5 @@ SUBDIRS += advancedviewplugin \ presenceplugin \ reportsplugin \ updaterplugin \ - weatherplugin + weatherplugin \ + webradioplugin diff --git a/plugins/webradioplugin/images/web-radio.png b/plugins/webradioplugin/images/web-radio.png new file mode 100644 index 0000000000000000000000000000000000000000..c68d7c11690f317fe2d334bf8705d11bc5e390d5 GIT binary patch literal 4209 zcmeAS@N?(olHy`uVBq!ia0y~yU~m9o4mJh`hE_w~w{4WI=2eWdR@rErt<2IDFkwQ2%b(68{QnksEZEo-FhyQaZIi<(`3Vz# zCjM(+2@+8f6zEJ%d356ei<0%W#PVzRzQ5V?EA(z?>3iFD`OvGum#ueieqDQp<6FddB^iR)s4SP=D)jK`>Wn(%XOwZdb)a38JmRM0$H4yX0{~E>)_K~%G0o) z@xq^f^GnM9?A?8x>yFOcC@H26kZhVW$BdilA0~A4FdHq;tr3{8*yUBn;yIP)wdFK^KCRkn z60HKjPVuA1$@%IB*Um<$h#Ph8c} z!DeR|I%lvD^Eo+|aHiQk=5 zLh9Bx1%nJ$UI7o53DPGEuQOVFohsEKvhgCT;L45@5(=A--DqaAbZS}Lb*1U~F5|j| zCQ-V);co3}+>@1yXGmK2%-pCvLn`vXiwi2NmL`haVRB&7Htcz;Xcl|K%ps@h!Z!A^ zwi-nY0v#R~`u$AJ+vV%=R=O1sp z=xkw7#UZ@4^2+Mq6=JV7DpW0=G#outz>};jA?&c5Jg)b*xmRRqbRFon%S$VU>`m+n-W;$&Ralg3wK&YL_P6k1S zre}ISS6UqulmrYnBppafuxxuO(e`zk`VEGOFBOb(HI!IBTDe#_CckG$I3F1I^|HFy z$IkY7P6u@l7Izh#V4ld#q_|Btcb*h032-PeiA}C@IbPRQ~gt2a8XC2odxWby$?Zvsm2y#g^L{ zTcmGf4N}3#6a6PZpD(0e$Nw)gw zr2G7hwTul63Pk~*+#XoE?(h@j`>C*FgILE_$HjM@R~K{kep55MJv*bsY^kWpVTGLS zhj(mWX1C|Wo3?_c_yKfyA_lgf#QYYHLuE48&Q=Wl=soiEr9Ovw{ zYGG!2i!bIax|p{}bjy;vxySdexZU|U!#BG2;-pD_F5VP--Yu z;+nEZf@#mE-ggId9_j@wKd-_z<6A5HlGD>uyW?&=zVTvz!IaOwN>@u`yIfrMeRnEY zJ|j1@f44^cdxjIt6FIi3P2hFq`v2+p+}m?Xc7NKbv|>I--WTpt|1W-1{nt$5bS+P{ z&gvFt_7vRmok3yyr{!ONu3Pu>Vq~i7gR`Pe-%l_HeHGRhVDNF-J@w`GgT4nm`EIDo zDa`!)`;&_7nb-&S^#A2;;@jb_*l^~T<#iEuI2+e)wfx9%%Xic528IV)Ufy!|GzheN&dB6&_ojfyB0FBj#5c2LHk{SU?3|_3 zRx{i9y~~{Qrn`-Hlq)K{yfj7Cao1(f2@^!?CpGalHhk-3S8=+zL}-Z#%ex;+6Lh!o z_!S?>bG>f6hUN07E$?TsEPYoab?25_I>VverY_%)F}E<@+{AUs%HhV&w>!%drm5a$ z>91vUILG{})=F^8w(>^t<i>>FTom zPu_iO>&W@uaD>&vg=PJ|iobW~9$l){(J^DE)&UilXDmj12RRg6J$uBzUwC~Wso88L zbDN&muCt4oKX>ko!e{FI$yFtcj}IHK5OaUH(~g7X^exWP>#yC`K63lbwX2GCs#1{M z-?SI!m_D2dGPPVQsOgvz?UaYDO{g(Q(rH1VaJq> zzlyz9uJ`Ttwf(l4-_B3o`VWiPF*&!jHq6&GosJwTXt}}Ck;{M^r+prWS6Dc+iuo0#`$L3ze6 ziD$?9llGJ`r0!=rUZ{AeqvS!!;;_ur&q*&oJu^DycDF9A&4F$Es!jvVrsw=;&&mIO zbA0}>J2wKac(X4&!MeF^>XTRAi)wb)o5;;p*eiX(HOHzWmw{2aCuxoOEP)5iu2+70 zfGkhcWnRFV_A~Z;;XVsfGsDk6KKfsH>|W3K`7!^(H`g6pHpnbzDof1axURi0q9j0C zD>*TZ>-F5r7w+7?#>aeM1Gv7;CX!a>E?*Y`#W3?+@J0~_20Rm*Vh;Xeu~=s-WtAO zSBVpg{+0IC=k2~7IQ-7IzfSJ>viU9t*EX~!MlKHz+tm@wD7>BLcb?=dF`jG&7O|62 z&Z}h}JYBE-R)Cn864~n{7$kiX%X3LVH#KeZKZJk z!->uQkA7THe`u*{kZ)?PBh~hph2^rR?&Z7BrgfHby!C6i@q)qWwSWE2F3GCt`~JLt z{OR%jw{g6SHFj+%+hr41%`1J7o#Rm{%f+lL0k-9TijtZxO;zbhiiwLoygU8eqf4)D zS<2qF=av2xp157>8^u+{vzS^N*(JLiRY_06wD}D;*zn=`o~58`|gWx{(F9J*`7bw z_wSTs4zT}oTJP+f53|<%*tqrBE5ozW1u@J|85V5Wt?ak%^pkaGj<_wpnDzKgYxj@! z-~X|{pA(n2CU?s|>Czvo)8j7QuX?{buxClcB1YNI=l8LvoYH16F?#RQnDOz)p~9~# z+v}KTRa@-;$hL0FJ-3Ui4+by&vcg-vQ`6UL;>!a?d(P^*vV>nZ|9H*%{i92#UimL_ z*!T08_g#jD`L*xa>+i+d{#^P=K6cydx#73+?ab|>*8BEc3tSx*_=&q<3bQs(F3+yL za#3>`ddsBGmZ|eJeJGN-X}-Ac&*4-4Z}->!sM<4ADoimlFZbN1$TMH|9+VBZ$NJ!# zlud~E@;6qi>h+f|mwstF{mC@1WUGdi;7cetF)8cxM_CDo*05iH0h({hHa%h3x;*FTYP+ zync^U(Z&T+lp<^^HhsA9=X~{kd%Mt|KPI+Dnp&H-KJ=1gJ>MLpm8**;q&Z2IM>j7& zw|6_Ug2%BVCm9164R{hNJ~@8>(RloByxgpUc`NvS2T$#KKfTNK>CTg~cFDSrBD~Fe za&BBsywQ98aKrT7(tj2ov#iVhT3c-O%ES72%?G#JUl~sDtADrR4_Hx3|%fCPByx` z90}_&cocFn?wur`#(YD$B?o0Dgny`Vcv3&Paf0TQMgxvx3x0nOZ~2o_DPW^=dP={F zVVXa`=cW+LXOf#OLd~kvl+Twe-}_*$jbmcE0f#m71a?JcC3^{LjsBS6Y3z#9d0ZW{ ztKUAj_2^NR&vsSmJ2T2YwH$1*u=q5EJyC$?7+;t2cAj@CCwkXR6n7}{zvnpNPkCP3 zy6NH#bElr4zO86-@@${$w@vP5uDtcq_~yf}Z}Yz0Us19*)ba`2{QCk8vqeAnY1C*t z+~GQ@_ul@~k!siNO0VzkZU*)B{_FmV|GXm9q9|tXT?PgQ)e_f;lH{V)#FA9ql*E!$ z1|tIlOI<@FT?5My19K~5Gb=+AT?2C~1A{6t15oD|tO2Cb3Zjd_$iUD**T7KM&@jZn z(#p`(%G3g)LF5@jAIt`@hTQy=%(P0}8d7)fFk)a}FabHqCo?%UuQ-( + + + + WebRadioPlugin + + + Play webradio + + + + diff --git a/plugins/webradioplugin/translations/webradioplugin_en.ts b/plugins/webradioplugin/translations/webradioplugin_en.ts new file mode 100644 index 0000000..9db9347 --- /dev/null +++ b/plugins/webradioplugin/translations/webradioplugin_en.ts @@ -0,0 +1,12 @@ + + + + + WebRadioPlugin + + + Play webradio + + + + diff --git a/plugins/webradioplugin/webradioplugin.cpp b/plugins/webradioplugin/webradioplugin.cpp new file mode 100644 index 0000000..98a0b99 --- /dev/null +++ b/plugins/webradioplugin/webradioplugin.cpp @@ -0,0 +1,40 @@ +#include "webradioplugin.h" + +#include +#include +#include +#include +#include +#include +#include + +#include "mainwindow.h" + +WebRadioPlugin::WebRadioPlugin(QObject *parent) : + ZeiterfassungPlugin(parent) +{ + qDebug() << "called"; + + static auto dir = QDir(QCoreApplication::applicationDirPath()).absoluteFilePath(QStringLiteral("translations")); + + if(m_translator.load(QLocale(), QStringLiteral("webradioplugin"), QStringLiteral("_"), dir)) + { + if(!QCoreApplication::installTranslator(&m_translator)) + { + qWarning() << "could not install translation webradioplugin"; + } + } + else + { + qWarning() << "could not load translation webradioplugin"; + } +} + +void WebRadioPlugin::attachTo(MainWindow &mainWindow) +{ + auto dialog = new QDialog(&mainWindow); + dialog->setWindowFlag(Qt::WindowCloseButtonHint, true); + dialog->setWindowFlag(Qt::WindowContextHelpButtonHint, false); + mainWindow.menuTools()->addAction(QIcon(QStringLiteral(":/zeiterfassung/plugins/webradioplugin/images/web-radio.png")), + tr("Play webradio"), dialog, &QWidget::show); +} diff --git a/plugins/webradioplugin/webradioplugin.h b/plugins/webradioplugin/webradioplugin.h new file mode 100644 index 0000000..e11932d --- /dev/null +++ b/plugins/webradioplugin/webradioplugin.h @@ -0,0 +1,22 @@ +#pragma once + +#include +#include + +#include "zeiterfassungplugin.h" + +class Q_DECL_EXPORT WebRadioPlugin : public ZeiterfassungPlugin +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID "dbsoftware.zeiterfassung.plugin/1.0" FILE "webradioplugin.json") + Q_INTERFACES(ZeiterfassungPlugin) + +public: + explicit WebRadioPlugin(QObject *parent = Q_NULLPTR); + + // ZeiterfassungPlugin interface + void attachTo(MainWindow &mainWindow) Q_DECL_OVERRIDE; + +private: + QTranslator m_translator; +}; diff --git a/plugins/webradioplugin/webradioplugin.json b/plugins/webradioplugin/webradioplugin.json new file mode 100644 index 0000000..e69de29 diff --git a/plugins/webradioplugin/webradioplugin.pro b/plugins/webradioplugin/webradioplugin.pro new file mode 100644 index 0000000..d56f0d6 --- /dev/null +++ b/plugins/webradioplugin/webradioplugin.pro @@ -0,0 +1,35 @@ +QT += core network gui widgets multimedia + +TARGET = webradioplugin +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 += webradioplugin.h + +SOURCES += webradioplugin.cpp + +FORMS += + +RESOURCES += webradioplugin_resources.qrc + +TRANSLATIONS += translations/webradioplugin_en.ts \ + translations/webradioplugin_de.ts + +OTHER_FILES += webradioplugin.json + +include(../../lrelease.pri) + +COMPILED_TRANSLATIONS += $${OUT_PWD}/translations/webradioplugin_en.qm \ + $${OUT_PWD}/translations/webradioplugin_de.qm + +include(../copy_translations.pri) diff --git a/plugins/webradioplugin/webradioplugin_resources.qrc b/plugins/webradioplugin/webradioplugin_resources.qrc new file mode 100644 index 0000000..f7b12b5 --- /dev/null +++ b/plugins/webradioplugin/webradioplugin_resources.qrc @@ -0,0 +1,5 @@ + + + images/web-radio.png + + -- 2.50.1 From 75f5825d2b08aecbe314494da3e8421e01dd1639 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 <0xFEEDC0DE64@gmail.com> Date: Thu, 21 Dec 2017 21:46:47 +0100 Subject: [PATCH 02/12] Added WebRadioDialog --- .../translations/webradioplugin_de.ts | 15 +++- .../translations/webradioplugin_en.ts | 15 +++- plugins/webradioplugin/webradiodialog.cpp | 26 ++++++ plugins/webradioplugin/webradiodialog.h | 27 +++++++ plugins/webradioplugin/webradiodialog.ui | 81 +++++++++++++++++++ plugins/webradioplugin/webradioplugin.cpp | 7 +- plugins/webradioplugin/webradioplugin.pro | 9 ++- 7 files changed, 171 insertions(+), 9 deletions(-) create mode 100644 plugins/webradioplugin/webradiodialog.cpp create mode 100644 plugins/webradioplugin/webradiodialog.h create mode 100644 plugins/webradioplugin/webradiodialog.ui diff --git a/plugins/webradioplugin/translations/webradioplugin_de.ts b/plugins/webradioplugin/translations/webradioplugin_de.ts index 3e2f9c2..b0a61dd 100644 --- a/plugins/webradioplugin/translations/webradioplugin_de.ts +++ b/plugins/webradioplugin/translations/webradioplugin_de.ts @@ -1,10 +1,23 @@ + + WebRadioDialog + + + Dialog + + + + + PushButton + + + WebRadioPlugin - + Play webradio diff --git a/plugins/webradioplugin/translations/webradioplugin_en.ts b/plugins/webradioplugin/translations/webradioplugin_en.ts index 9db9347..6ed3a57 100644 --- a/plugins/webradioplugin/translations/webradioplugin_en.ts +++ b/plugins/webradioplugin/translations/webradioplugin_en.ts @@ -1,10 +1,23 @@ + + WebRadioDialog + + + Dialog + + + + + PushButton + + + WebRadioPlugin - + Play webradio diff --git a/plugins/webradioplugin/webradiodialog.cpp b/plugins/webradioplugin/webradiodialog.cpp new file mode 100644 index 0000000..8625153 --- /dev/null +++ b/plugins/webradioplugin/webradiodialog.cpp @@ -0,0 +1,26 @@ +#include "webradiodialog.h" +#include "ui_webradiodialog.h" + +#include + +WebRadioDialog::WebRadioDialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::WebRadioDialog), + m_player(new QMediaPlayer(this)) +{ + ui->setupUi(this); + + m_player->setMedia(QMediaContent(QUrl(QStringLiteral("http://stream.drumandbass.fm:9002")))); + + connect(ui->pushButton, &QAbstractButton::pressed, m_player, &QMediaPlayer::play); +} + +WebRadioDialog::~WebRadioDialog() +{ + delete ui; +} + +void WebRadioDialog::play() +{ + +} diff --git a/plugins/webradioplugin/webradiodialog.h b/plugins/webradioplugin/webradiodialog.h new file mode 100644 index 0000000..2bdd804 --- /dev/null +++ b/plugins/webradioplugin/webradiodialog.h @@ -0,0 +1,27 @@ +#ifndef WEBRADIODIALOG_H +#define WEBRADIODIALOG_H + +#include + +class QMediaPlayer; + +namespace Ui { class WebRadioDialog; } + +class WebRadioDialog : public QDialog +{ + Q_OBJECT + +public: + explicit WebRadioDialog(QWidget *parent = 0); + ~WebRadioDialog(); + +private Q_SLOTS: + void play(); + +private: + Ui::WebRadioDialog *ui; + + QMediaPlayer *m_player; +}; + +#endif // WEBRADIODIALOG_H diff --git a/plugins/webradioplugin/webradiodialog.ui b/plugins/webradioplugin/webradiodialog.ui new file mode 100644 index 0000000..90cbbfb --- /dev/null +++ b/plugins/webradioplugin/webradiodialog.ui @@ -0,0 +1,81 @@ + + + WebRadioDialog + + + + 0 + 0 + 433 + 300 + + + + Dialog + + + + + 30 + 240 + 341 + 32 + + + + Qt::Horizontal + + + QDialogButtonBox::Close + + + + + + 110 + 60 + 191 + 51 + + + + PushButton + + + + + + + buttonBox + accepted() + WebRadioDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + WebRadioDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/plugins/webradioplugin/webradioplugin.cpp b/plugins/webradioplugin/webradioplugin.cpp index 98a0b99..d6bd079 100644 --- a/plugins/webradioplugin/webradioplugin.cpp +++ b/plugins/webradioplugin/webradioplugin.cpp @@ -4,12 +4,13 @@ #include #include #include -#include #include #include #include "mainwindow.h" +#include "webradiodialog.h" + WebRadioPlugin::WebRadioPlugin(QObject *parent) : ZeiterfassungPlugin(parent) { @@ -32,9 +33,7 @@ WebRadioPlugin::WebRadioPlugin(QObject *parent) : void WebRadioPlugin::attachTo(MainWindow &mainWindow) { - auto dialog = new QDialog(&mainWindow); - dialog->setWindowFlag(Qt::WindowCloseButtonHint, true); - dialog->setWindowFlag(Qt::WindowContextHelpButtonHint, false); + auto dialog = new WebRadioDialog(&mainWindow); mainWindow.menuTools()->addAction(QIcon(QStringLiteral(":/zeiterfassung/plugins/webradioplugin/images/web-radio.png")), tr("Play webradio"), dialog, &QWidget::show); } diff --git a/plugins/webradioplugin/webradioplugin.pro b/plugins/webradioplugin/webradioplugin.pro index d56f0d6..b6ae942 100644 --- a/plugins/webradioplugin/webradioplugin.pro +++ b/plugins/webradioplugin/webradioplugin.pro @@ -14,11 +14,14 @@ DEPENDPATH += $$PWD/../../zeiterfassungcorelib $$PWD/../../zeiterfassungguilib DEFINES += QT_DEPRECATED_WARNINGS QT_DISABLE_DEPRECATED_BEFORE=0x060000 QT_MESSAGELOGCONTEXT -HEADERS += webradioplugin.h +HEADERS += webradioplugin.h \ + webradiodialog.h -SOURCES += webradioplugin.cpp +SOURCES += webradioplugin.cpp \ + webradiodialog.cpp -FORMS += +FORMS += \ + webradiodialog.ui RESOURCES += webradioplugin_resources.qrc -- 2.50.1 From f877ab8a0a1c01af6a3d0eae9b933766f416e006 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 <0xFEEDC0DE64@gmail.com> Date: Thu, 21 Dec 2017 21:47:58 +0100 Subject: [PATCH 03/12] Project files cleanup --- plugins/devtoolsplugin/devtoolsplugin.pro | 11 +++++------ plugins/reportsplugin/reportsplugin.pro | 4 ++-- zeiterfassungcorelib/zeiterfassungcorelib.pro | 1 + .../dialogs/authenticationdialog.h | 4 +--- .../translations/zeiterfassungguilib_de.ts | 16 ++++++++-------- .../translations/zeiterfassungguilib_en.ts | 16 ++++++++-------- 6 files changed, 25 insertions(+), 27 deletions(-) diff --git a/plugins/devtoolsplugin/devtoolsplugin.pro b/plugins/devtoolsplugin/devtoolsplugin.pro index 424bf9e..b6af1b6 100644 --- a/plugins/devtoolsplugin/devtoolsplugin.pro +++ b/plugins/devtoolsplugin/devtoolsplugin.pro @@ -15,15 +15,14 @@ DEPENDPATH += $$PWD/../../zeiterfassungcorelib $$PWD/../../zeiterfassungguilib DEFINES += QT_DEPRECATED_WARNINGS QT_DISABLE_DEPRECATED_BEFORE=0x060000 QT_MESSAGELOGCONTEXT HEADERS += devtoolsplugin.h \ - logmodel.h \ - logdialog.h + logmodel.h \ + logdialog.h SOURCES += devtoolsplugin.cpp \ - logmodel.cpp \ - logdialog.cpp + logmodel.cpp \ + logdialog.cpp -FORMS += \ - logdialog.ui +FORMS += logdialog.ui RESOURCES += devtoolsplugin_resources.qrc diff --git a/plugins/reportsplugin/reportsplugin.pro b/plugins/reportsplugin/reportsplugin.pro index 8a9a6d8..706fb62 100644 --- a/plugins/reportsplugin/reportsplugin.pro +++ b/plugins/reportsplugin/reportsplugin.pro @@ -15,10 +15,10 @@ DEPENDPATH += $$PWD/../../zeiterfassungcorelib $$PWD/../../zeiterfassungguilib DEFINES += QT_DEPRECATED_WARNINGS QT_DISABLE_DEPRECATED_BEFORE=0x060000 QT_MESSAGELOGCONTEXT HEADERS += reportsplugin.h \ - reportswidget.h + reportswidget.h SOURCES += reportsplugin.cpp \ - reportswidget.cpp + reportswidget.cpp FORMS += diff --git a/zeiterfassungcorelib/zeiterfassungcorelib.pro b/zeiterfassungcorelib/zeiterfassungcorelib.pro index d653219..079d25e 100644 --- a/zeiterfassungcorelib/zeiterfassungcorelib.pro +++ b/zeiterfassungcorelib/zeiterfassungcorelib.pro @@ -1,4 +1,5 @@ QT += core network +QT -= gui widgets TARGET = zeiterfassungcorelib TEMPLATE = lib diff --git a/zeiterfassungguilib/dialogs/authenticationdialog.h b/zeiterfassungguilib/dialogs/authenticationdialog.h index f294ccc..128b25b 100644 --- a/zeiterfassungguilib/dialogs/authenticationdialog.h +++ b/zeiterfassungguilib/dialogs/authenticationdialog.h @@ -4,9 +4,7 @@ #include "zeiterfassungguilib_global.h" -namespace Ui { -class AuthenticationDialog; -} +namespace Ui { class AuthenticationDialog; } class ZEITERFASSUNGGUILIBSHARED_EXPORT AuthenticationDialog : public QDialog { diff --git a/zeiterfassungguilib/translations/zeiterfassungguilib_de.ts b/zeiterfassungguilib/translations/zeiterfassungguilib_de.ts index 5c5b234..d66d22a 100644 --- a/zeiterfassungguilib/translations/zeiterfassungguilib_de.ts +++ b/zeiterfassungguilib/translations/zeiterfassungguilib_de.ts @@ -168,8 +168,8 @@ - - + + Start Kommen @@ -266,19 +266,19 @@ - + Could not create booking! Konnte Buchung nicht erstellen! - + Could not edit time assignment! Konnte Kontierung nicht bearbeiten! - - + + %0 (%1) %0 (%1) @@ -288,8 +288,8 @@ Konnte Kontierung nicht erstellen! - - + + Switch Wechseln diff --git a/zeiterfassungguilib/translations/zeiterfassungguilib_en.ts b/zeiterfassungguilib/translations/zeiterfassungguilib_en.ts index d2dbf7d..8c38655 100644 --- a/zeiterfassungguilib/translations/zeiterfassungguilib_en.ts +++ b/zeiterfassungguilib/translations/zeiterfassungguilib_en.ts @@ -168,8 +168,8 @@ - - + + Start @@ -266,7 +266,7 @@ - + Could not create booking! @@ -277,19 +277,19 @@ - + Could not edit time assignment! - - + + Switch - - + + %0 (%1) -- 2.50.1 From 43515e32452622476970a3d69d610dfb48db383c Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 <0xFEEDC0DE64@gmail.com> Date: Thu, 21 Dec 2017 21:49:02 +0100 Subject: [PATCH 04/12] Added QStringLiteral and tr --- plugins/updaterplugin/updaterdialog.cpp | 4 ++-- plugins/weatherplugin/weatherwidget.cpp | 4 ++-- zeiterfassungguilib/stripswidget.cpp | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/updaterplugin/updaterdialog.cpp b/plugins/updaterplugin/updaterdialog.cpp index 55f5bdb..74272d4 100644 --- a/plugins/updaterplugin/updaterdialog.cpp +++ b/plugins/updaterplugin/updaterdialog.cpp @@ -31,8 +31,8 @@ UpdaterDialog::UpdaterDialog(MainWindow &mainWindow) : connect(ui->buttonBox, &QDialogButtonBox::rejected, this, &UpdaterDialog::rejectedSlot); auto url = m_mainWindow.settings().value(QStringLiteral("UpdaterPlugin/url"), - QUrl(QStringLiteral("https://api.github.com/repos/0xFEEDC0DE64/QtZeiterfassung/releases"))).toUrl(); - m_reply = m_mainWindow.erfassung().manager()->get(QNetworkRequest(url)); + QStringLiteral("https://api.github.com/repos/0xFEEDC0DE64/QtZeiterfassung/releases")).toString(); + m_reply = m_mainWindow.erfassung().manager()->get(QNetworkRequest(QUrl(url))); connect(m_reply, &QNetworkReply::finished, this, &UpdaterDialog::finished); } diff --git a/plugins/weatherplugin/weatherwidget.cpp b/plugins/weatherplugin/weatherwidget.cpp index 76efa1a..4bdb88d 100644 --- a/plugins/weatherplugin/weatherwidget.cpp +++ b/plugins/weatherplugin/weatherwidget.cpp @@ -69,14 +69,14 @@ void WeatherWidget::finished() if(!obj.contains(QStringLiteral("weather"))) { qWarning() << "no weather" << obj; - setText("No weater found"); + setText(tr("No weather found")); goto after; } if(!obj.contains(QStringLiteral("main"))) { qWarning() << "no main" << obj; - setText("No main found"); + setText(tr("No main found")); goto after; } diff --git a/zeiterfassungguilib/stripswidget.cpp b/zeiterfassungguilib/stripswidget.cpp index 2abac45..ab0e37c 100644 --- a/zeiterfassungguilib/stripswidget.cpp +++ b/zeiterfassungguilib/stripswidget.cpp @@ -438,7 +438,7 @@ bool StripsWidget::createStrips() auto label = new QLabel(tr("Strip rendering aborted due error.\n" "Your bookings and time assignments for this day are in an illegal state!") % "\n" % errorMessage, this); - label->setStyleSheet("color: red;"); + label->setStyleSheet(QStringLiteral("color: red;")); m_stripsLayout->addWidget(label); } -- 2.50.1 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 05/12] 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 + + + + -- 2.50.1 From 01889ffe684e71a61c51c313188c372affdd506d Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 <0xFEEDC0DE64@gmail.com> Date: Fri, 22 Dec 2017 16:47:09 +0100 Subject: [PATCH 06/12] Fixed holidays not showing up #44 --- plugins/reportsplugin/reportswidget.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/reportsplugin/reportswidget.cpp b/plugins/reportsplugin/reportswidget.cpp index 1aded66..73cfae6 100644 --- a/plugins/reportsplugin/reportswidget.cpp +++ b/plugins/reportsplugin/reportswidget.cpp @@ -108,7 +108,7 @@ void ReportsWidget::finished() } { - static QRegularExpression regex(QStringLiteral("Urlaubsanspruch +([0-9]+\\.[0-9]+\\-?) +([0-9]+\\.[0-9]+\\-?)")); + static QRegularExpression regex(QStringLiteral("Urlaubsanspruch +(\\-?[0-9]+\\.[0-9]+) +(\\-?[0-9]+\\.[0-9]+)")); auto match = regex.match(content); if(match.hasMatch()) m_labelHolidays->setText(tr("%0: %1").arg(tr("Holidays")).arg(match.captured(2))); -- 2.50.1 From 85e208b69bc0453cc7bbb8a2d8b962513ad718c0 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 <0xFEEDC0DE64@gmail.com> Date: Fri, 22 Dec 2017 17:25:22 +0100 Subject: [PATCH 07/12] Moved AboutMeDialog into profileplugin --- .../profileplugin/profiledialog.cpp | 10 +- plugins/profileplugin/profiledialog.h | 20 +++ .../profileplugin/profiledialog.ui | 20 +-- plugins/profileplugin/profileplugin.cpp | 5 +- plugins/profileplugin/profileplugin.pro | 8 +- .../translations/profileplugin_de.ts | 103 +++++++++++- .../translations/profileplugin_en.ts | 101 +++++++++++- zeiterfassungguilib/dialogs/aboutmedialog.h | 20 --- zeiterfassungguilib/mainwindow.cpp | 2 - zeiterfassungguilib/mainwindow.ui | 1 - .../translations/zeiterfassungguilib_de.ts | 154 +++--------------- .../translations/zeiterfassungguilib_en.ts | 154 +++--------------- zeiterfassungguilib/zeiterfassungguilib.pro | 5 +- 13 files changed, 293 insertions(+), 310 deletions(-) rename zeiterfassungguilib/dialogs/aboutmedialog.cpp => plugins/profileplugin/profiledialog.cpp (85%) create mode 100644 plugins/profileplugin/profiledialog.h rename zeiterfassungguilib/dialogs/aboutmedialog.ui => plugins/profileplugin/profiledialog.ui (95%) delete mode 100644 zeiterfassungguilib/dialogs/aboutmedialog.h diff --git a/zeiterfassungguilib/dialogs/aboutmedialog.cpp b/plugins/profileplugin/profiledialog.cpp similarity index 85% rename from zeiterfassungguilib/dialogs/aboutmedialog.cpp rename to plugins/profileplugin/profiledialog.cpp index 473c1ac..1a52589 100644 --- a/zeiterfassungguilib/dialogs/aboutmedialog.cpp +++ b/plugins/profileplugin/profiledialog.cpp @@ -1,9 +1,9 @@ -#include "aboutmedialog.h" -#include "ui_aboutmedialog.h" +#include "profiledialog.h" +#include "ui_profiledialog.h" -AboutMeDialog::AboutMeDialog(const GetUserInfoReply::UserInfo &userInfo, QWidget *parent) : +ProfileDialog::ProfileDialog(const GetUserInfoReply::UserInfo &userInfo, QWidget *parent) : QDialog(parent), - ui(new Ui::AboutMeDialog) + ui(new Ui::ProfileDialog) { ui->setupUi(this); @@ -26,7 +26,7 @@ AboutMeDialog::AboutMeDialog(const GetUserInfoReply::UserInfo &userInfo, QWidget ui->lineEditBetriebsnr->setText(userInfo.betriebsnr); } -AboutMeDialog::~AboutMeDialog() +ProfileDialog::~ProfileDialog() { delete ui; } diff --git a/plugins/profileplugin/profiledialog.h b/plugins/profileplugin/profiledialog.h new file mode 100644 index 0000000..b2abd1c --- /dev/null +++ b/plugins/profileplugin/profiledialog.h @@ -0,0 +1,20 @@ +#pragma once + +#include + +#include "zeiterfassungguilib_global.h" +#include "replies/getuserinforeply.h" + +namespace Ui { class ProfileDialog; } + +class ZEITERFASSUNGGUILIBSHARED_EXPORT ProfileDialog : public QDialog +{ + Q_OBJECT + +public: + explicit ProfileDialog(const GetUserInfoReply::UserInfo &userInfo, QWidget *parent = Q_NULLPTR); + ~ProfileDialog(); + +private: + Ui::ProfileDialog *ui; +}; diff --git a/zeiterfassungguilib/dialogs/aboutmedialog.ui b/plugins/profileplugin/profiledialog.ui similarity index 95% rename from zeiterfassungguilib/dialogs/aboutmedialog.ui rename to plugins/profileplugin/profiledialog.ui index d6f99d9..3ce9181 100644 --- a/zeiterfassungguilib/dialogs/aboutmedialog.ui +++ b/plugins/profileplugin/profiledialog.ui @@ -1,7 +1,7 @@ - AboutMeDialog - + ProfileDialog + 0 @@ -11,21 +11,9 @@ - About me + Profile - - - - - 20 - - - - About me - - - @@ -315,7 +303,7 @@ buttonBox rejected() - AboutMeDialog + ProfileDialog close() diff --git a/plugins/profileplugin/profileplugin.cpp b/plugins/profileplugin/profileplugin.cpp index d3719fe..1dc949d 100644 --- a/plugins/profileplugin/profileplugin.cpp +++ b/plugins/profileplugin/profileplugin.cpp @@ -4,12 +4,13 @@ #include #include #include -#include #include #include #include "mainwindow.h" +#include "profiledialog.h" + ProfilePlugin::ProfilePlugin(QObject *parent) : ZeiterfassungPlugin(parent) { @@ -32,7 +33,7 @@ ProfilePlugin::ProfilePlugin(QObject *parent) : void ProfilePlugin::attachTo(MainWindow &mainWindow) { - auto dialog = new QDialog(&mainWindow); + auto dialog = new ProfileDialog(mainWindow.userInfo(), &mainWindow); mainWindow.menuTools()->addAction(QIcon(QStringLiteral(":/zeiterfassung/plugins/profileplugin/images/profile.png")), tr("My profile"), dialog, &QDialog::open); } diff --git a/plugins/profileplugin/profileplugin.pro b/plugins/profileplugin/profileplugin.pro index 215c70b..d299e48 100644 --- a/plugins/profileplugin/profileplugin.pro +++ b/plugins/profileplugin/profileplugin.pro @@ -14,11 +14,13 @@ DEPENDPATH += $$PWD/../../zeiterfassungcorelib $$PWD/../../zeiterfassungguilib DEFINES += QT_DEPRECATED_WARNINGS QT_DISABLE_DEPRECATED_BEFORE=0x060000 QT_MESSAGELOGCONTEXT -HEADERS += profileplugin.h +HEADERS += profiledialog.h \ + profileplugin.h -SOURCES += profileplugin.cpp +SOURCES += profiledialog.cpp \ + profileplugin.cpp -FORMS += +FORMS += profiledialog.ui RESOURCES += profileplugin_resources.qrc diff --git a/plugins/profileplugin/translations/profileplugin_de.ts b/plugins/profileplugin/translations/profileplugin_de.ts index 0d7005a..e8cb231 100644 --- a/plugins/profileplugin/translations/profileplugin_de.ts +++ b/plugins/profileplugin/translations/profileplugin_de.ts @@ -1,12 +1,111 @@ + + ProfileDialog + + + Profile + Profil + + + + User-ID: + Benutzer-ID: + + + + E-Mail: + E-Mail: + + + + Long username: + Langer Benutzername: + + + + Text: + Text: + + + + Username: + Benutzername: + + + + Street: + Straße: + + + + City: + Stadt: + + + + Employed since: + Angestellt seit: + + + + Employed till: + Angestellt bis: + + + + Place of birth: + Geburtsort: + + + + Zipcode: + Postleitzahl: + + + + Religion: + Religion: + + + + Department: + Abteilung: + + + + Verwendgr: + Verwendgr: + + + + Taetig: + Taetig: + + + + Arbverh: + Arbverh: + + + + Betriebsnr: + Betriebsnr: + + + + + dd.MM.yyyy + dd.MM.yyyy + + ProfilePlugin - + My profile - + Mein Profil diff --git a/plugins/profileplugin/translations/profileplugin_en.ts b/plugins/profileplugin/translations/profileplugin_en.ts index d73e0c8..d6f19e1 100644 --- a/plugins/profileplugin/translations/profileplugin_en.ts +++ b/plugins/profileplugin/translations/profileplugin_en.ts @@ -1,10 +1,109 @@ + + ProfileDialog + + + Profile + + + + + User-ID: + + + + + E-Mail: + + + + + Long username: + + + + + Text: + + + + + Username: + + + + + Street: + + + + + City: + + + + + Employed since: + + + + + Employed till: + + + + + Place of birth: + + + + + Zipcode: + + + + + Religion: + + + + + Department: + + + + + Verwendgr: + + + + + Taetig: + + + + + Arbverh: + + + + + Betriebsnr: + + + + + + dd.MM.yyyy + + + ProfilePlugin - + My profile diff --git a/zeiterfassungguilib/dialogs/aboutmedialog.h b/zeiterfassungguilib/dialogs/aboutmedialog.h deleted file mode 100644 index 769226b..0000000 --- a/zeiterfassungguilib/dialogs/aboutmedialog.h +++ /dev/null @@ -1,20 +0,0 @@ -#pragma once - -#include - -#include "zeiterfassungguilib_global.h" -#include "replies/getuserinforeply.h" - -namespace Ui { class AboutMeDialog; } - -class ZEITERFASSUNGGUILIBSHARED_EXPORT AboutMeDialog : public QDialog -{ - Q_OBJECT - -public: - explicit AboutMeDialog(const GetUserInfoReply::UserInfo &userInfo, QWidget *parent = Q_NULLPTR); - ~AboutMeDialog(); - -private: - Ui::AboutMeDialog *ui; -}; diff --git a/zeiterfassungguilib/mainwindow.cpp b/zeiterfassungguilib/mainwindow.cpp index 2a35266..845ea44 100644 --- a/zeiterfassungguilib/mainwindow.cpp +++ b/zeiterfassungguilib/mainwindow.cpp @@ -19,7 +19,6 @@ #include "zeiterfassungsettings.h" #include "stripfactory.h" #include "stripswidget.h" -#include "dialogs/aboutmedialog.h" #include "dialogs/settingsdialog.h" #include "replies/getprojectsreply.h" #include "replies/createbookingreply.h" @@ -47,7 +46,6 @@ MainWindow::MainWindow(ZeiterfassungSettings &settings, ZeiterfassungApi &erfass ui->actionRefresh->setShortcut(QKeySequence::Refresh); connect(ui->actionRefresh, &QAction::triggered, this, &MainWindow::refreshEverything); - connect(ui->actionAboutMe, &QAction::triggered, [=](){ AboutMeDialog(userInfo, this).exec(); }); connect(ui->actionSettings, &QAction::triggered, [=](){ SettingsDialog(m_settings, this).exec(); }); ui->actionHelp->setShortcut(QKeySequence::HelpContents); diff --git a/zeiterfassungguilib/mainwindow.ui b/zeiterfassungguilib/mainwindow.ui index 5735f18..c96c07d 100644 --- a/zeiterfassungguilib/mainwindow.ui +++ b/zeiterfassungguilib/mainwindow.ui @@ -211,7 +211,6 @@ &About - diff --git a/zeiterfassungguilib/translations/zeiterfassungguilib_de.ts b/zeiterfassungguilib/translations/zeiterfassungguilib_de.ts index d66d22a..626b154 100644 --- a/zeiterfassungguilib/translations/zeiterfassungguilib_de.ts +++ b/zeiterfassungguilib/translations/zeiterfassungguilib_de.ts @@ -1,106 +1,6 @@ - - AboutMeDialog - - - - About me - Über mich - - - - User-ID: - Benutzer-ID: - - - - E-Mail: - E-Mail: - - - - Long username: - Langer Benutzername: - - - - Text: - Text: - - - - Username: - Benutzername: - - - - Street: - Straße: - - - - City: - Stadt: - - - - Employed since: - Angestellt seit: - - - - Employed till: - Angestellt bis: - - - - Place of birth: - Geburtsort: - - - - Zipcode: - Postleitzahl: - - - - Religion: - Religion: - - - - Department: - Abteilung: - - - - Verwendgr: - Verwendgr: - - - - Taetig: - Taetig: - - - - Arbverh: - Arbverh: - - - - Betriebsnr: - Betriebsnr: - - - - - dd.MM.yyyy - dd.MM.yyyy - - AuthenticationDialog @@ -168,8 +68,8 @@ - - + + Start Kommen @@ -189,107 +89,107 @@ &Über - + &View &Ansicht - + &Tools &Werkzeuge - + &Quit &Beenden - + About &Me Über &mich - + About &zeiterfassung Über &zeiterfassung - + About &Qt Über &Qt - + &Today &Heute - + &Refresh everything Alles &neu laden - + &Settings &Einstellungen - + Help Hilfe - + Zeiterfassung - %0 (%1) Zeiterfassung - %0 (%1) - + Subproject Subprojekt - + Workpackage Arbeitspaket - + Text Text - - + + Could not load bookings! Konnte Buchungen nicht laden! - - + + Could not create booking! Konnte Buchung nicht erstellen! - - + + Could not edit time assignment! Konnte Kontierung nicht bearbeiten! - - + + %0 (%1) %0 (%1) - + Could not create time assignment! Konnte Kontierung nicht erstellen! - - + + Switch Wechseln diff --git a/zeiterfassungguilib/translations/zeiterfassungguilib_en.ts b/zeiterfassungguilib/translations/zeiterfassungguilib_en.ts index 8c38655..b96835a 100644 --- a/zeiterfassungguilib/translations/zeiterfassungguilib_en.ts +++ b/zeiterfassungguilib/translations/zeiterfassungguilib_en.ts @@ -1,106 +1,6 @@ - - AboutMeDialog - - - - About me - - - - - User-ID: - - - - - E-Mail: - - - - - Long username: - - - - - Text: - - - - - Username: - - - - - Street: - - - - - City: - - - - - Employed since: - - - - - Employed till: - - - - - Place of birth: - - - - - Zipcode: - - - - - Religion: - - - - - Department: - - - - - Verwendgr: - - - - - Taetig: - - - - - Arbverh: - - - - - Betriebsnr: - - - - - - dd.MM.yyyy - - - AuthenticationDialog @@ -168,8 +68,8 @@ - - + + Start @@ -189,107 +89,107 @@ - + &View - + &Tools - + &Quit - + About &Me - + About &zeiterfassung - + About &Qt - + &Today - + &Refresh everything - + &Settings - + Help - + Zeiterfassung - %0 (%1) - + Subproject - + Workpackage - + Text - - + + Could not load bookings! - - + + Could not create booking! - + Could not create time assignment! - - + + Could not edit time assignment! - - + + Switch - - + + %0 (%1) diff --git a/zeiterfassungguilib/zeiterfassungguilib.pro b/zeiterfassungguilib/zeiterfassungguilib.pro index 0f252db..2936ed3 100644 --- a/zeiterfassungguilib/zeiterfassungguilib.pro +++ b/zeiterfassungguilib/zeiterfassungguilib.pro @@ -19,7 +19,6 @@ SOURCES += mainwindow.cpp \ stripfactory.cpp \ stripswidget.cpp \ zeiterfassungplugin.cpp \ - dialogs/aboutmedialog.cpp \ dialogs/authenticationdialog.cpp \ dialogs/languageselectiondialog.cpp \ dialogs/settingsdialog.cpp @@ -29,7 +28,6 @@ HEADERS += mainwindow.h \ stripswidget.h \ zeiterfassungguilib_global.h \ zeiterfassungplugin.h \ - dialogs/aboutmedialog.h \ dialogs/authenticationdialog.h \ dialogs/languageselectiondialog.h \ dialogs/settingsdialog.h @@ -37,8 +35,7 @@ HEADERS += mainwindow.h \ FORMS += mainwindow.ui \ dialogs/settingsdialog.ui \ dialogs/languageselectiondialog.ui \ - dialogs/authenticationdialog.ui \ - dialogs/aboutmedialog.ui + dialogs/authenticationdialog.ui RESOURCES += zeiterfassungguilib_resources.qrc -- 2.50.1 From 6c3c7ac37aa5c5952317604f2a73a4d7e15ee8b5 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 <0xFEEDC0DE64@gmail.com> Date: Fri, 22 Dec 2017 17:28:25 +0100 Subject: [PATCH 08/12] Updated translations for weatherplugin --- plugins/weatherplugin/translations/weatherplugin_de.ts | 10 ++++++++++ plugins/weatherplugin/translations/weatherplugin_en.ts | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/plugins/weatherplugin/translations/weatherplugin_de.ts b/plugins/weatherplugin/translations/weatherplugin_de.ts index 40f7555..c7baf36 100644 --- a/plugins/weatherplugin/translations/weatherplugin_de.ts +++ b/plugins/weatherplugin/translations/weatherplugin_de.ts @@ -23,6 +23,16 @@ Not an json obj Kein json obj + + + No weather found + Kein weather gefunden + + + + No main found + Kein main gefunden + %0 (%1°C) diff --git a/plugins/weatherplugin/translations/weatherplugin_en.ts b/plugins/weatherplugin/translations/weatherplugin_en.ts index c4bb548..fd63ccf 100644 --- a/plugins/weatherplugin/translations/weatherplugin_en.ts +++ b/plugins/weatherplugin/translations/weatherplugin_en.ts @@ -23,6 +23,16 @@ Not an json obj + + + No weather found + + + + + No main found + + %0 (%1°C) -- 2.50.1 From 59c877f9fc4707fdb19408ccc794b8606fb11465 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 <0xFEEDC0DE64@gmail.com> Date: Fri, 22 Dec 2017 19:33:46 +0100 Subject: [PATCH 09/12] Added comboBox to choose from webradios --- plugins/webradioplugin/webradiodialog.cpp | 34 ++++++++++- plugins/webradioplugin/webradiodialog.ui | 72 +++++++++++++++++++++-- plugins/webradioplugin/webradioplugin.pro | 11 ++-- 3 files changed, 104 insertions(+), 13 deletions(-) diff --git a/plugins/webradioplugin/webradiodialog.cpp b/plugins/webradioplugin/webradiodialog.cpp index 8625153..39dd264 100644 --- a/plugins/webradioplugin/webradiodialog.cpp +++ b/plugins/webradioplugin/webradiodialog.cpp @@ -10,9 +10,39 @@ WebRadioDialog::WebRadioDialog(QWidget *parent) : { ui->setupUi(this); - m_player->setMedia(QMediaContent(QUrl(QStringLiteral("http://stream.drumandbass.fm:9002")))); + for(const auto &url : QStringList { + QStringLiteral("http://stream.drumandbass.fm:9002"), + QStringLiteral("http://stream.trap.fm:6002"), + QStringLiteral("http://stream.dubbase.fm:7002"), + QStringLiteral("http://lw1.mp3.tb-group.fm/hb.mp3"), + QStringLiteral("http://lw1.mp3.tb-group.fm/tb.mp3"), + QStringLiteral("http://lw1.mp3.tb-group.fm/tt.mp3"), + QStringLiteral("http://lw1.mp3.tb-group.fm/ht.mp3"), + QStringLiteral("http://lw1.mp3.tb-group.fm/trb.mp3"), + QStringLiteral("http://lw1.mp3.tb-group.fm/ct.mp3"), + QStringLiteral("http://lw1.mp3.tb-group.fm/clt.mp3"), + QStringLiteral("https://live.helsinki.at:8088/live160.ogg") + }) + { + ui->comboBox->addItem(url); + } - connect(ui->pushButton, &QAbstractButton::pressed, m_player, &QMediaPlayer::play); + connect(ui->comboBox, &QComboBox::currentTextChanged, this, [=](const QString &url){ m_player->setMedia(QMediaContent(QUrl(url))); }); + + Q_EMIT ui->comboBox->currentTextChanged(ui->comboBox->currentText()); + + connect(ui->pushButtonPlay, &QAbstractButton::pressed, m_player, &QMediaPlayer::play); + connect(ui->pushButtonPause, &QAbstractButton::pressed, m_player, &QMediaPlayer::pause); + connect(ui->pushButtonStop, &QAbstractButton::pressed, m_player, &QMediaPlayer::stop); + connect(ui->horizontalSlider, &QAbstractSlider::valueChanged, m_player, &QMediaPlayer::setVolume); + + connect(m_player, &QMediaPlayer::stateChanged, [](QMediaPlayer::State newState){ qDebug() << newState; }); + connect(m_player, &QMediaPlayer::mediaStatusChanged, [](QMediaPlayer::MediaStatus status){ qDebug() << status; }); + connect(m_player, static_cast(&QMediaPlayer::error), + [](QMediaPlayer::Error error){ qDebug() << error; }); + connect(m_player, SIGNAL(volumeChanged(int)), ui->horizontalSlider, SLOT(setValue(int))); + + Q_EMIT m_player->volumeChanged(m_player->volume()); } WebRadioDialog::~WebRadioDialog() diff --git a/plugins/webradioplugin/webradiodialog.ui b/plugins/webradioplugin/webradiodialog.ui index 90cbbfb..8d7d9eb 100644 --- a/plugins/webradioplugin/webradiodialog.ui +++ b/plugins/webradioplugin/webradiodialog.ui @@ -6,7 +6,7 @@ 0 0 - 433 + 539 300 @@ -29,17 +29,79 @@ QDialogButtonBox::Close - + - 110 + 20 60 - 191 + 131 51 - PushButton + play() + + + + + + 50 + 160 + 351 + 23 + + + + 24 + + + + + + 160 + 60 + 131 + 51 + + + + pause() + + + + + + 300 + 60 + 131 + 51 + + + + stop() + + + + + + 270 + 130 + 160 + 16 + + + + Qt::Horizontal + + + + + + 40 + 20 + 271 + 25 + diff --git a/plugins/webradioplugin/webradioplugin.pro b/plugins/webradioplugin/webradioplugin.pro index b6ae942..28eb042 100644 --- a/plugins/webradioplugin/webradioplugin.pro +++ b/plugins/webradioplugin/webradioplugin.pro @@ -14,14 +14,13 @@ DEPENDPATH += $$PWD/../../zeiterfassungcorelib $$PWD/../../zeiterfassungguilib DEFINES += QT_DEPRECATED_WARNINGS QT_DISABLE_DEPRECATED_BEFORE=0x060000 QT_MESSAGELOGCONTEXT -HEADERS += webradioplugin.h \ - webradiodialog.h +HEADERS += webradiodialog.h \ + webradioplugin.h -SOURCES += webradioplugin.cpp \ - webradiodialog.cpp +SOURCES += webradiodialog.cpp \ + webradioplugin.cpp -FORMS += \ - webradiodialog.ui +FORMS += webradiodialog.ui RESOURCES += webradioplugin_resources.qrc -- 2.50.1 From 4e16a15994c6299a7623741573fff1b5dfcb2a02 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 <0xFEEDC0DE64@gmail.com> Date: Fri, 22 Dec 2017 19:37:52 +0100 Subject: [PATCH 10/12] Project files cleanup again --- plugins/devtoolsplugin/devtoolsplugin.pro | 8 ++++---- plugins/lunchmealplugin/lunchmealplugin.pro | 12 ++++++------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/plugins/devtoolsplugin/devtoolsplugin.pro b/plugins/devtoolsplugin/devtoolsplugin.pro index b6af1b6..17fc54a 100644 --- a/plugins/devtoolsplugin/devtoolsplugin.pro +++ b/plugins/devtoolsplugin/devtoolsplugin.pro @@ -15,12 +15,12 @@ DEPENDPATH += $$PWD/../../zeiterfassungcorelib $$PWD/../../zeiterfassungguilib DEFINES += QT_DEPRECATED_WARNINGS QT_DISABLE_DEPRECATED_BEFORE=0x060000 QT_MESSAGELOGCONTEXT HEADERS += devtoolsplugin.h \ - logmodel.h \ - logdialog.h + logdialog.h \ + logmodel.h SOURCES += devtoolsplugin.cpp \ - logmodel.cpp \ - logdialog.cpp + logdialog.cpp \ + logmodel.cpp FORMS += logdialog.ui diff --git a/plugins/lunchmealplugin/lunchmealplugin.pro b/plugins/lunchmealplugin/lunchmealplugin.pro index 9ce77c2..0e74977 100644 --- a/plugins/lunchmealplugin/lunchmealplugin.pro +++ b/plugins/lunchmealplugin/lunchmealplugin.pro @@ -14,13 +14,13 @@ DEPENDPATH += $$PWD/../../zeiterfassungcorelib $$PWD/../../zeiterfassungguilib DEFINES += QT_DEPRECATED_WARNINGS QT_DISABLE_DEPRECATED_BEFORE=0x060000 QT_MESSAGELOGCONTEXT -HEADERS += lunchmealplugin.h \ - lunchmealwidget.h \ - lunchmealdialog.h +HEADERS += lunchmealdialog.h \ + lunchmealplugin.h \ + lunchmealwidget.h -SOURCES += lunchmealplugin.cpp \ - lunchmealwidget.cpp \ - lunchmealdialog.cpp +SOURCES += lunchmealdialog.cpp \ + lunchmealplugin.cpp \ + lunchmealwidget.cpp FORMS += lunchmealdialog.ui -- 2.50.1 From c3c1b486ba193b4d415863e77332ee92b94d27f4 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 <0xFEEDC0DE64@gmail.com> Date: Fri, 22 Dec 2017 20:14:01 +0100 Subject: [PATCH 11/12] WebRadioDialog now stores last used radio station in config --- plugins/webradioplugin/webradiodialog.cpp | 67 ++++++--- plugins/webradioplugin/webradiodialog.h | 11 +- plugins/webradioplugin/webradiodialog.ui | 169 ++++++++++------------ plugins/webradioplugin/webradioplugin.cpp | 2 +- 4 files changed, 134 insertions(+), 115 deletions(-) diff --git a/plugins/webradioplugin/webradiodialog.cpp b/plugins/webradioplugin/webradiodialog.cpp index 39dd264..81dcab3 100644 --- a/plugins/webradioplugin/webradiodialog.cpp +++ b/plugins/webradioplugin/webradiodialog.cpp @@ -1,16 +1,22 @@ #include "webradiodialog.h" #include "ui_webradiodialog.h" -#include +#include "mainwindow.h" +#include "zeiterfassungsettings.h" -WebRadioDialog::WebRadioDialog(QWidget *parent) : - QDialog(parent), +WebRadioDialog::WebRadioDialog(MainWindow &mainWindow) : + QDialog(&mainWindow), ui(new Ui::WebRadioDialog), + m_mainWindow(mainWindow), m_player(new QMediaPlayer(this)) { ui->setupUi(this); - for(const auto &url : QStringList { + connect(m_player, &QMediaPlayer::stateChanged, this, &WebRadioDialog::stateChanged); + connect(m_player, &QMediaPlayer::mediaStatusChanged, this, &WebRadioDialog::mediaStatusChanged); + connect(m_player, static_cast(&QMediaPlayer::error), this, &WebRadioDialog::error); + + for(const auto &url : m_mainWindow.settings().value(QStringLiteral("WebRadioPlugin/urls"), QStringList { QStringLiteral("http://stream.drumandbass.fm:9002"), QStringLiteral("http://stream.trap.fm:6002"), QStringLiteral("http://stream.dubbase.fm:7002"), @@ -22,27 +28,24 @@ WebRadioDialog::WebRadioDialog(QWidget *parent) : QStringLiteral("http://lw1.mp3.tb-group.fm/ct.mp3"), QStringLiteral("http://lw1.mp3.tb-group.fm/clt.mp3"), QStringLiteral("https://live.helsinki.at:8088/live160.ogg") - }) + }).toStringList()) { - ui->comboBox->addItem(url); + ui->comboBox->addItem(url, url); } - connect(ui->comboBox, &QComboBox::currentTextChanged, this, [=](const QString &url){ m_player->setMedia(QMediaContent(QUrl(url))); }); + auto lastUrl = m_mainWindow.settings().value(QStringLiteral("WebRadioPlugin/lastUrl")).toString(); + qDebug() << lastUrl; + auto index = ui->comboBox->findData(lastUrl); + qDebug() << index; + ui->comboBox->setCurrentIndex(index); - Q_EMIT ui->comboBox->currentTextChanged(ui->comboBox->currentText()); - - connect(ui->pushButtonPlay, &QAbstractButton::pressed, m_player, &QMediaPlayer::play); + connect(ui->pushButtonPlay, &QAbstractButton::pressed, this, &WebRadioDialog::play); connect(ui->pushButtonPause, &QAbstractButton::pressed, m_player, &QMediaPlayer::pause); connect(ui->pushButtonStop, &QAbstractButton::pressed, m_player, &QMediaPlayer::stop); - connect(ui->horizontalSlider, &QAbstractSlider::valueChanged, m_player, &QMediaPlayer::setVolume); - connect(m_player, &QMediaPlayer::stateChanged, [](QMediaPlayer::State newState){ qDebug() << newState; }); - connect(m_player, &QMediaPlayer::mediaStatusChanged, [](QMediaPlayer::MediaStatus status){ qDebug() << status; }); - connect(m_player, static_cast(&QMediaPlayer::error), - [](QMediaPlayer::Error error){ qDebug() << error; }); - connect(m_player, SIGNAL(volumeChanged(int)), ui->horizontalSlider, SLOT(setValue(int))); - - Q_EMIT m_player->volumeChanged(m_player->volume()); + m_player->setVolume(m_mainWindow.settings().value(QStringLiteral("WebRadioPlugin/volume"), 100).toInt()); + ui->horizontalSlider->setValue(m_player->volume()); + connect(ui->horizontalSlider, &QAbstractSlider::valueChanged, this, &WebRadioDialog::volumeChanged); } WebRadioDialog::~WebRadioDialog() @@ -50,7 +53,35 @@ WebRadioDialog::~WebRadioDialog() delete ui; } +void WebRadioDialog::stateChanged(QMediaPlayer::State newState) +{ + qDebug() << newState; +} + +void WebRadioDialog::mediaStatusChanged(QMediaPlayer::MediaStatus status) +{ + qDebug() << status; +} + +void WebRadioDialog::error(QMediaPlayer::Error error) +{ + qDebug() << error; +} + void WebRadioDialog::play() { + qDebug() << "called"; + if(ui->comboBox->currentIndex() == -1) + return; + m_mainWindow.settings().setValue(QStringLiteral("WebRadioPlugin/lastUrl"), ui->comboBox->currentData().toString()); + + m_player->setMedia(QMediaContent(QUrl(ui->comboBox->currentData().toString()))); + m_player->play(); +} + +void WebRadioDialog::volumeChanged(int volume) +{ + m_mainWindow.settings().setValue(QStringLiteral("WebRadioPlugin/volume"), volume); + m_player->setVolume(volume); } diff --git a/plugins/webradioplugin/webradiodialog.h b/plugins/webradioplugin/webradiodialog.h index 2bdd804..6a2d1df 100644 --- a/plugins/webradioplugin/webradiodialog.h +++ b/plugins/webradioplugin/webradiodialog.h @@ -2,8 +2,9 @@ #define WEBRADIODIALOG_H #include +#include -class QMediaPlayer; +class MainWindow; namespace Ui { class WebRadioDialog; } @@ -12,15 +13,21 @@ class WebRadioDialog : public QDialog Q_OBJECT public: - explicit WebRadioDialog(QWidget *parent = 0); + explicit WebRadioDialog(MainWindow &mainWindow); ~WebRadioDialog(); private Q_SLOTS: + void stateChanged(QMediaPlayer::State newState); + void mediaStatusChanged(QMediaPlayer::MediaStatus status); + void error(QMediaPlayer::Error error); + + void volumeChanged(int volume); void play(); private: Ui::WebRadioDialog *ui; + MainWindow &m_mainWindow; QMediaPlayer *m_player; }; diff --git a/plugins/webradioplugin/webradiodialog.ui b/plugins/webradioplugin/webradiodialog.ui index 8d7d9eb..07f2387 100644 --- a/plugins/webradioplugin/webradiodialog.ui +++ b/plugins/webradioplugin/webradiodialog.ui @@ -6,104 +6,85 @@ 0 0 - 539 - 300 + 494 + 155 - Dialog + Radio - - - - 30 - 240 - 341 - 32 - - - - Qt::Horizontal - - - QDialogButtonBox::Close - - - - - - 20 - 60 - 131 - 51 - - - - play() - - - - - - 50 - 160 - 351 - 23 - - - - 24 - - - - - - 160 - 60 - 131 - 51 - - - - pause() - - - - - - 300 - 60 - 131 - 51 - - - - stop() - - - - - - 270 - 130 - 160 - 16 - - - - Qt::Horizontal - - - - - - 40 - 20 - 271 - 25 - - - + + + + + + + + + + + 0 + 50 + + + + play() + + + + + + + + 0 + 50 + + + + pause() + + + + + + + + 0 + 50 + + + + stop() + + + + + + + Qt::Horizontal + + + + + + + + + TextLabel + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Close + + + + diff --git a/plugins/webradioplugin/webradioplugin.cpp b/plugins/webradioplugin/webradioplugin.cpp index d6bd079..9a749d7 100644 --- a/plugins/webradioplugin/webradioplugin.cpp +++ b/plugins/webradioplugin/webradioplugin.cpp @@ -33,7 +33,7 @@ WebRadioPlugin::WebRadioPlugin(QObject *parent) : void WebRadioPlugin::attachTo(MainWindow &mainWindow) { - auto dialog = new WebRadioDialog(&mainWindow); + auto dialog = new WebRadioDialog(mainWindow); mainWindow.menuTools()->addAction(QIcon(QStringLiteral(":/zeiterfassung/plugins/webradioplugin/images/web-radio.png")), tr("Play webradio"), dialog, &QWidget::show); } -- 2.50.1 From eb9627d8a5f54c10adf8e3eb81d8cd9d71a25808 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 <0xFEEDC0DE64@gmail.com> Date: Fri, 22 Dec 2017 20:44:58 +0100 Subject: [PATCH 12/12] Buttons are now disabled when not available in webradioplugin --- .../translations/webradioplugin_de.ts | 88 +++++++++++++++++-- .../translations/webradioplugin_en.ts | 82 ++++++++++++++++- plugins/webradioplugin/webradiodialog.cpp | 67 +++++++++++--- plugins/webradioplugin/webradiodialog.h | 4 +- plugins/webradioplugin/webradiodialog.ui | 27 ++++-- 5 files changed, 240 insertions(+), 28 deletions(-) diff --git a/plugins/webradioplugin/translations/webradioplugin_de.ts b/plugins/webradioplugin/translations/webradioplugin_de.ts index b0a61dd..c21f851 100644 --- a/plugins/webradioplugin/translations/webradioplugin_de.ts +++ b/plugins/webradioplugin/translations/webradioplugin_de.ts @@ -5,13 +5,89 @@ WebRadioDialog - Dialog - + Radio + Radio - - PushButton - + + Play + Abspielen + + + + Pause + Pause + + + + Stop + Stop + + + + Stopped + Gestoppt + + + + Playing + Wird abgespielt + + + + Paused + Pausiert + + + + + Unknown + Unbekannt + + + + Unknown media + Unbekanntes Medium + + + + No media + Kein Medium + + + + Loading media... + Lade Medium... + + + + Loaded media + Medium geladen + + + + Stalled media + Medium angehalten + + + + Buffering media + Puffere Medium + + + + Buffered media + Medium gepuffert + + + + End of media + Ende des Mediums + + + + Invalid media + Ungültiges Medium @@ -19,7 +95,7 @@ Play webradio - + Webradio spielen diff --git a/plugins/webradioplugin/translations/webradioplugin_en.ts b/plugins/webradioplugin/translations/webradioplugin_en.ts index 6ed3a57..e84a249 100644 --- a/plugins/webradioplugin/translations/webradioplugin_en.ts +++ b/plugins/webradioplugin/translations/webradioplugin_en.ts @@ -5,12 +5,88 @@ WebRadioDialog - Dialog + Radio - - PushButton + + Play + + + + + Pause + + + + + Stop + + + + + Stopped + + + + + Playing + + + + + Paused + + + + + + Unknown + + + + + Unknown media + + + + + No media + + + + + Loading media... + + + + + Loaded media + + + + + Stalled media + + + + + Buffering media + + + + + Buffered media + + + + + End of media + + + + + Invalid media diff --git a/plugins/webradioplugin/webradiodialog.cpp b/plugins/webradioplugin/webradiodialog.cpp index 81dcab3..b8ddc01 100644 --- a/plugins/webradioplugin/webradiodialog.cpp +++ b/plugins/webradioplugin/webradiodialog.cpp @@ -13,7 +13,9 @@ WebRadioDialog::WebRadioDialog(MainWindow &mainWindow) : ui->setupUi(this); connect(m_player, &QMediaPlayer::stateChanged, this, &WebRadioDialog::stateChanged); + connect(m_player, &QMediaPlayer::stateChanged, this, &WebRadioDialog::updateWidgets); connect(m_player, &QMediaPlayer::mediaStatusChanged, this, &WebRadioDialog::mediaStatusChanged); + connect(m_player, &QMediaPlayer::mediaStatusChanged, this, &WebRadioDialog::updateWidgets); connect(m_player, static_cast(&QMediaPlayer::error), this, &WebRadioDialog::error); for(const auto &url : m_mainWindow.settings().value(QStringLiteral("WebRadioPlugin/urls"), QStringList { @@ -33,11 +35,13 @@ WebRadioDialog::WebRadioDialog(MainWindow &mainWindow) : ui->comboBox->addItem(url, url); } - auto lastUrl = m_mainWindow.settings().value(QStringLiteral("WebRadioPlugin/lastUrl")).toString(); - qDebug() << lastUrl; - auto index = ui->comboBox->findData(lastUrl); - qDebug() << index; - ui->comboBox->setCurrentIndex(index); + ui->comboBox->setCurrentIndex(ui->comboBox->findData(m_mainWindow.settings().value(QStringLiteral("WebRadioPlugin/lastUrl")).toString())); + + connect(ui->comboBox, static_cast(&QComboBox::currentIndexChanged), + this, &WebRadioDialog::currentIndexChanged); + + connect(ui->comboBox, static_cast(&QComboBox::currentIndexChanged), + this, &WebRadioDialog::updateWidgets); connect(ui->pushButtonPlay, &QAbstractButton::pressed, this, &WebRadioDialog::play); connect(ui->pushButtonPause, &QAbstractButton::pressed, m_player, &QMediaPlayer::pause); @@ -46,6 +50,11 @@ WebRadioDialog::WebRadioDialog(MainWindow &mainWindow) : m_player->setVolume(m_mainWindow.settings().value(QStringLiteral("WebRadioPlugin/volume"), 100).toInt()); ui->horizontalSlider->setValue(m_player->volume()); connect(ui->horizontalSlider, &QAbstractSlider::valueChanged, this, &WebRadioDialog::volumeChanged); + + stateChanged(m_player->state()); + mediaStatusChanged(m_player->mediaStatus()); + currentIndexChanged(ui->comboBox->currentIndex()); + updateWidgets(); } WebRadioDialog::~WebRadioDialog() @@ -55,31 +64,69 @@ WebRadioDialog::~WebRadioDialog() void WebRadioDialog::stateChanged(QMediaPlayer::State newState) { - qDebug() << newState; + switch(newState) + { + case QMediaPlayer::StoppedState: ui->labelState->setText(tr("Stopped")); break; + case QMediaPlayer::PlayingState: ui->labelState->setText(tr("Playing")); break; + case QMediaPlayer::PausedState: ui->labelState->setText(tr("Paused")); break; + default: + qWarning() << "unknown state" << newState; + ui->labelState->setText(tr("Unknown")); + } } void WebRadioDialog::mediaStatusChanged(QMediaPlayer::MediaStatus status) { - qDebug() << status; + switch(status) + { + case QMediaPlayer::UnknownMediaStatus: ui->labelMediaStatus->setText(tr("Unknown media")); break; + case QMediaPlayer::NoMedia: ui->labelMediaStatus->setText(tr("No media")); break; + case QMediaPlayer::LoadingMedia: ui->labelMediaStatus->setText(tr("Loading media...")); break; + case QMediaPlayer::LoadedMedia: ui->labelMediaStatus->setText(tr("Loaded media")); break; + case QMediaPlayer::StalledMedia: ui->labelMediaStatus->setText(tr("Stalled media")); break; + case QMediaPlayer::BufferingMedia: ui->labelMediaStatus->setText(tr("Buffering media")); break; + case QMediaPlayer::BufferedMedia: ui->labelMediaStatus->setText(tr("Buffered media")); break; + case QMediaPlayer::EndOfMedia: ui->labelMediaStatus->setText(tr("End of media")); break; + case QMediaPlayer::InvalidMedia: ui->labelMediaStatus->setText(tr("Invalid media")); break; + default: + qWarning() << "unknown mediaStatus" << status; + ui->labelMediaStatus->setText(tr("Unknown")); + } } void WebRadioDialog::error(QMediaPlayer::Error error) { - qDebug() << error; + qWarning() << error; +} + +void WebRadioDialog::currentIndexChanged(int index) +{ + if(index == -1) + m_player->setMedia(QMediaContent()); + else + m_player->setMedia(QMediaContent(QUrl(ui->comboBox->currentData().toString()))); } void WebRadioDialog::play() { - qDebug() << "called"; if(ui->comboBox->currentIndex() == -1) return; m_mainWindow.settings().setValue(QStringLiteral("WebRadioPlugin/lastUrl"), ui->comboBox->currentData().toString()); - m_player->setMedia(QMediaContent(QUrl(ui->comboBox->currentData().toString()))); m_player->play(); } +void WebRadioDialog::updateWidgets() +{ + ui->comboBox->setEnabled(m_player->state() != QMediaPlayer::PlayingState); + ui->pushButtonPlay->setEnabled(ui->comboBox->currentIndex() > -1 && + (m_player->state() == QMediaPlayer::StoppedState || m_player->state() == QMediaPlayer::PausedState) && + (m_player->mediaStatus() == QMediaPlayer::LoadedMedia || m_player->mediaStatus() == QMediaPlayer::BufferedMedia)); + ui->pushButtonPause->setEnabled(m_player->state() == QMediaPlayer::PlayingState || m_player->state() == QMediaPlayer::PausedState); + ui->pushButtonStop->setEnabled(m_player->state() == QMediaPlayer::PlayingState || m_player->state() == QMediaPlayer::PausedState); +} + void WebRadioDialog::volumeChanged(int volume) { m_mainWindow.settings().setValue(QStringLiteral("WebRadioPlugin/volume"), volume); diff --git a/plugins/webradioplugin/webradiodialog.h b/plugins/webradioplugin/webradiodialog.h index 6a2d1df..ed40035 100644 --- a/plugins/webradioplugin/webradiodialog.h +++ b/plugins/webradioplugin/webradiodialog.h @@ -20,11 +20,13 @@ private Q_SLOTS: void stateChanged(QMediaPlayer::State newState); void mediaStatusChanged(QMediaPlayer::MediaStatus status); void error(QMediaPlayer::Error error); - + void currentIndexChanged(int index); void volumeChanged(int volume); void play(); private: + void updateWidgets(); + Ui::WebRadioDialog *ui; MainWindow &m_mainWindow; diff --git a/plugins/webradioplugin/webradiodialog.ui b/plugins/webradioplugin/webradiodialog.ui index 07f2387..5758e10 100644 --- a/plugins/webradioplugin/webradiodialog.ui +++ b/plugins/webradioplugin/webradiodialog.ui @@ -28,7 +28,7 @@ - play() + Play @@ -41,7 +41,7 @@ - pause() + Pause @@ -54,7 +54,7 @@ - stop() + Stop @@ -68,11 +68,22 @@ - - - TextLabel - - + + + + + state + + + + + + + mediaStatus + + + + -- 2.50.1