diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,8 +23,9 @@ include(FindPkgConfig) find_package( Qt5 5.8.0 REQUIRED COMPONENTS Core DBus Gui QuickWidgets Qml Script ScriptTools Sql Svg Test Widgets Xml ) -find_package( Qt5 5.8.0 COMPONENTS QuickControls2 ) +find_package( Qt5 5.8.0 COMPONENTS QuickControls2 WebEngine ) set_package_properties( Qt5QuickControls2 PROPERTIES TYPE RUNTIME PURPOSE "Needed by the player's context area" ) +set_package_properties( Qt5WebEngine PROPERTIES TYPE OPTIONAL PURPOSE "Needed by the wikipedia applet" ) find_package( KF5 REQUIRED COMPONENTS Archive Codecs CoreAddons DBusAddons Declarative DNSSD GlobalAccel GuiAddons I18n IconThemes KCMUtils KIO NewStuff Notifications NotifyConfig Package Solid TextEditor ThreadWeaver WindowSystem ) find_package( KF5 COMPONENTS Kirigami2 ) set_package_properties( KF5Kirigami2 PROPERTIES TYPE RUNTIME PURPOSE "Needed by the player's context area" ) diff --git a/images/icons/CMakeLists.txt b/images/icons/CMakeLists.txt --- a/images/icons/CMakeLists.txt +++ b/images/icons/CMakeLists.txt @@ -197,14 +197,12 @@ 48-actions-amarok_cart_view.png 48-actions-amarok_change_language.png 48-actions-amarok_clock.png - 48-actions-amarok_lyrics.png 48-actions-amarok_playcount.png 48-actions-amarok_playlist.png 48-actions-amarok_playlist_refresh.png 48-actions-amarok_scripts.png 48-actions-amarok_track.png 48-actions-collection-rescan-amarok.png - 48-actions-current-track-amarok.png 48-actions-download-amarok.png 48-actions-dynamic-amarok.png 48-actions-filename-album-amarok.png @@ -235,7 +233,6 @@ 48-actions-info-amarok.png 48-actions-label-amarok.png 48-actions-love-amarok.png - 48-actions-media-album-cover-manager-amarok.png 48-actions-media-album-repeat-amarok.png 48-actions-media-playlist-repeat-amarok.png 48-actions-media-random-albums-amarok.png @@ -250,7 +247,6 @@ 48-actions-media-track-queue-amarok.png 48-actions-media-track-remove-amarok.png 48-actions-music-amarok.png - 48-actions-photos-amarok.png 48-actions-playlist-generator.png 48-actions-podcast-amarok.png 48-actions-preferences-indicator-amarok.png @@ -264,7 +260,6 @@ 48-actions-view-importers-banshee-amarok.png 48-actions-view-importers-clementine-amarok.png 48-actions-view-importers-rhythmbox-amarok.png - 48-actions-view-media-analyzer-amarok.png 48-actions-view-services-amazon-amarok.png 48-actions-view-services-ampache-amarok.png 48-actions-view-services-gpodder-amarok.png diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -882,6 +882,11 @@ amarokshared ) +if( Qt5WebEngine_FOUND ) + target_link_libraries( amaroklib Qt5::WebEngine ) + add_definitions( -DWITH_QT_WEBENGINE ) +endif() + include_directories(${TAGLIB_INCLUDES}) add_definitions(${TAGLIB_CFLAGS}) target_link_libraries(amaroklib ${TAGLIB_LIBRARIES}) diff --git a/src/context/AmarokContextPackageStructure.cpp b/src/context/AmarokContextPackageStructure.cpp --- a/src/context/AmarokContextPackageStructure.cpp +++ b/src/context/AmarokContextPackageStructure.cpp @@ -24,6 +24,8 @@ void AmarokContextPackageStructure::initPackage(KPackage::Package* package) { package->addFileDefinition("mainscript", QStringLiteral("ui/main.qml"), i18n("Main Script File")); + package->addFileDefinition("icon", QStringLiteral("images/icon.png"), i18n("Applet Icon File")); + package->addFileDefinition("icon", QStringLiteral("images/icon.svg"), i18n("Applet Icon File")); package->setDefaultPackageRoot(QStringLiteral("kpackage/amarok")); package->addDirectoryDefinition("images", QStringLiteral("images"), i18n("Images")); auto mimetypes = QStringList() << QStringLiteral("image/svg+xml"); diff --git a/src/context/AppletModel.h b/src/context/AppletModel.h --- a/src/context/AppletModel.h +++ b/src/context/AppletModel.h @@ -58,6 +58,7 @@ Q_INVOKABLE void setAppletCollapsed(const QString &id, bool collapsed); Q_INVOKABLE void setAppletContentHeight(const QString& id, qreal height); + Q_INVOKABLE QUrl imageUrl(const QString &id, const QString &imageName); public Q_SLOTS: void newApplets(const QList &applets); diff --git a/src/context/AppletModel.cpp b/src/context/AppletModel.cpp --- a/src/context/AppletModel.cpp +++ b/src/context/AppletModel.cpp @@ -115,7 +115,7 @@ return package.metadata().pluginId(); case Icon: - return package.metadata().iconName(); + return QUrl::fromLocalFile(package.filePath("icon")); case Mainscript: return QUrl::fromLocalFile(package.filePath("mainscript")); @@ -210,6 +210,14 @@ } } +QUrl Context::AppletModel::imageUrl(const QString& id, const QString& imageName) +{ + auto package = findPackage(id); + if (package.isValid()) + return package.fileUrl("images", imageName); + return QUrl(); +} + AppletPackage AppletModel::findPackage(const QString& id) { for (const auto &package : m_packages) diff --git a/src/context/applets/CMakeLists.txt b/src/context/applets/CMakeLists.txt --- a/src/context/applets/CMakeLists.txt +++ b/src/context/applets/CMakeLists.txt @@ -5,9 +5,12 @@ add_subdirectory( lyrics ) add_subdirectory( photos ) #add_subdirectory( tabs ) -#add_subdirectory( wikipedia ) add_subdirectory( analyzer ) +if( Qt5WebEngine_FOUND ) + add_subdirectory( wikipedia ) +endif() + if( LIBLASTFM_FOUND ) # add_subdirectory( upcomingevents ) # add_subdirectory( similarartists ) diff --git a/images/icons/48-actions-media-album-cover-manager-amarok.png b/src/context/applets/albums/package/contents/images/icon.png rename from images/icons/48-actions-media-album-cover-manager-amarok.png rename to src/context/applets/albums/package/contents/images/icon.png index 65dd14d4117315683d010ca1f34830a9b6a04bea..65dd14d4117315683d010ca1f34830a9b6a04bea GIT binary patch literal 3132 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 literal 2897 zc$@)I3$FBuP)eEh5@l)17d+t1W6DQDEES{?&U2+o`?w|iV|QF zHtb-@3T4Lv5Ml))2^R_7D*<982n0wZBm#L&AU!=jJ*T_Roays&`}oPC%IEm>BcwZ0 zBqZFj?6N=qUFG`y>UA3az5RQ8O`8MozkqLd56Jc%n|trF5B&;Nhd6{l2qgQC8VGS% zB|B04ad-ug6$O)>9sE2;Dut+PL|MXU#7a>RD@AUDW54vZ%a@6hj35ZW6VTkw zGQ8C{u-7ioG2z6JOjT4mXA*BQ%U^s#-<5axN;C0gU2|b`{BNLzlac84n0-y7A0$`D1(FxEkFCZvFgM z33htKMP|Ixc*gVSKKneuGryU=zZF1Vt`RSu2{xIP$>4Evl-FVKufdenUU zj<4bGY!O!_t|KU@Q52wkE?<0!`1vR1CQimMyu41WCV08ak~hUI8;$m%-hh0r(R2d4 z8*9XFf=&g>Em4jzH|q+j4Vbhvofk|7JNP0;RtlkNL{S1GR%A}Rq9`^N$6CX`zs%BP zf>s`GnWGxdFyPI8IP;7GIMac(Up$IdMhcrFh&=G5*&`pqaGs$v9a#UR~U z19Pr}Ie)4Hd(S;aDUDqEiFuC_MoL71|10wI;*y@Q~6 zPyCoI388|`$(#?B;k9mQ`jz;=^73S!Q2^twK&~MOVX93tP==;s4MNBx7<<5XZ54kB z@^H?J6iN+AYSPmPd<}g2Xub+zm_Qc7)ZT0O>z}0#Lhx*!3Y(uKHF29*d=t|TT<rBMhpkXq+E#3X}9W|e%s3m^F8gQ#E!EdwObK`^1BgTNtTG?;7pxO{&T zKK7{xP`Zcb1o(hPkW!&7pIBZ2>?KsgYgdSuCUjN>4w~9FCX$q#E_rJ}x|cx1yQ>2n zLJBH73rorNHChcHEl*fl`R9C|z+~qNdU--;*`+2Vr$7P~sbSj9=vz;7!}{MJ$F5d-1gq{s9^gDK03gE=zZt$^sDDT_}+)`gR6(| z-U4s>fiVoPtrNv#N-2@PY$^v-25c_Of)4Vn@23vVo6<3id&lM1AWkTRgVL>WhAI~3 zhYH~AX}Gxd7@h}S2evm&`|Nd$HlxU-XYKlFc;V&8&{pf+4Tw6R0+WuS*@DK2`4`t7 zHxs;0i?<#Nm*@FW0QZUcn8XoKodThuO3mVg5a6_CtM>~tM)HIiywq<5$AdaEX#qI$ zwegNHa}Wo}-w3V;bqbDa^CVjZP}^|tM;~USyVP-kRtgu7DJedh4l$1p9^s{CMYsoF zxcMQ*!4@o+_)_Ab$w=|ggha22XB)ow(T5rNTd0)+$93@0v;1gcerkCIkf(5MaEWO( zA@n7QDsim`ChT&JjfHl)O5ob=I$3S_tW%O(KBHo|u!b?`t9pWG`O*%3$Mg^IbppNJ zb*iNat}jt4w`+kW{x0i_{lL;0`1#tSIND68k}mj>sb=AUh(NUF150P%7weYSkZpo& zcx|2)t$twX?D6@ZU-~iP5Z>|3d6OR_ApuRhBLpn1E^4&ZCe3<}W<68@a<%1|Bi3$Y zn?GefOqH3m3zYkK0Z8i^vAXCyP4De&!iv(kcSk@=SCFe%97>*J}C*zH_VG=A!o~cE*{ndcbQl9G`>qLi3ivaN*AOlKuvi?7b0U7# zoV)GoZ4dnSo%gV*9t;^Nh(DQ>%sw_LbD-7EO7J3mJ++@V~~7&Dnk zqQI0b3ElO z#0L)W-Eo(ZoKWWl!V?HeQUn))>r^w(7|s2lrD<({whRwy^mjMm_`tir-_mqwdEL@z vqv`k9_}_0WZoXQ+?U|$an{fW+|JmaodA;@@4WAyM00000NkvXXu0mjfK|_ac diff --git a/images/icons/48-actions-current-track-amarok.png b/src/context/applets/currenttrack/package/contents/images/icon.png rename from images/icons/48-actions-current-track-amarok.png rename to src/context/applets/currenttrack/package/contents/images/icon.png index 314507874cd10d64cb4c3aeb54a8287d104fa1aa..314507874cd10d64cb4c3aeb54a8287d104fa1aa GIT binary patch literal 3982 zc$@)_4{`8`P)_pKtejuU~gBF*Cl%K|}kr3Q()!n7LLu<9VpI)*L@rTT>SlFYhGYPDeoP4jfCvbQ5*(Gu z+A{lxFEx5U?(KN($jX%~)&GkCBBCo-JzF22F?TiB)LrGdF}nh7Oa?zrMdg|hK*$CJ z0i+d-;ejOO2Y)@VYwdk&)~t~{O|WSRAR=+oPq*DDYU)>)YU*N!Vd9IxgMfeuxR!s7 znZN)bJ&2(rp9~LlU9o!AIlHDKVoCu-WZd-gw|=f7vwx(WTEi6L3&RruK?|@9{{l0> z1b_j}fEY^l7y3KDd;e`;d7hak^@~Xbobt76?Q_1l>WO0Q>?fzW01N@t z*noiF@)ZJR|I`3PE?p?~9lHG&x1RdwWFpK7l@S>?-S_^6e57fqVFr!^e&TDU@Zl@h ziAP0Lswy|?pw4{o_J=-nh-l43BE&@SD}VOpzZPp7zW_W{g%<<_3@V4BYH#<&NUfj) zu0gTJpWe3mjiogHg%b%NB60oQTd!Bq#vhVpPYb@9ifT0ofFOb)M(d8R#{i`ABPlZ= zov>rYn}2)DJsVo9i8x9C5z*Cuzu|Nv-u$4p!@`^<{Py?9Q? zk1xOcat{C#GlPi4%DcB*X*7O$9b2wHP?dXOD)_n@!gXg0v?TnO97+M51B`?H3Wxe7 z!a)Ob5(b)LgqFBQjSUov9$wui@XkSN6uu0rv@gOR6Dp!cg<08Te|FEa^H*HhKCo=r zGF>qt5vYk>Cyx>St8)deSVRbzK<^On2DiCMW+UC7H6Js5q3K!oi?oe@2;o`oqI>w>ss zzC_q6VRsL(VNVTM`$nxbkMuyL<(2kDC=DoPn7x1AwD$JXmNTRy(UctQtbglJ zWZq{-ROq*ZE^atWpfz5=39&r(^t-@Fi;u!f1t>l0AIt!`k+T4pL?lfB!i~&W!GYkk z-~qzY`Gm$8(3t{W+&K(Z60?eLzrW=4=$=`#7WBtrv7F;Lo?#fw%my=));izldAasE z!(C6k-WBW1HP*kd$HiqQG8Q)v;$YfB)-%dI0C>uW*Ht2u41^Qc{lmsfpSX9~a{_=c z+}cwsk!LFSSP)pcfS@$6?kx$gl!sI3IJoqT`j6Y&+YdK3Hl|I}3>AyT6AOjH{6e9y zpja%nI*#Ln!(oatqcm%Z+WeKhph&WvY$v{&O~`o zHx0{)P6b~%n&bZGfdPP(L`WV!(AF|58I4ABp65kv+cvb;hwr)Pp6%`J?f-twHP>w3 zwryLlZQDvIWtpZq7z_rFoYorb$mWakaN0w*Bv4}(VZtlFWfFKUJGrnD07#sD$q(W% z0?t(Mm10G}p#crBMj|K=N2AePAP`WV=gn|kcj%#q9{T96yY5(;H?S}K(u z?CR>;>ALP`nM}qE1Ok0Ep-@T``+JpC=+0OGfVh>dIvO7ZuNlk?2rCYNMC*d{PGn;= zy_gK12xyLxKVbEH00>Pnk#t?xGYo@?$dXc)cJJQ(HUJlZ0f3e)S<<i6un~v@5T;iuObfm;6*Pn&;*|F97y(;Z zmc{VHnn^^?rI%jn0tmog?->MuU@$mX!6718mZiwBG&4h%pCwq2gZHyh%?us`@0S$= zAhG+sP5ViCQ^J>@hr?-qMm0Nb!7zYyJ`g7&2Y^dN0mCq6oqO)N7XXj|6aY;`#`5LM zPhn<52vP8##WbX98ptp)BUl78W55ed2(OQVXDF|j1^}`1&1ce3rNUJ3mGYsK|Jhnk z2-*fRGBCSTD!I&D8wdoX=Xo<*T3Y^kaB%RdwQJW#UVr`dIYUE3*G3|dwsblji$o%w zT5HM|ie^rP8vsH>s03z4UokW_eC2;xOaag)0FPxc4WMBnctMqu&^_qqIL$G_2bP75 zj<)xu^E<-fu&`|#`F!30K#@pf$;~(4ybyo|fQE*K5{~0^GBZl0lJVk>^la93mgAa; z*dC4yn;2Gsso^WBhAa#KU;#iXub7(1=1t+BmO-!#pnJ%_eM%D$t#zSc+0XCv7D*{< znYqSw-K>$-sZ=VNZ+zSn{q>*nf16Rkwty4Fjb}-?ro_t~F7~Es zs>16kjiTm@j502q--WajrC*trYQ#s~-)S@kFrCNh)5`*ob2om-y1_rm1>vgYHDKaNKqeKh9{9ocS08_yq28p`lgefef@ zFXPou8RxYNEI&f%y=UWaZzlZNkagbvw8qQ(7+?X0 zB0Re*d`$3$@=!>1z67Ae%uLKoD^{#- zQBi0#Dg}po(p%Sl_l#ucj)TmsOaSaSj`#ixtDn25>B~Pfn-?y?80hf_SK$2u{@e>Z z{IbGjrwE+ZEU>uUKLHb(T?iVT&@(dzhk+;GCVX(noY2Nc;c*l^X^DLIN54;Y?&!nV zRS6=Zwzjs=qKj_5s{QLXKBk-+5@VdUBE}!){g$W7l(#ZhRY2HgG{ptx#tAJ6LUUXo zQ(){*D(vsq_^eN(BdL+|CTi*N@JHVdW)3AcuDpgd&Z*iE$=@}`=Xe^pb>axz>^wX1>jIh;*EWNtNY&@t;6LwKQTNegg3N@T-S&H zQOFJ?;ioBn$REqt-QAtu^~N(lp~0TvQIn}mtSe?yfheyaz@M`!?Z13v72z)k&#Yk& ze7a}zZ&p48AU}5FV?;ptV(EYWaPMm!@2;`K?<4^OT0-T@ZR30Fd0&<>4NsfUZBjQ-$Emee->NvRbrAKbv`}WhX!Cyw7bkBG? z+pGkCQW8Ds)UTaI{8-y3CE;Yc(gUBqzHZBtxBUu0 zH-IcNPq}M9-HmR7zrx@&G&IaubpDlJZ(nrzDiLd)pEbjVggF5`CNvYx3`-SYeQ5N|c3|XP$Xxt!bJwQ@KFPNoQVtW$mmJ&v6oS z=P5fJ@W_NBF#gRm={_LUtfOobFB~4}9|8 o3lDEA0}lbn!H;^!1YSA*58zJ!&hn@juK)l507*qoM6N<$f{fsK_W%F@ literal 3982 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 diff --git a/images/icons/48-actions-amarok_lyrics.png b/src/context/applets/lyrics/package/contents/images/icon.png rename from images/icons/48-actions-amarok_lyrics.png rename to src/context/applets/lyrics/package/contents/images/icon.png index 963b0cf9d42419bdcc5d67688a4e19484ee94792..963b0cf9d42419bdcc5d67688a4e19484ee94792 GIT binary patch literal 1952 zc$}Tp`#0429|!Qypk1<+D7Rwstxy|lHAO0=r6FdrW0sJOm{f8J+gM8FtJyBA+;#M2 zFMd2 znVDHxS$TPR`T6+;1qH=#-@bhZdk>T#sIbz~(z3F$a-gEJ0-(_<0g!YWf=;7@s-go` zRrKmAST(E$sD*t1>JasahKBlv#s;7f)&wvZO^jv+gV79YX>LJ$M6@E>HvJB3hjjqm zJ)N+w&aO?&F6O3g1oBuG^57m&Y&d{k1iOz7^dUH$zJ4wT_yh4Lq94H>9vB!H9313w zxkE!k!vJs72ybK)e}unjls`Jk9~&P9#t`E$fk5yVAe{Ugm_P`H6T(R$FgYol6bYwh zCjpUYQY3~05Q{}(i5QSb#1g3lkV+-eDJd|8m`2PXW)X9UdBnoPynJZ^kRcWka>PG~ zCB!n~)25YAD=VK?*H&PwE2{t!YlzQ?b=bzn1{l}q2@Ds^pGhPh=LRV$tEj4NRku6$ zy@S&wPcQGwKK?g@Z%0MPlT%X*M@D3_wKZ_hdSK8Rf>g|$?Cl6q!)fVPu6zHe%jjL^ z^YVRo?^z%6D-CW0{z|0NnZxE;0~K_MZf>r!Nz4zgUw!+ZIM=(0PsUS}o2}m5O0ny+ z)Z_iv+JhbEWsEB(`b{~;lw)5VXK_Z3Sh3bqVpyHn9W2VT#R+m)#~i6~?xe_hR@kZ7 zTL^v9Eef$f9iD*{5BHEOZdf#HKi2Aagwp;>Ob_PTa9sB7>w(%A9_-zxd0^!kndqfe zrhonHY={Y^;KT)Lc%5}lG7kV zTQdB!%{0|jTIcc?&*vVaPoKPJmtp(Z=U{Qs$>AX$xcC;uX@8yF5f$*@ib3DTO-T`T zUjTLP#gs`&ycNoV)clLr`ESew)^e@Z@VF!g7el`w4RjOHS(|3XPLrLYqEo`OH0{60 za8gs|xTFP=YRp4)w3j=d#HM|$Ddpp#mrvbiDHXp8$}|jWhHTJ{nE7u~G4FE6irh)t z7pr6Lw2l-HzU%jY9+hyFqkYc6V@sNa>Nr_Ho3Im)xi#J0HLYo8mG`I8`h;32{yP&p zX0DOsWrN7a#%Q|4se~4Em&Qq|4>OMX`(B2_g=%B+{phKlEMF#Z*;Wt~I5WX3Uz2&v zx|zobAFX&~tp0&dP_&0tKkh|ee6vHrIe2yE6p4M+d(2LS9XltJ)yntR>HlOjP#5r$ z|6<9`wyEV%)d^SXF;mJ~MhCVpAjyvyl!Hp_(d!LUM~S;9oKT@+`!{PLx-J&G1EvJW zZS$rMV7E|BmF|g@cFmIu-|WKn|7?Hc#y0I|W~dK^2dsAgKu~MXa#MH9+(nUIQ^SVR z401^E9cenZ&5|ASofdWQNnvYwy-ik9@1~hxxuXtcYP%0kuDYy$TK2R|KgsJZ<-&`J z+@(fA-Tlbfki4K+F{g}{T68^@ttau)j!pPbfBN~+WK*5p>*nLo*oLL%fv^4VG}epV zaF5k1nPa-);`cNoopnQT`R>nz%uGv(eD!A0cg(R=!>;LZZsEpwsUOYVuGcv!?{!-9 zku#0d)c>J9DbwESHrX13>v7h%#RcA9rVT$>;^8Z-n5BpE2{lzq0>-UOt<%9CEou8H zwLQl$WaH%DLqtP_c-g_0hdZC2;-?M-U)&z8L+i_Fy82U$(XOaFgy@baV|JB3qon5~ z8K)F;HsV$yhVN1E(u?X{E>E literal 1952 zc$}Tp`#0429|!Qypk1<+D7Rwstxy|lHAO0=r6FdrW0sJOm{f8J+gM8FtJyBA+;#M2 zFMd2 znVDHxS$TPR`T6+;1qH=#-@bhZdk>T#sIbz~(z3F$a-gEJ0-(_<0g!YWf=;7@s-go` zRrKmAST(E$sD*t1>JasahKBlv#s;7f)&wvZO^jv+gV79YX>LJ$M6@E>HvJB3hjjqm zJ)N+w&aO?&F6O3g1oBuG^57m&Y&d{k1iOz7^dUH$zJ4wT_yh4Lq94H>9vB!H9313w zxkE!k!vJs72ybK)e}unjls`Jk9~&P9#t`E$fk5yVAe{Ugm_P`H6T(R$FgYol6bYwh zCjpUYQY3~05Q{}(i5QSb#1g3lkV+-eDJd|8m`2PXW)X9UdBnoPynJZ^kRcWka>PG~ zCB!n~)25YAD=VK?*H&PwE2{t!YlzQ?b=bzn1{l}q2@Ds^pGhPh=LRV$tEj4NRku6$ zy@S&wPcQGwKK?g@Z%0MPlT%X*M@D3_wKZ_hdSK8Rf>g|$?Cl6q!)fVPu6zHe%jjL^ z^YVRo?^z%6D-CW0{z|0NnZxE;0~K_MZf>r!Nz4zgUw!+ZIM=(0PsUS}o2}m5O0ny+ z)Z_iv+JhbEWsEB(`b{~;lw)5VXK_Z3Sh3bqVpyHn9W2VT#R+m)#~i6~?xe_hR@kZ7 zTL^v9Eef$f9iD*{5BHEOZdf#HKi2Aagwp;>Ob_PTa9sB7>w(%A9_-zxd0^!kndqfe zrhonHY={Y^;KT)Lc%5}lG7kV zTQdB!%{0|jTIcc?&*vVaPoKPJmtp(Z=U{Qs$>AX$xcC;uX@8yF5f$*@ib3DTO-T`T zUjTLP#gs`&ycNoV)clLr`ESew)^e@Z@VF!g7el`w4RjOHS(|3XPLrLYqEo`OH0{60 za8gs|xTFP=YRp4)w3j=d#HM|$Ddpp#mrvbiDHXp8$}|jWhHTJ{nE7u~G4FE6irh)t z7pr6Lw2l-HzU%jY9+hyFqkYc6V@sNa>Nr_Ho3Im)xi#J0HLYo8mG`I8`h;32{yP&p zX0DOsWrN7a#%Q|4se~4Em&Qq|4>OMX`(B2_g=%B+{phKlEMF#Z*;Wt~I5WX3Uz2&v zx|zobAFX&~tp0&dP_&0tKkh|ee6vHrIe2yE6p4M+d(2LS9XltJ)yntR>HlOjP#5r$ z|6<9`wyEV%)d^SXF;mJ~MhCVpAjyvyl!Hp_(d!LUM~S;9oKT@+`!{PLx-J&G1EvJW zZS$rMV7E|BmF|g@cFmIu-|WKn|7?Hc#y0I|W~dK^2dsAgKu~MXa#MH9+(nUIQ^SVR z401^E9cenZ&5|ASofdWQNnvYwy-ik9@1~hxxuXtcYP%0kuDYy$TK2R|KgsJZ<-&`J z+@(fA-Tlbfki4K+F{g}{T68^@ttau)j!pPbfBN~+WK*5p>*nLo*oLL%fv^4VG}epV zaF5k1nPa-);`cNoopnQT`R>nz%uGv(eD!A0cg(R=!>;LZZsEpwsUOYVuGcv!?{!-9 zku#0d)c>J9DbwESHrX13>v7h%#RcA9rVT$>;^8Z-n5BpE2{lzq0>-UOt<%9CEou8H zwLQl$WaH%DLqtP_c-g_0hdZC2;-?M-U)&z8L+i_Fy82U$(XOaFgy@baV|JB3qon5~ z8K)F;HsV$yhVN1E(u?X{E>E diff --git a/images/icons/48-actions-photos-amarok.png b/src/context/applets/photos/package/contents/images/icon.png rename from images/icons/48-actions-photos-amarok.png rename to src/context/applets/photos/package/contents/images/icon.png index bbe1180e18ef74728e43fe5597866a98326eed85..bbe1180e18ef74728e43fe5597866a98326eed85 GIT binary patch literal 2729 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 - - - - - - image/svg+xml - - - - image/svg+xml - - - - - - - - - - - diff --git a/src/context/applets/wikipedia/package/contents/images/icon.svg b/src/context/applets/wikipedia/package/contents/images/icon.svg new file mode 100644 --- /dev/null +++ b/src/context/applets/wikipedia/package/contents/images/icon.svg @@ -0,0 +1 @@ +]>Wikipedia logo version 2 \ No newline at end of file diff --git a/src/context/applets/wikipedia/package/contents/ui/main.qml b/src/context/applets/wikipedia/package/contents/ui/main.qml --- a/src/context/applets/wikipedia/package/contents/ui/main.qml +++ b/src/context/applets/wikipedia/package/contents/ui/main.qml @@ -17,8 +17,7 @@ import QtQuick 2.4 import QtQuick.Controls 1.4 import QtQuick.Layouts 1.3 -import QtWebEngine 1.1 -import org.kde.kirigami 2.0 as Kirigami +import QtWebEngine 1.3 import org.kde.amarok.qml 1.0 as AmarokQml import org.kde.amarok.wikipedia 1.0 @@ -29,30 +28,30 @@ anchors.fill: parent RowLayout { - Layout:fillWidth: true + Layout.fillWidth: true Layout.alignment: Qt.AlignTop Button { iconName: "go-previous" enabled: content.canGoBack Layout.alignment: Qt.AlignLeft - ToolTip.text: i18n("Previous") + tooltip: i18n("Previous") onClicked: content.goBack() } Button { iconName: "go-next" enabled: content.canGoForward Layout.alignment: Qt.AlignLeft - ToolTip.text: i18n("Next") + tooltip: i18n("Next") onClicked: content.goForward() } Button { iconName: "view-refresh" enabled: !content.loading Layout.alignment: Qt.AlignLeft - ToolTip.text: i18n("Refresh") + tooltip: i18n("Refresh") onClicked: content.reload() } @@ -62,46 +61,45 @@ Button { iconName: "filename-artist-amarok" Layout.alignment: Qt.AlignRight - ToolTip.text: i18n("Artist") + tooltip: i18n("Artist") onClicked: WikipediaEngine.selection = WikipediaEngine.Artist } Button { iconName: "filename-composer-amarok" Layout.alignment: Qt.AlignRight - ToolTip.text: i18n("Composer") + tooltip: i18n("Composer") onClicked: WikipediaEngine.selection = WikipediaEngine.Composer } Button { iconName: "filename-album-amarok" Layout.alignment: Qt.AlignRight - ToolTip.text: i18n("Album") + tooltip: i18n("Album") onClicked: WikipediaEngine.selection = WikipediaEngine.Album } Button { iconName: "filename-title-amarok" Layout.alignment: Qt.AlignRight - ToolTip.text: i18n("Track") + tooltip: i18n("Track") onClicked: WikipediaEngine.selection = WikipediaEngine.Track } } WebEngineView { id: content + backgroundColor: "transparent" + Layout.fillWidth: true Layout.fillHeight: true Layout.alignment: Qt.AlignBottom - height: Kirigami.Units.largeSpacing * 25 //TODO: Find a more elegant solution to set the height onNavigationRequested: { - if (request.navigationType == WebEngineNavigationRequest.LinkClickedNavigation) { - request.action = WebEngineNavigationRequest.IgnoreRequest; - WikipediaEngine.url = request.url; - } + request.action = WebEngineNavigationRequest.IgnoreRequest; + WikipediaEngine.url = request.url; } Connections { diff --git a/src/context/applets/wikipedia/package/metadata.desktop b/src/context/applets/wikipedia/package/metadata.desktop --- a/src/context/applets/wikipedia/package/metadata.desktop +++ b/src/context/applets/wikipedia/package/metadata.desktop @@ -57,7 +57,7 @@ Type=Service ServiceTypes=Amarok/ContextApplet -Icon=wikipedia-amarok +Icon=amarok-wikipedia X-KDE-PluginInfo-Author=Leo Franchi X-KDE-PluginInfo-Email=lfranchi@gmail.com diff --git a/src/context/applets/wikipedia/plugin/WikipediaEngine.h b/src/context/applets/wikipedia/plugin/WikipediaEngine.h --- a/src/context/applets/wikipedia/plugin/WikipediaEngine.h +++ b/src/context/applets/wikipedia/plugin/WikipediaEngine.h @@ -23,6 +23,7 @@ #include "network/NetworkAccessManagerProxy.h" #include +#include class WikipediaEngine : public QObject @@ -108,13 +109,15 @@ QString m_message; bool m_busy; QString m_title; + QString m_css; private slots: void _checkRequireUpdate( Meta::TrackPtr track ); void _parseLangLinksResult( const QUrl &url, QByteArray data, NetworkAccessManagerProxy::Error e ); void _parseListingResult( const QUrl &url, QByteArray data, NetworkAccessManagerProxy::Error e ); void _wikiResult( const QUrl &url, QByteArray result, NetworkAccessManagerProxy::Error e ); void _stopped(); + void _paletteChanged( const QPalette &palette ); }; diff --git a/src/context/applets/wikipedia/plugin/WikipediaEngine.cpp b/src/context/applets/wikipedia/plugin/WikipediaEngine.cpp --- a/src/context/applets/wikipedia/plugin/WikipediaEngine.cpp +++ b/src/context/applets/wikipedia/plugin/WikipediaEngine.cpp @@ -22,11 +22,14 @@ #include "WikipediaEngine.h" #include "EngineController.h" +#include "PaletteHandler.h" #include "core/meta/support/MetaConstants.h" #include "core/support/Amarok.h" #include "core/support/Debug.h" #include +#include +#include #include #include @@ -43,13 +46,16 @@ EngineController *engine = The::engineController(); _checkRequireUpdate( engine->currentTrack() ); + _paletteChanged( The::paletteHandler()->palette() ); connect( engine, &EngineController::trackChanged, this, &WikipediaEngine::_checkRequireUpdate ); connect( engine, &EngineController::trackMetadataChanged, this, &WikipediaEngine::_checkRequireUpdate ); connect( engine, &EngineController::stopped, this, &WikipediaEngine::_stopped ); + connect( The::paletteHandler(), &PaletteHandler::newPalette, + this, &WikipediaEngine::_paletteChanged ); } WikipediaEngine::~WikipediaEngine() @@ -379,6 +385,41 @@ m_previousTrackMetadata.clear(); } +void +WikipediaEngine::_paletteChanged( const QPalette &palette ) +{ + DEBUG_BLOCK + + // read css, replace color placeholders, write to file, load into page + QFile file( QStandardPaths::locate( QStandardPaths::GenericDataLocation, "amarok/data/WikipediaCustomStyle.css" ) ); + if( file.open(QIODevice::ReadOnly | QIODevice::Text) ) + { + QString contents = QString( file.readAll() ); + contents.replace( "/*{text_color}*/", palette.text().color().name() ); + contents.replace( "/*{link_color}*/", palette.link().color().name() ); + contents.replace( "/*{link_hover_color}*/", palette.linkVisited().color().name() ); + contents.replace( "/*{background_color}*/", palette.base().color().name() ); + + const QString abg = palette.window().color().name(); + contents.replace( "/*{shaded_text_background_color}*/", abg ); + contents.replace( "/*{table_background_color}*/", abg ); + contents.replace( "/*{headings_background_color}*/", abg ); + + const QString atbg = palette.alternateBase().color().name(); + contents.replace( "/*{alternate_table_background_color}*/", atbg ); + + if( m_css == contents ) + return; + + m_css = contents; + updateEngine(); + } + else + { + error() << "Could not load WikipediaCustomStyle.css"; + } +} + void WikipediaEngine::fetchWikiUrl( const QString &title, const QString &urlPrefix ) { @@ -413,8 +454,7 @@ wikiCurrentUrl = pageUrl; urls << pageUrl; emit urlChanged(); - The::networkAccessManager()->getData( pageUrl, this, - SLOT(_wikiResult(QUrl,QByteArray,NetworkAccessManagerProxy::Error)) ); + The::networkAccessManager()->getData( pageUrl, this, &WikipediaEngine::_wikiResult ); } void @@ -438,8 +478,7 @@ url.setQuery( query ); urls << url; debug() << "Fetching langlinks:" << url; - The::networkAccessManager()->getData( url, this, - SLOT(_parseLangLinksResult(QUrl,QByteArray,NetworkAccessManagerProxy::Error)) ); + The::networkAccessManager()->getData( url, this, &WikipediaEngine::_parseLangLinksResult ); } void @@ -460,8 +499,7 @@ url.setQuery( query ); urls << url; debug() << "Fetching listing:" << url; - The::networkAccessManager()->getData( url, this, - SLOT(_parseListingResult(QUrl,QByteArray,NetworkAccessManagerProxy::Error)) ); + The::networkAccessManager()->getData( url, this, &WikipediaEngine::_parseListingResult ); } void @@ -567,8 +605,8 @@ WikipediaEngine::wikiParse( QString &wiki ) { //remove the new-lines and tabs(replace with spaces IS needed). - wiki.replace( '\n', QLatin1Char(' ') ); - wiki.replace( '\t', QLatin1Char(' ') ); +// wiki.replace( '\n', QLatin1Char(' ') ); +// wiki.replace( '\t', QLatin1Char(' ') ); // Get the available language list QString wikiLanguagesSection; @@ -635,14 +673,26 @@ } }; + QString header = QString( "\n\n%1\n\n\n" ).arg( title ); + + // add own stylesheet + if( !m_css.isEmpty() ) + { + removeTag( "" ); + int index = header.indexOf( QStringLiteral( "" ) ); + header.insert( index, QString( "\n\n" ).arg( m_css ) ); + } + + wiki.prepend( header ); + // lets remove the warning box removeTag( "" ); // remove protection policy (we don't do edits) removeTag( "
" ); // lets also remove the "lock" image removeTag( "" ); // remove