From dc3ce7e365dcfbf8089b643e1fa4e4cd88dc9d6d Mon Sep 17 00:00:00 2001 From: Mark Liversedge Date: Fri, 17 Jan 2020 16:04:27 +0000 Subject: Connect with Strava .. the authorise button on the add cloud wizard now shows a 'Connect with Strava' icon .. all other services continue to have a button that is labelled 'Authorise' .. this is needed to comply with the Strava API application guidelines. diff --git a/src/Cloud/AddCloudWizard.cpp b/src/Cloud/AddCloudWizard.cpp index db1aea7f1..6deb107bd 100644 --- a/src/Cloud/AddCloudWizard.cpp +++ b/src/Cloud/AddCloudWizard.cpp @@ -27,6 +27,7 @@ #include "OAuthDialog.h" #include +#include #include // WIZARD FLOW @@ -271,13 +272,15 @@ AddAuth::AddAuth(AddCloudWizard *parent) : QWizardPage(parent), wizard(parent) pass = new QLineEdit(this); pass->setEchoMode(QLineEdit::Password); pass->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); - auth = new QPushButton(tr("Authorise"), this); - auth->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); token = new QLabel(this); token->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); message = new QLabel(this); message->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); + // is there an icon for the authorise button? + auth = new QPushButton(tr("Authorise"), this); + auth->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); + // labels comboLabel = new QLabel(""); urlLabel = new QLabel(tr("URL")); @@ -367,6 +370,24 @@ AddAuth::initializePage() // clone to do next few steps! setSubTitle(QString(tr("%1 Credentials and authorisation")).arg(wizard->cloudService->uiName())); + // icon on the authorize button + if (wizard->cloudService && wizard->cloudService->authiconpath() != "") { + + // scaling icon hack (193x48 is strava icon size) + QPixmap pix(wizard->cloudService->authiconpath()); + QIcon authicon(pix.scaled(193*dpiXFactor, 48*dpiXFactor)); + auth->setIconSize(QSize(193*dpiXFactor, 48*dpiYFactor)); + + // set the pushbutton + auth->setText(""); + auth->setIcon(authicon); + } else { + + // standard pushbutton (reset after used by strava) + auth->setText(tr("Authorise")); + auth->setIcon(QIcon()); + } + // show all the widgets relevant for this service and update the value from the // settings we have collected (which will have been defaulted). QString cname; diff --git a/src/Cloud/CloudService.h b/src/Cloud/CloudService.h index b9c14c90c..95ebcc5ec 100644 --- a/src/Cloud/CloudService.h +++ b/src/Cloud/CloudService.h @@ -95,6 +95,9 @@ class CloudService : public QObject { // need a logo, we may resize but will keep aspect ratio virtual QImage logo() const = 0; + // an icon to put on the authorize button (mandated by strava guidelines) + virtual QString authiconpath() const { return QString(""); } + // register with capabilities of the service - emerging standard // is a service that allows oauth, query and upload as well as download enum { OAuth=0x01, UserPass=0x02, Upload=0x04, Download=0x08, Query=0x10} capa_; diff --git a/src/Cloud/Strava.h b/src/Cloud/Strava.h index 1c51a5da4..45ee2f57c 100644 --- a/src/Cloud/Strava.h +++ b/src/Cloud/Strava.h @@ -45,6 +45,8 @@ class Strava : public CloudService { //virtual int capabilities() const { return OAuth | Upload | Download | Query ; } // Default + QString authiconpath() const { return QString(":images/services/strava_connect.png"); } + // write a file bool writeFile(QByteArray &data, QString remotename, RideFile *ride); diff --git a/src/Resources/application.qrc b/src/Resources/application.qrc index 3fae9b8da..86fbdf032 100644 --- a/src/Resources/application.qrc +++ b/src/Resources/application.qrc @@ -167,6 +167,7 @@ web/googlemap/dark.css images/toolbar/cloud.png images/services/strava_compatible.png + images/services/strava_connect.png images/services/cyclinganalytics.png images/services/dropbox.png images/services/googledrive.png diff --git a/src/Resources/images/services/strava_connect.png b/src/Resources/images/services/strava_connect.png new file mode 100644 index 000000000..868c433da --- /dev/null +++ b/src/Resources/images/services/strava_connect.png @@ -0,0 +1,15 @@ +‰PNG + + IHDRÁ0¨Œ sRGB®Îé IDATxí\w�UÕÿ�G]H‘ªK�’¡ +d�" # %H� þa21[âÄh2š0ÎDM4ÑŒè$CÆ1F:„DIè½÷Þé½/{O¾ß÷ö\î»»”Çîf²/ç›y{O»çžóÝï÷µ{ïž<<<<<<<þ¯9`b»g=ú‹uûªç@‰æ€•ÕGº™Ò±-™}ûö ¨S§ÎïJ•*U'Ö竞%š¹¹¹_ =•��=Q6B0(Å-A™œœœ½¥K—®íø£ç@&qàÊ•+Ë”)SOö”ãöA–µö¼ëôGÏ�Lä€1¦‚ìë‚Û[ÂòŽqPĺ}Õs #8�"çqdÄý&<Òá€A:Üòc3’y[ý¦Òá€A:Üòc3’y[ý¦Òá€A:Üòc3’y[ý¦Òá€A:Üòc3’y[ý¦Òá€A:Üòc3’ñ·H3r“ÿK›:}ú4.^¼ˆš5k^sYAàèÑ£¨X±"*Tàk.7I;VÁîÝœ: Ô¨S§1�Ý(Søjppç�'ʪdUŽ•lù¯5ëÕïÈßçZä<»b&̃�É€=²G;!sËüŽdŸXó…«µ\óª«Mî»ÚWŒ¥bÁñãDZxñb9ròV*êÕ«‡öíÛ£\9¹!%ˆ>ŒòåË£råÊE²ê•+WbëÖ­xâ‰'�H$pùòe�WÕªUCÙ²eõçÎ�äI“СC´nÝúÆ×=²Á[�Á®™�o¬©VfèËÀá=þúZ¾þxƒ©×¦Q[ÿú0ÞÖÍÝí‘øÞ»@£{Â6W°Ÿ½»àS˜FjSðjØœKZN y føÏÝPØ9!xstX/õ« +‚à/¯*/O ûгP,îÐÁƒ1qâDÕfwÝujÕª…Í›7cúôé –+I4cÆ ¬_¿¾È–ܼystïÞ]ÀI©ñ§L™‚cÇŽÝÚ5‚\¯ .œÐR3¿ÿ4ì�m·6gÙ­K<'Z}÷ÚÔÞ“‡aÿþìÑ/a?ÿ#P­nÒ"ä�²SßÎ�JÖ¬…ýdlx¾iÓhÖQ,ÃlØM a—MIJý7¨X@0þ|ÈG98p :w={¢mÛ¶z÷oßîKÞíÆÆ�±`Á4Ö�?^ûNž<‰ 6è˜è¹·k×.ìÞ½‡R«³|ùrP‹FI^ W.\¸k×®UW$ÚÏòÎ�;Áþ+VàìÙ³ÚíÖFÐRSs�<ÆI>ÒÀ¦M›Âæ3gÎèØè:ØOÅ@â|Ôþ$ÎÇõ“xä5¢<àÚ·mÛ¦{g_� +„.�¥#“Ý qEL‹N0rHfôX˜lÑðbyôgR^¢„¼ZöIÁMM¹,˜²åÃ: öJ‚�‘Ú6ñ ØKÉ7”-­Nî˜A?†)]FÇY€�çÏ›ûå–ðüÄЗ´|,V �‚ ©ó»ö¢>–.ê O�:¥7·eË–êÓºù›6m +ö9wˆ‚@“O™¾/…Â>`ÀÃv‚‰ãå‹ P ØÏ9Úµk§ÓR¨Oœ8¡‚#JàÒ¥K*ðƒVׂB3mÚ4Ð¥©R¥Š +øºuëпÿpm³gÏÁÅ5xœ“k  ´dÉ�›L·Žî Ý–(Q“/Z´õë×Wÿ�kä.\ÐuróæÍC—.]P»vm½÷Ú¢E /-$‰mÆ h�Ö¬Y£×g;ÁqàÀU(á)ØC»¢Uu#Ìýƒ`šwNˆ˜û1L¿ê˜ÐÐä>+š<�Ì£?R ¸º}c”+ê11n«jul_�àùN +íØ±�§�ÁÎø}xž÷ËÎþ“ZÓã;°³Þ×>;ù-]��ðËp¬iÙ hq?°~.¬üBZ}ú`ôèÑjm(Èò‰¨Ná40-Ñ Aƒô:òåh1H{÷îU¡d¬2lØ0í'ØV­Z…¬¬,Œ3FÝ–fÍši™‚'ºz$‚„D«R©R%µR¬ÓJ‘ä“U=FÿÐ5êÑ£‡6=üðÃz�h Lž�9#FŒP—’s;+âæ¡%»irÖÁÐj^T‘õ]IZžpœðíºt­þš €ÒɸEÏ/›Nc'½ {1f…i Ä]3ßzA¬RRßÚ³'¼ÒWø�ṡˆi~Þ‹¸µ O*ÂB‘ƒ€ 'Q@¯GÔj 'DÌ–PS²=J�7ÖÀšš¹nݺª­£ý·Ýv[(`Œ?H‰s1('¸è×SãS@é¸~®³U«VZ§ÐõîÝ;´4Úxƒ?)]?‚€ƒnP×®]ÕÒ +°�€â:Ó¥† ªEcÀÜ ÏBФ�dk#^IibÅÒzn[Žà�ï"x¡Ð|'\§�ÁmðlG�ÕOts_ŸäY"Øvú;ùf°’‘bð‹Z $P@æ‘Ý0ßÕm-ÁæE°«#™"7báßD[]Œk.Êc‘ƒ€BF¢D‰iAÆÌŒ�X§`G‰u¶G‰æˆ.Oœ¢ýø(Ñ="1v å�sPØI¼ëÌÒ8"ÓXž[½zuç'Pù£%äui 8ç­PA{sJ&:Ÿùö‹`f%Ñe S‹1²[–hÀk¾éªÝ¾RâŽe¡¿Ï݆Á ù©ÎAÇž?£e#éXs÷}Zæ;A‚_QŒfðOÂ%ì”3F$ÍiIh�F0U“<ã~£®SÞ�"=\½ûE4-ˆ&�]4Ècà·ÿþ0peÊ1h2C’N*² �ˆnƒs1.x衇ÔÝ¢ËÕ©S'<òÈ#:Œýt/h)1SÃXÄ…<º×=ÒšÑ�5Ò.jqž1KA®�;ßYLºi·JvÞ'¢‰ßU¿>ñÑ”z{%}ŸJ�nÇêÔúõjyÖÜ q�mX¯‘ óôø¤ktþt첟Ï�¿î†Âîߪq (Ø]††í:¶iàž�m°•³Â>ÌÀçº�ÿ ó9¨½¸2ËB�bà·zõjÍÞÐ- Mâ‘ÖbΜ9êÃÏ�;Wc×_Іo$ôñsèsófŸè1Ã2yòdõù9¶I“&ê.18Þ³g�fˆè¾¸|=ÇвÀ†³,l�A@«Â~ç’¯=Kà@¿lÙ2 ¨£óÞTyר·Gðï?#x²Y2p¥fþ2p‡sÔmoXˆ¹²‰vÀ´ìžf幄�ük­3Ûì‰`a6ˆA®»ÚJk A°ðA…;buÃX ’e2òÀÌt ÓëI˜*5u+Š,šNÍ›¶ÈE®ŒÂÇÔ(5,…{éÒ¥ê‚ôêÕKýcŽ¡¯ï½÷ªÅ˜9s¦jM¦Q)˜×"§5]¼îÚݱF�èÖ­›‚lêÔ©a§M›6:„ÎÀ”ú¬Y³4n`àî²OÔ±cGuÛd_ îé¯ü?›@t‘(àË×"f­¸Æ1´žéRð‡çÅOOÆ@6ç2èú_Œ‡]õÏp*S¡L×T-vÞLA@‘xj\JšÔ~(à$[d'ý&œÁô-Oª³µîœ»o,}û;›ÂÜ?XûMãv@»^ú,À.�¦müà  q�™–ýæ3a»Æ|ê] �^+ˆæJ ñ yQj{úêѬGtJ¦?  +dÔŽŽ)l™Ú˜ë`,p­kXZ«EðZѤvÖ8س'ó-ÝÔm’|ºÛºûÕ>q?rŸéÖ¢½ù,Á‘•§¸Ñ'Æ¥ÆïÓ©ýô5ã_tÃ`ä5 +—bö'ñžXŸZ Ãþà…®pA°‘4gâ·â’I�|¿/~tè‡`죰‹&é9F”'Š ï¹ƒùàñ†°’~%%óƒ´\˜?¢<åý$5‡Š…Y¬?7 ÈÃ+l_ËܽdkP©: ] �Ezb_üxˆÅɽ³ã8GôÝ!ºBL�Jº“Ot ¤ +•úøQ:²ˆ<Ã×e-òÐ�îƒy¥ÕŸ««¤eZ‘;“îr8 Ÿœ8˜¬Ì$’< +É@zÉç@1Qò7èwà9�.<Ò嘟qð ȸ[ê7”.<Ò嘟qð ȸ[ê7”.<Ò嘟qð ȸ[ê7”.<Ò嘟qð ȸ[ê7”.<Ò嘟qˆƒÀÊ—KG3n—~CžyÈ“ïäç�ymqò¾ýX/3™Èʵüsù¸)ÿ÷'þ)¿eäËïwÈ�ß>Æû¥É“ç@‰äµÿEùí—ßÍ–Wb“rÖi†x_ò ÿ×s är€@ ðÓ¤¸D%wK~åžžžž…çÀX¡ cäIEND®B`‚ \ No newline at end of file