From 56afb665eadfb4023f57bfab87ee34657b8dda35 Mon Sep 17 00:00:00 2001 From: Wolfgang Rumpler Date: Wed, 9 Aug 2017 05:49:49 +0200 Subject: [PATCH] Connect UI to source adapter. Closes #17 --- randomwallpaper@iflow.space/prefs.js | 4 ++++ .../schemas/gschemas.compiled | Bin 2264 -> 2328 bytes ...ns.space.iflow.randomwallpaper.gschema.xml | 5 +++++ randomwallpaper@iflow.space/settings.ui | 2 +- randomwallpaper@iflow.space/sourceAdapter.js | 5 ++++- .../wallpaperController.js | 3 ++- 6 files changed, 16 insertions(+), 3 deletions(-) diff --git a/randomwallpaper@iflow.space/prefs.js b/randomwallpaper@iflow.space/prefs.js index b00abcc..eb71770 100644 --- a/randomwallpaper@iflow.space/prefs.js +++ b/randomwallpaper@iflow.space/prefs.js @@ -161,6 +161,10 @@ const RandomWallpaperSettings = new Lang.Class({ this._builder.get_object('unsplash-image-height'), 'value', Gio.SettingsBindFlags.DEFAULT); + this._unsplash_settings.bind('featured-only', + this._builder.get_object('unsplash-featured-only'), + 'active', + Gio.SettingsBindFlags.DEFAULT); }, bindWallheaven: function () { diff --git a/randomwallpaper@iflow.space/schemas/gschemas.compiled b/randomwallpaper@iflow.space/schemas/gschemas.compiled index 4ee17980ba7924e61a80556fd7ea79f716530f78..b0ca0b1513b2c6d1fbe78047ea85a8a1454fc1d5 100644 GIT binary patch delta 955 zcmYL{Ur1A77{=eT|8tdQih~LwDjc%rjge8}h)g6%>}C`MM|SpyJli;Db4s)YMK^Vk ztY8J*1{H{))h;4-BYDwiH-SM(UIdaRMMThr_B>mM4m|vxJ>Pr2z2AGj<=y4>yTfWl z5xM{J)QVk1ZrVhS$*{ZvKO%T~@zyuyQ%;dEbFk_XadwJq<8gSfDCdOifTHUsE3Bty zeFR*Xd2&{9&-~b1bYmqK`WnFo!hiM2q%47T=uFMO#hl)Qd>Q-%X^X3GnbWr+{|^3w zs@DoWc0lh$F6j6)G`qSn#(Mf4$Vb5lbm;YXG0z45*olP%s6*CK=y{Y3$T1{!HLeBo z$!Ipg1-Z`dyOV*OsTnC%*YLv(ZNx+IR9e?c zf0X`#=C%nf8Bb*8xTCpeOjENtLyHE}sfp?49^(NJ(-xNSVS7p`Y%`1eFg)@aXvgyA zMxm8Mr*B8@2lqp{dm|s1)3+e+27{1wVtSsq7aWBqw@>V2J-rL{5%4i&jhY_+82>x4$?;Wy0bnYV#G(2;k2o6PBVAs+-ULGPbk4lt*0MVfoZgGP7wm(q-sw5BLGT9j@Zj$)*3+|< zGWZDUywH#9*Ys%Ryv!kd4&7Pr(YZj+>$3#bpp|m1k<)YdpTRGXHDr1Yc@1=U<_oSD i%D@6P;@zx*i;&eMJ)5k9d%XYmpywVPpx;|EJh8vFlgfht delta 873 zcmXw&Ur1A77{=dCw;f%n3F5%6x`;-oL4R0Lfn+8Y1a>1r!I7PLM$N{~IZ9M+T_i#V zlPO4e(M_-lBpQ@gG0+i2qk#(ZLeYyrn#sC|?p)6^J%fkmIluG$dC&WOn`-K4;KXn8fJ>x{9G-BCxLQOi_$_)-6$+LvFLFFH z$NLl!bNcNKhkN=@TYO=Aw;u}#cRV7al7@ePwA}W0a^@!REIbEY&-?btnHBH?d=0WX ze+`f`d%?HhJ5cuNxR+HiyTHrvv-pz3YKJO(V7ceu{M2wn9oE`)Ej+B7fm*ye74};r zM)ZMd=PP+y_zD>*ZH0bYVm{y4u!&fEZw)uattdwWq+@FL!i8&J(W*e$T1kR#^pA!n`wFT?*rcJ0jU8S0U1 z(5n;w_Bo!Jr3}FDLM?YL;$j?RlyY05fEF}WIvwE)=A)P}34aM~&gH9|nazIImage Width The height of the image. + + false + Featured images only + This results in a smaller wallpaper pool but the images are considered to have higher quality. + True True end - center + start 1 diff --git a/randomwallpaper@iflow.space/sourceAdapter.js b/randomwallpaper@iflow.space/sourceAdapter.js index 3305226..59b4f46 100644 --- a/randomwallpaper@iflow.space/sourceAdapter.js +++ b/randomwallpaper@iflow.space/sourceAdapter.js @@ -95,6 +95,7 @@ let UnsplashAdapter = new Lang.Class({ 'query': '', 'w': 1920, 'h': 1080, + 'featured': false }, _init: function () { @@ -152,12 +153,14 @@ let UnsplashAdapter = new Lang.Class({ this.options.query = this._settings.get('unsplash-keyword', 'string'); this.options.username = this._settings.get('username', 'string'); - if (this.options.username[0] === '@') { + if (this.options.username && this.options.username[0] === '@') { this.options.username = this.options.username.substring(1); // remove @ prefix } this.options.w = this._settings.get('image-width', 'int'); this.options.h = this._settings.get('image-height', 'int'); + + this.options.featured = this._settings.get('featured-only', 'boolean'); } }); diff --git a/randomwallpaper@iflow.space/wallpaperController.js b/randomwallpaper@iflow.space/wallpaperController.js index 86a0c7f..a453c4b 100644 --- a/randomwallpaper@iflow.space/wallpaperController.js +++ b/randomwallpaper@iflow.space/wallpaperController.js @@ -178,7 +178,8 @@ let WallpaperController = new Lang.Class({ */ if (settings.is_writable("picture-uri")) { // Set a new Background-Image (should show up immediately): - if (settings.set_string("picture-uri", path)) { + let rc = settings.set_string("picture-uri", path); + if (rc) { Gio.Settings.sync(); // Necessary: http://stackoverflow.com/questions/9985140 // call callback if given