From dfea1a125c92b70941fd5d585d5a44a3efdf2d52 Mon Sep 17 00:00:00 2001 From: David Rosca Date: Fri, 23 Mar 2018 09:26:40 +0100 Subject: [PATCH 01/13] Windows: Update registered capabilities All registered file types now have same title "Falkon HTML Document" and all registered protocols "Falkon URL". Also added ftp protocol. --- src/lib/app/mainapplication.cpp | 11 ++++++----- windows/installer.nsi | 33 +++++++++++++++++---------------- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/src/lib/app/mainapplication.cpp b/src/lib/app/mainapplication.cpp index 372f16305..ea8eec1bc 100644 --- a/src/lib/app/mainapplication.cpp +++ b/src/lib/app/mainapplication.cpp @@ -1162,14 +1162,15 @@ void MainApplication::initPulseSupport() RegisterQAppAssociation* MainApplication::associationManager() { if (!m_registerQAppAssociation) { - QString desc = tr("Falkon is a new, fast and secure open-source WWW browser. Falkon is licensed under GPL version 3 or (at your option) any later version. It is based on WebKit core and Qt Framework."); + QString desc = tr("Falkon is a new, fast and secure open-source WWW browser. Falkon is licensed under GPL version 3 or (at your option) any later version. It is based on QtWebEngine and Qt Framework."); QString fileIconPath = QApplication::applicationFilePath() + ",1"; QString appIconPath = QApplication::applicationFilePath() + ",0"; m_registerQAppAssociation = new RegisterQAppAssociation("Falkon", QApplication::applicationFilePath(), appIconPath, desc, this); - m_registerQAppAssociation->addCapability(".html", "Falkon.HTML", "HTML File", fileIconPath, RegisterQAppAssociation::FileAssociation); - m_registerQAppAssociation->addCapability(".htm", "Falkon.HTM", "HTM File", fileIconPath, RegisterQAppAssociation::FileAssociation); - m_registerQAppAssociation->addCapability("http", "Falkon.HTTP", "URL:HyperText Transfer Protocol", appIconPath, RegisterQAppAssociation::UrlAssociation); - m_registerQAppAssociation->addCapability("https", "Falkon.HTTPS", "URL:HyperText Transfer Protocol with Privacy", appIconPath, RegisterQAppAssociation::UrlAssociation); + m_registerQAppAssociation->addCapability(".html", "FalkonHTML", "Falkon HTML Document", fileIconPath, RegisterQAppAssociation::FileAssociation); + m_registerQAppAssociation->addCapability(".htm", "FalkonHTML", "Falkon HTML Document", fileIconPath, RegisterQAppAssociation::FileAssociation); + m_registerQAppAssociation->addCapability("http", "FalkonURL", "Falkon URL", appIconPath, RegisterQAppAssociation::UrlAssociation); + m_registerQAppAssociation->addCapability("https", "FalkonURL", "Falkon URL", appIconPath, RegisterQAppAssociation::UrlAssociation); + m_registerQAppAssociation->addCapability("ftp", "FalkonURL", "Falkon URL", appIconPath, RegisterQAppAssociation::UrlAssociation); } return m_registerQAppAssociation; } diff --git a/windows/installer.nsi b/windows/installer.nsi index 8bba6e47e..a448b4f3d 100644 --- a/windows/installer.nsi +++ b/windows/installer.nsi @@ -260,14 +260,15 @@ SectionEnd SectionGroup $(TITLE_SecSetASDefault) SecSetASDefault Section $(TITLE_SecExtensions) SecExtensions SetOutPath "$INSTDIR" - ${RegisterAssociation} ".htm" "$INSTDIR\falkon.exe" "Falkon.HTM" $(FILE_Htm) "$INSTDIR\falkon.exe,1" "file" - ${RegisterAssociation} ".html" "$INSTDIR\falkon.exe" "Falkon.HTML" $(FILE_Html) "$INSTDIR\falkon.exe,1" "file" + ${RegisterAssociation} ".htm" "$INSTDIR\falkon.exe" "FalkonHTML" "Falkon HTML Document" "$INSTDIR\falkon.exe,1" "file" + ${RegisterAssociation} ".html" "$INSTDIR\falkon.exe" "FalkonHTML" "Falkon HTML Document" "$INSTDIR\falkon.exe,1" "file" ${UpdateSystemIcons} SectionEnd Section $(TITLE_SecProtocols) SecProtocols - ${RegisterAssociation} "http" "$INSTDIR\falkon.exe" "Falkon.HTTP" "URL:HyperText Transfer Protocol" "$INSTDIR\falkon.exe,0" "protocol" - ${RegisterAssociation} "https" "$INSTDIR\falkon.exe" "Falkon.HTTPS" "URL:HyperText Transfer Protocol with Privacy" "$INSTDIR\falkon.exe,0" "protocol" + ${RegisterAssociation} "http" "$INSTDIR\falkon.exe" "FalkonURL" "Falkon URL" "$INSTDIR\falkon.exe,0" "protocol" + ${RegisterAssociation} "https" "$INSTDIR\falkon.exe" "FalkonURL" "Falkon URL" "$INSTDIR\falkon.exe,0" "protocol" + ${RegisterAssociation} "ftp" "$INSTDIR\falkon.exe" "FalkonURL" "Falkon URL" "$INSTDIR\falkon.exe,0" "protocol" ${UpdateSystemIcons} SectionEnd SectionGroupEnd @@ -323,10 +324,11 @@ SectionEnd DeleteRegKey HKLM "Software\${PRODUCT_NAME}" DeleteRegValue HKLM "SOFTWARE\RegisteredApplications" "${PRODUCT_NAME}" - ${UnRegisterAssociation} ".htm" "Falkon.HTM" "$INSTDIR\falkon.exe" "file" - ${UnRegisterAssociation} ".html" "Falkon.HTML" "$INSTDIR\falkon.exe" "file" - ${UnRegisterAssociation} "http" "Falkon.HTTP" "$INSTDIR\falkon.exe" "protocol" - ${UnRegisterAssociation} "https" "Falkon.HTTPS" "$INSTDIR\falkon.exe" "protocol" + ${UnRegisterAssociation} ".htm" "FalkonHTML" "$INSTDIR\falkon.exe" "file" + ${UnRegisterAssociation} ".html" "FalkonHTML" "$INSTDIR\falkon.exe" "file" + ${UnRegisterAssociation} "http" "FalkonURL" "$INSTDIR\falkon.exe" "protocol" + ${UnRegisterAssociation} "https" "FalkonURL" "$INSTDIR\falkon.exe" "protocol" + ${UnRegisterAssociation} "ftp" "FalkonURL" "$INSTDIR\falkon.exe" "protocol" ${UpdateSystemIcons} SectionEnd !endif @@ -433,19 +435,18 @@ Function RegisterCapabilities ; even if we don't associate Falkon as default for ".htm" and ".html" ; we need to write these ProgIds for future use! ;(e.g.: user uses "Default Programs" on Win7 or Vista to set Falkon as default.) - ${CreateProgId} "Falkon.HTM" "$INSTDIR\falkon.exe" $(FILE_Htm) "$INSTDIR\falkon.exe,1" - ${CreateProgId} "Falkon.HTML" "$INSTDIR\falkon.exe" $(FILE_Html) "$INSTDIR\falkon.exe,1" - ${CreateProgId} "Falkon.HTTP" "$INSTDIR\falkon.exe" "URL:HyperText Transfer Protocol" "$INSTDIR\falkon.exe,0" - ${CreateProgId} "Falkon.HTTPS" "$INSTDIR\falkon.exe" "URL:HyperText Transfer Protocol with Privacy" "$INSTDIR\falkon.exe,0" + ${CreateProgId} "FalkonHTML" "$INSTDIR\falkon.exe" "Falkon HTML Document" "$INSTDIR\falkon.exe,1" + ${CreateProgId} "FalkonURL" "$INSTDIR\falkon.exe" "Falkon URL" "$INSTDIR\falkon.exe,0" ; note: these lines just introduce capabilities of Falkon to OS and don't change defaults! WriteRegStr HKLM "${PRODUCT_CAPABILITIES_KEY}" "ApplicationDescription" "$(PRODUCT_DESC)" WriteRegStr HKLM "${PRODUCT_CAPABILITIES_KEY}" "ApplicationIcon" "$INSTDIR\falkon.exe,0" WriteRegStr HKLM "${PRODUCT_CAPABILITIES_KEY}" "ApplicationName" "${PRODUCT_NAME}" - WriteRegStr HKLM "${PRODUCT_CAPABILITIES_KEY}\FileAssociations" ".htm" "Falkon.HTM" - WriteRegStr HKLM "${PRODUCT_CAPABILITIES_KEY}\FileAssociations" ".html" "Falkon.HTML" - WriteRegStr HKLM "${PRODUCT_CAPABILITIES_KEY}\URLAssociations" "http" "Falkon.HTTP" - WriteRegStr HKLM "${PRODUCT_CAPABILITIES_KEY}\URLAssociations" "https" "Falkon.HTTPS" + WriteRegStr HKLM "${PRODUCT_CAPABILITIES_KEY}\FileAssociations" ".htm" "FalkonHTML" + WriteRegStr HKLM "${PRODUCT_CAPABILITIES_KEY}\FileAssociations" ".html" "FalkonHTML" + WriteRegStr HKLM "${PRODUCT_CAPABILITIES_KEY}\URLAssociations" "http" "FalkonURL" + WriteRegStr HKLM "${PRODUCT_CAPABILITIES_KEY}\URLAssociations" "https" "FalkonURL" + WriteRegStr HKLM "${PRODUCT_CAPABILITIES_KEY}\URLAssociations" "ftp" "FalkonURL" WriteRegStr HKLM "${PRODUCT_CAPABILITIES_KEY}\Startmenu" "StartMenuInternet" "$INSTDIR\falkon.exe" WriteRegStr HKLM "SOFTWARE\RegisteredApplications" "${PRODUCT_NAME}" "${PRODUCT_CAPABILITIES_KEY}" ${EndIf} From 231e14046f9a913b66454e398ce4fc2bc32f7c6e Mon Sep 17 00:00:00 2001 From: David Rosca Date: Fri, 23 Mar 2018 09:48:59 +0100 Subject: [PATCH 02/13] Windows: Update page exe icons with new Falkon icon --- src/lib/data/icons/exeicons/page.ico | Bin 15086 -> 285478 bytes src/lib/data/icons/exeicons/page16.png | Bin 506 -> 603 bytes src/lib/data/icons/exeicons/page256.png | Bin 0 -> 14298 bytes src/lib/data/icons/exeicons/page32.png | Bin 1146 -> 1286 bytes src/lib/data/icons/exeicons/page48.png | Bin 1560 -> 2017 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/lib/data/icons/exeicons/page256.png diff --git a/src/lib/data/icons/exeicons/page.ico b/src/lib/data/icons/exeicons/page.ico index 0571beae341d413c115b2d69855d2effa7eeeec1..54becc581ec36519b9c1c1512b9701630b12b2e8 100644 GIT binary patch literal 285478 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 literal 15086 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 delta 435 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 Pg$Gbp(2%c@{S@{;FV-r1 literal 0 HcmV?d00001 diff --git a/src/lib/data/icons/exeicons/page32.png b/src/lib/data/icons/exeicons/page32.png index eb8fab3c76ab707da9874a6805a930a7c06e6eb4..71795357a7109dc93771a4c0fabfd636783189fb 100644 GIT binary patch delta 1221 zcmV;$1Umcr2!;xfQGenC7YHp9z_x$D000D&NklDG>a^pRi$patVGofo4&-OfW#w8 z6B3f(gg6gh=gyrj>=>KGHn`ojBOO^j_ue`G^O*lR1ON3Uc7Ial^LYzkt*sNVSlB_g z^}q7iqFuf0`~JBvE?xSgBUJf(-Wp@JNl-7r^AgxF4DH0kgq@t6wBL@6EscJ2F9%@Dm~9q*Tl=ZE9|VT?-haQ&0gIA~{6wCY0#F|U+u*s_9)2Mj;3bo( zhJBP$O;gn(1-9y3qj3`iOx|6j_*hVS3Z^7b%F-2wcz=J$-b1^PT5XG&ZGk|wJ_VxY z$@JtR4{n5*`2j>A5CI4S)<9rj?RU%KZ?ojyg27ia4G=m2u$AA+hqrIcF>`Adq8vpC za5QMo60QrZUo8nKFpv8A>xT_W%d;Ffk!zC17cIi7^AGPYGIckDV?DCjd4~7iBhepF z_Kvc-DSud*w=DkI#nZbU)`Amw6n@U}z+2#zqr2Nipg9j%DEVa`-jg6atc0@eB}kp3 z91NkfhjtZ-EDWArW$*bXI8jsC(R8tJEyBj?M(Y#Ynusj-?-%gPy;uo7Svc__WQU-; zZwRFnQc9FkjE#-)V%yL5}i!a>UF zFtJ^dx$E7mOiP3T#{kJ95bvCbqF#s}!0q5O&b}V25`F>Z$0-!|Qj`}+4ha%cGJUIy z<#~ya&$z_xF|-Ro%WjyChZNQ!ldBlF>wi;(Q2 zgjk>Hj0dX29{Y!T@Z=n+B!p`-lz#n^nbLV;0|$vj6k6+=^dAr?50Dk(^ei%TB+-@$ zomNGtwPybwLzmiM?b=tY$v21&9>;YRN;OI(>Tu*;unvT}#K4;+BGE|OB5XU74Sx@2 zaBg0qyf96%?{lJFqvuk}+Pi)G;Lzz!vPT~?bTIQzy5Vyuts)rwh)7h|7_i>()>fj(qYBP~jx^+=|*`d6-B9o4|d$Y_-j8?Rl@bX#qE jyRN3MyWai3nytS91oW_Dg!-C100000NkvXXu0mjf!@^NR delta 1080 zcmV-81jqY^3i=3;QGeeH2o?Yp=&mM>000CBNkl8~#{{=WbFz3;tIW`DMA`=5`FtL(&Q8DZyh8@y9$Gn#WGanRI&)j1S{k~p2UPl7(0U$f>HM)jN^39WJ+fQwSS? z#t?SVif$)rVt;b$V0O6OJSq?+m~+8RAMbi6`IdT7NTsq}9dke&}tNBM7QDj68cu z0hneHIYGVmL@(}b`33L%5XRY&KQT0(z_8GukY^x@qi23^+MSnAoD=};6e9{F`+08u9eFf%jTI0GJJ#S=h4d9mj&eb&RR?h_rLdv>KX6aJBjo3?^r z>31oBN~MDRCqw)c_(%Q{9hk}&n5e^gQvn6h$v#k_0{@?g>_L1V8JT3>jp!oacOA@ z%gf6S0U9r*i;Ig4u@zcbS%Eb+eI=vsLIzk`WC*(!9L8pY{F?#XC*E2s^ybPRn=ztY yTc*ZGtN8SrYX)$)&=W$>3%&3khX4Lhbyi;$Q_MYD%ZM=B@+At6yp z3xZ~*Go7YQnx;|FN2g)XswCIzZt(q8!VvN3i^7eSKUXib^HoNqp`KhsuQ3U^P1ZV#0_0$YwfQW zz*{+^Zht|7mJTw#X%=b%zk&9()?0aGP5awP;pPrix(fusXpSn0UxCMa} z0%03m`l|fl?q8xE|Qr z;Yn(i$Vh>MZ}b!D3~iwL)^l8I7SJ23`_kZpbQHzHVo9ggG?OF*{%SA@`&aq~Pqf@fA7|@M|c#&J-^ScV=`rxgAO(_3Q_~HR#ewsk9hd%g23`-D< zc*KUv^qt5v|F0nPx5E{)`1oWoO7<@+B>R`??uoNqYB>wlr|`+UPw<>02Mt_$`+o%P3j}62mYs41?>}uXEwT1y;N{hTnUJ8Fd@tr2Ods zPan@WML-(_sOew${NUjN$X@>#kPwc;;dP4MD)6c>=g*%fl}d5z)-5_Bn!Vr1l7Bw6 zfEh2NC78uH+57qS$AEtl>slf9Vnx(6FMxwbK+5&6ic(6HTSU7MkTHJzqo0D|`tB8k z_`xEbLwT})N?||h#GaS6xYO;*Le+d;tz(>WB^3gu3H{aNp&clGjj|Q4?7pfF8AZ=UY4f2$$!lRP$hxz zKxmEb%C)~1s^)^~UWVo2IKB|k+{Y{jze#xHI}Aibqtq{MBA(x%R2pFV*;zV!x`_;H zMA2mOMkmEZiBOgNECD5uVY~gcQ1c#vfX4Rx-~H5ipVvAcdSnRDbKG)wspzR4*Y5HSH4X(kz$!W>+zIfJhy9ox6!xxQ5L! zrgGn+_n@i)ubvC`is9Eqx-N-V1nKHkFXJF<{Jdu{iBxkSpf_FD9?AXz@BU?S#n*UL ze4oBy-EbCEIo_u$1zn}UtFRkdB)vDh?S{cN+A4k|#A0Dmk!7@mcz@LYkNfxrrO97m zi=)h&-=;UC)&*}E218$N1YV7S(Ed5neaUUt)2&&ciC_Ox9|5N541qiU59~Xa@#tnc z@I6v#u?Dnhnl+B4BzuoFmEEx!4jfDFsAbc#1?pu8g*rL1$G~uwSo!nM@az%~LqA|} z&|DXEwVbHZ;jcnspnoDnaG8M<4)J7cM|a9?$3T?^2h%uzAH!LEg57}OX2(6()*D;vN$+`hj$kqQ9{amiGfkDnCViAbzC`A5fplhQ zSGRg|rxpM(_MQRHVQ6HSnb}2pQVF6FtHE8G>BaLB+3W&|o_{XVnZ&NU-n+7ZwdXC2 z?)^y9WUxPpo}ySR0uISkl+0kF#a>$5ETGqHR=cT1(zUT^ znq>M?8|>6tFR1MnXs(6+o79$*_`8s6WAWB>pF07*qoM6N<$g0=A4&;S4c delta 1497 zcmV;~1t$98510&)QGeeH2o*LgJn@04000H0Nkl2g*@0nqa77X4 zbdgjlMdFDBLR42*ziKAH)3+Fa!{MajGUA-*vopcmF0W_&=;Juq!n&Pfdlb1~L?RJ{ zsI08qZ~7I$hJTqjjYT=t$Evkld)XX@KM+8O^78VROaCsmz!BC$;Z2Kjxj3h#u!|~eScD%Xr&y=V<&@{nVm(5va+&g z3+9r^)oKVr0pLLhrJ#t`&e|O0LhCSj<3bO4?syBSdi#n>;Dfc# zY0S*LL$zNzcGFstR@c_Z{Ra;UzMW(Mx5vvMGIA^Itc@e@T)gw2hI0w_%+bBdoE}QU-YZen-qC>o9>o0!Xnl}LCh8mD35D4PO3&Q}xPzWJF$G_>9iw#XJ$o^b{SlGKej|U#&#C<`O zVSsQrj1UVhK~dy4^aX?A{4Eva__Sp>=T%wYed0bU!vK*;6d}Iq9G46HK5a)|h$>&J z^?zNyJxTVR%ns5>YlSf`Vgf)kh7fOl(I?)g?_DQhI!7=acC)q1zfMt*HWk1zS_@;M zCIH0ZF@%7|A^DNB-6R?neR`~P+&69`KlM$Mvo}UnI#}D4d6;P}X^&xmcszj+Qu6wn zqd3o3ybvH4Esw~N`fgn>sj(RBj~fR_CV!I%kpURPc`nV^1@iuPg}+8}i z$MUlRjn6s#@;V&DUTHm-l6c}4jRPz%FC)YrR=DQNJ2=^I2m+-hW^e zLH29`0&7ydVStsD6@;j1yo<^ApK7D?CG>$6LNRi*p$FH%!d$tYv1;FAK0r=dGoYeA_)G7nqp$qE86N$)PhA^nv}XZ5%<5HuR!SUmYgb24*mBna1PE z(Aa?~4r7%7P)j^93Y)S2uUsX=8E=(=9jSr@q{Vr83stF(|;m_LUqj} zrZ*2crTl4B+B|@4s%suKvH8(W>l6(Dbbat2L(c^4g&bSeC@KIb6kj4A{Wzq%dDsJc zbLB5OfF!#RC6{{tBCnsjo%O1K57rt59lt&bIRX2DJ08 zfX)*Ee Date: Fri, 23 Mar 2018 10:35:01 +0100 Subject: [PATCH 03/13] Windows: Set exe version with CMake configure file --- src/main/CMakeLists.txt | 6 ++---- src/main/falkonversion.h.cmake | 6 ++++++ src/main/{appicon.rc => version.rc} | 15 ++++++++------- 3 files changed, 16 insertions(+), 11 deletions(-) create mode 100644 src/main/falkonversion.h.cmake rename src/main/{appicon.rc => version.rc} (57%) diff --git a/src/main/CMakeLists.txt b/src/main/CMakeLists.txt index e31cbc933..ec6bb5076 100644 --- a/src/main/CMakeLists.txt +++ b/src/main/CMakeLists.txt @@ -7,10 +7,8 @@ include_directories( ) set(SRCS main.cpp) if (WIN32) - set(SRCS ${SRCS} appicon.rc) -endif() -if (${CMAKE_SYSTEM} MATCHES "OS2") - set(SRCS ${SRCS} appicon_os2.rc) + set(SRCS ${SRCS} version.rc) + configure_file(falkonversion.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/falkonversion.h) endif() ecm_create_qm_loader(SRCS falkon_qt) add_executable(falkon ${SRCS}) diff --git a/src/main/falkonversion.h.cmake b/src/main/falkonversion.h.cmake new file mode 100644 index 000000000..ddab42048 --- /dev/null +++ b/src/main/falkonversion.h.cmake @@ -0,0 +1,6 @@ +/* falkonversion.h. Generated by cmake from falkonversion.h.cmake */ + +#define FALKON_VERSION_STRING "${PROJECT_VERSION}" +#define FALKON_VERSION_MAJOR ${PROJECT_VERSION_MAJOR} +#define FALKON_VERSION_MINOR ${PROJECT_VERSION_MINOR} +#define FALKON_VERSION_PATCH ${PROJECT_VERSION_PATCH} diff --git a/src/main/appicon.rc b/src/main/version.rc similarity index 57% rename from src/main/appicon.rc rename to src/main/version.rc index 6080721d9..c7767d367 100644 --- a/src/main/appicon.rc +++ b/src/main/version.rc @@ -1,11 +1,12 @@ #include "winver.h" +#include "falkonversion.h" IDI_ICON1 ICON DISCARDABLE "..\lib\data\icons\exeicons\falkon.ico" IDI_ICON2 ICON DISCARDABLE "..\lib\data\icons\exeicons\page.ico" VS_VERSION_INFO VERSIONINFO - FILEVERSION 2,1,2,0 - PRODUCTVERSION 2,1,2,0 + FILEVERSION FALKON_VERSION_MAJOR,FALKON_VERSION_MINOR,FALKON_VERSION_PATCH,0 + PRODUCTVERSION FALKON_VERSION_MAJOR,FALKON_VERSION_MINOR,FALKON_VERSION_PATCH,0 FILEFLAGS 0x0L FILEFLAGSMASK 0x3fL FILEOS 0x00040004L @@ -16,14 +17,14 @@ BEGIN BEGIN BLOCK "000004b0" BEGIN - VALUE "CompanyName", "Falkon Team" - VALUE "FileDescription", "Falkon Web Browser" - VALUE "FileVersion", "2.1.2" - VALUE "LegalCopyright", "Copyright (C) 2010-2017 David Rosca" + VALUE "CompanyName", "KDE" + VALUE "FileDescription", "Falkon" + VALUE "FileVersion", FALKON_VERSION_STRING + VALUE "LegalCopyright", "Copyright (C) 2010-2018 David Rosca" VALUE "InternalName", "falkon" VALUE "OriginalFilename", "falkon.exe" VALUE "ProductName", "Falkon" - VALUE "ProductVersion", "2.1.2" + VALUE "ProductVersion", FALKON_VERSION_STRING END END BLOCK "VarFileInfo" From 7d29a5e9918e1a0755fa9a01463fe3ce0ce23474 Mon Sep 17 00:00:00 2001 From: David Rosca Date: Fri, 23 Mar 2018 11:07:53 +0100 Subject: [PATCH 04/13] Windows: Update installer images Installer and uninstaller were removed, it should use falkon.ico instead --- windows/install.ico | Bin 9662 -> 0 bytes windows/installer.nsi | 4 ++-- windows/uninstall.ico | Bin 9662 -> 0 bytes windows/welcome.bmp | Bin 153814 -> 154542 bytes 4 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 windows/install.ico delete mode 100644 windows/uninstall.ico diff --git a/windows/install.ico b/windows/install.ico deleted file mode 100644 index 72b97c29124ee94c5831113f4a5a5ff55a094aa5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9662 zcmd6t2~(9Du+vag0F6UTTx2kF8zH)4f9b6?dwp%$zi}po#-B0yj z5gO7o4c}2RY#tlTF=4&Aa-=-Ivd_w=Q%jLWl&hAQZGU`Xn zqdb?QPn*pKHmlX@Wa8fAyVvCyDY+cd1*kMwtU?DrGjdPuc}R6A-+Itm6aHF~ke2$~3HVUQfAVY~fw) zT_v+)`o1pP{PoN~mx%W455)Gi-1srWrq}Ds*>yUd%$=Q`ZQHk1Yx5a>41r7ZsJqaB zp!mB88N3S7Jv|ZIyDs8L$0E{@MDrof1!>@U;I*V2$5pzj{AGHqIfqg#ycf7n9w%&= z7VXDx#scjTWd4|IJ9%WUZFkBnYuw;aYwHi<;2(V*o^b~JcD@1iNkfCl=PJpM_bYspxFbzu{1wZvJgD?7V3X; z9+QUlD4hf6HDos@HQ^U)t1$l>=EcUN!QZZ+?)+lB9$O6WxMKLm7r{UFKD_5WMxE$l zCuDubfD|Wi)L3OzeTa&m# zv{A1teHOS}J3cz)KIZpX$9PsJ&l-9z$wlbGhi+pZzS@L@A8Z)5rv!E8IM2~*F?#q% zU594)aCc`7+~sq$IvOHVbqI{PC9i+wdVe*h7z1{eV97aKxlK51!SCi7 z?Dhn&{U+1SW6h>L_;-@Z?s-|p%wtcIS*Y zF)^!>U8JLqThVy2p}hWUw12}AA0lAFNpx4w#%gt=@^xOu%=9dO|B^cyqD?eX_g|9WCV_FGD9yGhu z5Ou;T-*2Zip`M~0w{Mtez*{LaAJfjFjV2Y#RUw7U&KL1(m2<$~{z|r|rD?0;y~L~V z{5S_)w0eXrH^7_5b7y^axaOanVR74r`)dBB5$%`XhcrA315^`_mD0=nPHTvsrByzM zzQ0<8X1sP1^U;2t5sjA`(J;x``t5SfKZW>R)el}_M2B?-G@Ee_Eh5(2S^5dS<= zeo;PMIS0p6$5&|%#2i_yHq75kdtl}zbXxNWp%gQ}W%l;|ZrA)%k6N7Swp?XG_>w$% z?N3qn5^F!b9K0;y_zllm=-sl)`#|WpanFdLsX2&9xsR}~ObDbsDeT>?W-LDY09P&#o18)sPJ3G_&N zgfNO>2x+LQwWWRBF5wD3RrOG^?{>w`W%T|VM9g;I@)t%1MU`TLCD@mv|-JGE(6 z`S)eW=mY4x!-Oz;&Q`~MPx0@W_7L4P(So1P$v}7f6l0H#qx=U5=9>65>V{}G`2>2> zS@Xual4{$4T_!Xgvsdsx^*2k>@KV|c-(@vn=eBcH9nc}}0y=LiK}$OG+ifmEm+fZs zqO+$xrMb+}I&UqJ??;e-dsFHCKD5`vretD`s$sIbxI3218Z^EeYNBC~dJ_6?F2v9S zB^b7|2=Arbz@MVC;P>%KN?%8(ZDzc+>527ZU0>v&#k5Rxia&?mYx6N|cQMq5%=qKN zOC~z=TRC!8lrPm_|982n=pnE9$S_y=ECjFl-% zi)_%J#;V}ZmxV7!6Z+=%wuMHhDRh{K`v6ZSI=I1^mYMa+xe>@hM zmaHc0svuVNhi%W3+m)U&EivRdhPh;LV|3s_WT8XmOTw(TiU5TjBwD{XsH%O}k%nx=V4TiaFA6iiIpF4(iKgcOMABbd@f z++-6(Kua`5L`4@FU}hLDj@-R~GK6w55m?xjgtJ(~+SPfi;nLardg{IrcTx}FHs^;m?->tX+nMEF;I_oWxu^7vbr`oB zOGkcfj^S>v@h-QX;K1vIv)nD7JN1NGmLaw~T6qR?h2hf+eMB&%41N|{*Q+@$>)0dJm!;^sNlr6 ztyVBIOp^onTUgRq2DZoVsFdT=9Sm%#*5|fHuN-30#`0&odk)-1Df>*ob@8ILJU_W1 z&Ue~Te*Qj*LxkI7ljRtq-+Kx=0bi=t=TT2_xC`7=QK+Kho94CYl6_;wZT$Ts z^23}1aNwD)@=E-2sd&G9&90u~-E!O#&OPprM*=^uW5aW`(mY0RH9yQb02BNc^YDeU zKL)iEUPrQHD<9O<)I>LL-lY2adaA3dGZD<;9-hIo_18*;j^wz^&TD{w&$1_{$miiZ z=GdicV1@3b=VN^)GyYtw&*OJ3EiD39O-&75y?T|3ii#*NFORabv+3;FvqEr=Io!iD zDUs_beEDDsd&i;eUD7+vMi=&dfBD?;jdMH11Dyl6^c(QiXT;qEREZ}>=&-S|k*ce! z>C&Z3q*klx=+UDT6B9%G_wN^@bdKvohYnHnw?VD`3!bI*v+OA7&AzmKfj#|mkpqQW z=i#?|iD}+}A9Qwr1N(og!~vsnyGLDPLro)~L+1?*4OCiMN~cbpqUh*oij0h;0|yQW z4yR9_rj(QvN=r+ljEoFYsZ@0G9l9h9@@8WAH~MT(uor%1echY zWC{&Uqww%7ii*miAATq#ji#8&%F3v+vQqd}TwEOO_$r8eTwf&b8Md@}ULV@A(4N8; zxAUhG>D|(3DR$+U&CjpvbDIu-I`I~M4}ZmbLj6~^hJ}R*T_-0evtIv2%a)y_r=Ch8 zTiX=s+gDBf`lXYT(-|5tAcqDGDxirIizq1Q3KbSsi}*%tL_|c;hE=o4i*2!Ku91Uv zUlKmuUHnEqEqTXwH1AqAsP!u!58*5D4~<4c%a3<}$By^z5_6^!)RsG;(A)g@n|K*tvG?n((>6waWzu*a5!OK|EN@o#r~X zbd6X|h(9c_>vTF&Dl_T1=T6dt4<=Z^pGN)rXVMc-oF!-HJQ_0OJPjLmiC%c2j9z-F zlE#d=LGJGV;r!Yxcp%RGSI!c?gm^$qOa5X$-iiJZujkI4W4{ii%*;&AHQB7^WAwlS z$4&4*`lvzw4h|jRucB98si8@e{!4S`HdAeFvxtlDzWa{WEf^_c8hOcDZbi+pq~DI_ zPr z+8?c>?uGrMgJHdL1$1KT4xUsi?TPLd3CBsT3S^ zx(k8>^3P+BWznmz=F`QCZmzh^K0bo9XobVd3ialUY%}&KO&-xa&vPjD=W){gI1d- zI82zJ<9uHv`UccGIfvNT1`*GQY2>BAz%tQWgoK2U_xzz0h+OoxLo#FM8hjf+_HO1F zJGw@WM18`$pM3JTz~8G^9NPf;Pi3E~vd953uGQv?{->azz=Q*Q3Gpy&*kzHIh7K(j z^#L3Y9z00C%coPooIdo`pY1m>b{9E*oJ+lbN4TYX=m}C&Q`x>(Ilsq~jZLh~2JvkF z6s}377CGQ|@Cno^i35CT=FDP|Q=fkNyckg*1`jS||16?}gais$<3awj?P&dMyP4=g z8M8?bfxbY(*Vz~q6(w?KO3F_(ZJLICIzfj2C?OAx7@-t?V#$}}9NfzZ_^?+=kj|IN@JG2#!G+W>q2&Tvcjfgd?jrMg0|y{6&!tGORI#T*Pi zB;}#u!;|RDne$fd0AE5pI5}mBx{TT;3F6!h^WB{ei_R$7}4rc6d?9#z|nZxopz&Z9Q_^xE_&}y~Z8^nnk@9utvYpKBoQ>UuQ z!y}vP<}czN_A|A$wRHXZbx|ww^DnVKU9jj&uoXC#-@xiwS?AftDLysp(p5{1h+qR8v-MYp5l@gjgTg!f=5q^}AP$l-i zxQ8A_;!sjjNedTd(t-t<>`SF>{$%L=)FQ{k#8h(bNo|w&-%k|ygMxxMzs_99aBW#k zzQeJOZ6ebgPa3=$=zMYzM-PAV^x9!cr0G53D^~b2&^|1^42awR6&&20_H>6s;Ce5y7e_zm>6uG&=4jc@w>hZQ z)gm5{mnKb8bFNo&zBKR{J626gmu7QrsiGxIvU&faZj<@*HJsbDVjs3)!-jH3JAlRN zH)x5CfrIIHxsLekeD6gH4h|N3jk>x9pRSW+y3!%t}$UER>1*wFvNpa z=iaKN_^_)>IqDenWdCjKPxknDk40h>s6*}64b)O7TA@Od8}pMys1y(LWD z9T}rD%ON>dYv-^7dkn|$t(E|FfZ7vGD% z_~Hv%vu4eD#tNV5w%#pqWX$N5OnMDVJP;3vX?%Oj$;lD6z&8rLzLtCDO0L=Eyl1=0 zxxS41>vB<>v4_BS7x>`DjT_56Jw4|z2E=NY{M`~>YjZ{(=vzDVE96$x2h_MDM~;YI z1N{(;Fl5D<{>?d|RQGQo=&!66*0s z`o?os^_F$3u5b2TQ@UxrPcCCkHA zIYy;I(Ho;5FNTp9#h+G;z6u3D&OcBn8Zi!3DEMb0JLoa8#l^_cro^>0GAch@%SK#w z9j$n}NB;O3S1})z#(8Pf8?Q}9#xMBtDEKo!p${H~ewaV>hHMEvLO;+e^aVXbkF0m0 G-~R#hCQ1GP diff --git a/windows/welcome.bmp b/windows/welcome.bmp index 67ce0b30e899892b4fe7a964085033f5163a619e..e1f8e32c9dc51a8225ac9ef5f628e6b17dd7b6fd 100644 GIT binary patch literal 154542 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 literal 153814 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 UyjaScJZ3nGDQ_J2$cttEACX~q(f|Me From 4d434fabe6c7d162f929c146220b0382f2b1c1f2 Mon Sep 17 00:00:00 2001 From: David Rosca Date: Fri, 23 Mar 2018 11:16:19 +0100 Subject: [PATCH 05/13] Properly find and link to OpenSSL libs --- CMakeLists.txt | 3 +++ src/lib/CMakeLists.txt | 22 +++++++++++++--------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 72502d8b3..0ef699c26 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -83,6 +83,9 @@ if (WIN32) add_definitions(-D_WIN32_WINNT=${ver}) endif() +# Mandatory: OpenSSL +find_package(OpenSSL REQUIRED) + # Mandatory: KF5I18n (only for ki18n_install) find_package(KF5I18n REQUIRED) diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt index a3b66d1b5..1643c07e7 100644 --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -38,6 +38,8 @@ include_directories( webtab ) +include_directories(${OPENSSL_INCLUDE_DIR}) + set(SRCS ${SRCS} 3rdparty/fancytabwidget.cpp 3rdparty/lineedit.cpp @@ -295,13 +297,21 @@ qt5_add_resources(SRCS add_library(FalkonPrivate SHARED ${SRCS}) -target_link_libraries(FalkonPrivate Qt5::Widgets Qt5::WebEngineWidgets Qt5::Network Qt5::Sql Qt5::PrintSupport Qt5::QuickWidgets Qt5::WebChannel) +target_link_libraries(FalkonPrivate + Qt5::Widgets + Qt5::WebEngineWidgets + Qt5::Network + Qt5::Sql + Qt5::PrintSupport + Qt5::QuickWidgets + Qt5::WebChannel + ${OPENSSL_LIBRARIES} +) if (UNIX AND NOT APPLE) if (NOT NO_X11) target_link_libraries(FalkonPrivate XCB::XCB Qt5::X11Extras) endif() - target_link_libraries(FalkonPrivate crypto) set_target_properties(FalkonPrivate PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION "3") install(TARGETS FalkonPrivate ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} LIBRARY NAMELINK_SKIP) @@ -309,16 +319,10 @@ endif() if (WIN32) target_link_libraries(FalkonPrivate Qt5::WinExtras) - target_link_libraries(FalkonPrivate libeay32) endif() if (APPLE) - # homebrew openssl - execute_process(COMMAND "readlink `brew --prefix openssl` | sed 's/..//'" - OUTPUT_VARIABLE READLINK_OUTPUT) - set(BREW_OPENSSL "/usr/local${READLINK_OUTPUT}") - include_directories(${BREW_OPENSSL}/include) - target_link_libraries(FalkonPrivate ${BREW_OPENSSL}/lib/libcrypto.so "-framework CoreServices -framework AppKit") + target_link_libraries(FalkonPrivate "-framework CoreServices -framework AppKit") endif() if (NOT DISABLE_DBUS) From 588018e3386b1ce8d13a01a49367502a28f88322 Mon Sep 17 00:00:00 2001 From: David Rosca Date: Fri, 23 Mar 2018 12:07:52 +0100 Subject: [PATCH 06/13] Only link to libcrypto --- src/lib/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt index 1643c07e7..93a831f52 100644 --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -305,7 +305,7 @@ target_link_libraries(FalkonPrivate Qt5::PrintSupport Qt5::QuickWidgets Qt5::WebChannel - ${OPENSSL_LIBRARIES} + ${OPENSSL_CRYPTO_LIBRARY} ) if (UNIX AND NOT APPLE) From bf0043e16c9796f04a0ea441b3a76d6daa480991 Mon Sep 17 00:00:00 2001 From: David Rosca Date: Fri, 23 Mar 2018 12:09:21 +0100 Subject: [PATCH 07/13] Export WebTab::SavedTab --- src/lib/webtab/webtab.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/webtab/webtab.h b/src/lib/webtab/webtab.h index 5c83b9d00..63bfddb4b 100644 --- a/src/lib/webtab/webtab.h +++ b/src/lib/webtab/webtab.h @@ -40,7 +40,7 @@ class FALKON_EXPORT WebTab : public QWidget { Q_OBJECT public: - struct SavedTab { + struct FALKON_EXPORT SavedTab { QString title; QUrl url; QIcon icon; From 265c67f173d4819c786d14ccdd6e3bc539c6fa80 Mon Sep 17 00:00:00 2001 From: David Rosca Date: Sat, 24 Mar 2018 08:09:42 +0100 Subject: [PATCH 08/13] Require KF518n only with downloaded translations --- CMakeLists.txt | 6 ++++-- src/main/CMakeLists.txt | 4 +++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0ef699c26..abee24ab7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -86,8 +86,10 @@ endif() # Mandatory: OpenSSL find_package(OpenSSL REQUIRED) -# Mandatory: KF5I18n (only for ki18n_install) -find_package(KF5I18n REQUIRED) +# KF5I18n: Mandatory with downloaded translations (only for ki18n_install) +if (EXISTS "${CMAKE_SOURCE_DIR}/po") + find_package(KF5I18n REQUIRED) +endif() # Optional: GnomeKeyring find_package(PkgConfig) diff --git a/src/main/CMakeLists.txt b/src/main/CMakeLists.txt index ec6bb5076..b887e8cf9 100644 --- a/src/main/CMakeLists.txt +++ b/src/main/CMakeLists.txt @@ -32,7 +32,9 @@ endif() if (UNIX AND NOT APPLE) install(TARGETS falkon ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) install(DIRECTORY ${CMAKE_SOURCE_DIR}/themes DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/falkon) - ki18n_install(${CMAKE_SOURCE_DIR}/po) + if (KF5I18n_FOUND) + ki18n_install(${CMAKE_SOURCE_DIR}/po) + endif() ecm_install_po_files_as_qm(${CMAKE_SOURCE_DIR}/poqm) install(PROGRAMS ../../linux/applications/org.kde.falkon.desktop DESTINATION ${KDE_INSTALL_APPDIR}) From 050fd7528ce062230887f48a5d6f9a07c3610dbf Mon Sep 17 00:00:00 2001 From: David Rosca Date: Sat, 24 Mar 2018 08:12:45 +0100 Subject: [PATCH 09/13] Autotests: Add OpenSSL include directories --- autotests/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/autotests/CMakeLists.txt b/autotests/CMakeLists.txt index 3378153d5..0d86e9ebf 100644 --- a/autotests/CMakeLists.txt +++ b/autotests/CMakeLists.txt @@ -31,6 +31,7 @@ falkon_tests( ) set(falkon_autotests_SRCS passwordbackendtest.cpp) +include_directories(${OPENSSL_INCLUDE_DIR}) falkon_tests( databasepasswordbackendtest databaseencryptedpasswordbackendtest From 1183fc580968205736e922b3eea6cd975b209583 Mon Sep 17 00:00:00 2001 From: David Rosca Date: Sat, 24 Mar 2018 08:44:15 +0100 Subject: [PATCH 10/13] Windows: Update installer with correct paths --- windows/installer.nsi | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/windows/installer.nsi b/windows/installer.nsi index a12f4519d..9bd1f4ade 100644 --- a/windows/installer.nsi +++ b/windows/installer.nsi @@ -16,7 +16,8 @@ !define MSVC_VER 140 !define OPENSSL_BIN_DIR . !define MSVC_REDIST_DIR . - !define QZ_BIN_DIR . + !define FALKON_SRC_DIR ..\..\ + !define FALKON_BIN_DIR . !define ICU_BIN_DIR . !define QT_DIR . !define QT_BIN_DIR . @@ -59,7 +60,7 @@ SetCompressor /SOLID /FINAL lzma !define MUI_UNWELCOMEFINISHPAGE_BITMAP "wininstall\welcome.bmp" !insertmacro MUI_PAGE_WELCOME -!insertmacro MUI_PAGE_LICENSE ${QZ_BIN_DIR}\COPYRIGHT.txt +!insertmacro MUI_PAGE_LICENSE ${FALKON_BIN_DIR}\COPYRIGHT.txt !insertmacro MUI_PAGE_COMPONENTS !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_INSTFILES @@ -127,10 +128,10 @@ notRunning: SetOverwrite on SetOutPath "$INSTDIR" - File "${QZ_BIN_DIR}\COPYRIGHT.txt" - File "${QZ_BIN_DIR}\falkon.exe" - File "${QZ_BIN_DIR}\falkon.dll" - File "${QZ_BIN_DIR}\qt.conf" + File "${FALKON_BIN_DIR}\COPYRIGHT.txt" + File "${FALKON_BIN_DIR}\falkon.exe" + File "${FALKON_BIN_DIR}\falkon.dll" + File "${FALKON_BIN_DIR}\qt.conf" File "${OPENSSL_BIN_DIR}\libeay32.dll" File "${OPENSSL_BIN_DIR}\ssleay32.dll" File "${MSVC_REDIST_DIR}\*" @@ -204,38 +205,38 @@ SectionGroup $(TITLE_SecThemes) SecThemes Section Default SecDefault SectionIn RO SetOutPath "$INSTDIR\themes\windows" - File "${QZ_BIN_DIR}\themes\windows\*" + File "${FALKON_SRC_DIR}\themes\windows\*" SetOutPath "$INSTDIR\themes\windows\images" - File "${QZ_BIN_DIR}\themes\windows\images\*" + File "${FALKON_SRC_DIR}\themes\windows\images\*" SectionEnd Section Chrome SecChrome SetOutPath "$INSTDIR\themes\chrome" - File "${QZ_BIN_DIR}\themes\chrome\*" + File "${FALKON_SRC_DIR}\themes\chrome\*" SetOutPath "$INSTDIR\themes\chrome\images" - File "${QZ_BIN_DIR}\themes\chrome\images\*" + File "${FALKON_SRC_DIR}\themes\chrome\images\*" SectionEnd Section Mac SecMac SetOutPath "$INSTDIR\themes\mac" - File "${QZ_BIN_DIR}\themes\mac\*" + File "${FALKON_SRC_DIR}\themes\mac\*" SetOutPath "$INSTDIR\themes\mac\images" - File "${QZ_BIN_DIR}\themes\mac\images\*" + File "${FALKON_SRC_DIR}\themes\mac\images\*" SectionEnd SectionGroupEnd Section $(TITLE_SecTranslations) SecTranslations - SetOutPath "$INSTDIR\locale" - File "${QZ_BIN_DIR}\locale\*.qm" - SetOutPath "$INSTDIR\qtwebengine_dictionaries\doc" - File "${QTWEBENGINE_DICTIONARIES_DIR}\doc\*" - SetOutPath "$INSTDIR\qtwebengine_dictionaries" - File "${QTWEBENGINE_DICTIONARIES_DIR}\*.bdic" + #SetOutPath "$INSTDIR\locale" + #File "${FALKON_BIN_DIR}\locale\*.qm" + #SetOutPath "$INSTDIR\qtwebengine_dictionaries\doc" + #File "${QTWEBENGINE_DICTIONARIES_DIR}\doc\*" + #SetOutPath "$INSTDIR\qtwebengine_dictionaries" + #File "${QTWEBENGINE_DICTIONARIES_DIR}\*.bdic" SectionEnd Section $(TITLE_SecPlugins) SecPlugins SetOutPath "$INSTDIR\plugins" - File "${QZ_BIN_DIR}\plugins\*.dll" + File "${FALKON_BIN_DIR}\plugins\*.dll" SectionEnd From 2886370a37b5a73ba113642138ba1f333c6c4c95 Mon Sep 17 00:00:00 2001 From: David Rosca Date: Sat, 24 Mar 2018 11:54:22 +0100 Subject: [PATCH 11/13] Windows: Fix library name in installer --- windows/installer.nsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/installer.nsi b/windows/installer.nsi index 9bd1f4ade..2469fc93d 100644 --- a/windows/installer.nsi +++ b/windows/installer.nsi @@ -130,7 +130,7 @@ notRunning: SetOutPath "$INSTDIR" File "${FALKON_BIN_DIR}\COPYRIGHT.txt" File "${FALKON_BIN_DIR}\falkon.exe" - File "${FALKON_BIN_DIR}\falkon.dll" + File "${FALKON_BIN_DIR}\falkonprivate.dll" File "${FALKON_BIN_DIR}\qt.conf" File "${OPENSSL_BIN_DIR}\libeay32.dll" File "${OPENSSL_BIN_DIR}\ssleay32.dll" From fae791dcc97d8c66d229031c22c26dfe87e4dcb8 Mon Sep 17 00:00:00 2001 From: David Rosca Date: Sat, 24 Mar 2018 14:14:03 +0100 Subject: [PATCH 12/13] Windows: Update installer --- windows/installer.nsi | 58 +++++++++++++++++++++++++++++++++++++++++-- windows/languages.nsh | 1 + 2 files changed, 57 insertions(+), 2 deletions(-) diff --git a/windows/installer.nsi b/windows/installer.nsi index 2469fc93d..baadfc801 100644 --- a/windows/installer.nsi +++ b/windows/installer.nsi @@ -184,6 +184,9 @@ notRunning: SetOutPath "$INSTDIR\sqldrivers" File "${QT_PLUGINS_DIR}\sqldrivers\qsqlite.dll" + SetOutPath "$INSTDIR\styles" + File "${QT_PLUGINS_DIR}\styles\*.dll" + SetOutPath "$INSTDIR\translations\qtwebengine_locales" File "${QT_DIR}\translations\qtwebengine_locales\*" @@ -317,8 +320,48 @@ SectionEnd notRunning: SetShellVarContext all Delete "$DESKTOP\Falkon.lnk" - RMDir /r "$INSTDIR" - RMDir /r "$SMPROGRAMS\Falkon" + + Delete "$INSTDIR\falkon.exe" + Delete "$INSTDIR\falkonprivate.dll" + Delete "$INSTDIR\uninstall.exe" + Delete "$INSTDIR\COPYRIGHT.txt" + Delete "$INSTDIR\qt.conf" + Delete "$INSTDIR\libeay32.dll" + Delete "$INSTDIR\ssleay32.dll" + Delete "$INSTDIR\libEGL.dll" + Delete "$INSTDIR\libGLESv2.dll" + Delete "$INSTDIR\opengl32sw.dll" + Delete "$INSTDIR\D3Dcompiler_47.dll" + Delete "$INSTDIR\QtWebEngineProcess.exe" + + ; Wildcard delete to compact script of uninstall section + Delete "$INSTDIR\icu*.dll" + Delete "$INSTDIR\Qt5*.dll" + Delete "$INSTDIR\msvc*.dll" + Delete "$INSTDIR\vc*.dll" + Delete "$INSTDIR\concrt*.dll" + + ; Recursively delete folders in root of $INSTDIR + RMDir /r "$INSTDIR\iconengines" + RMDir /r "$INSTDIR\imageformats" + RMDir /r "$INSTDIR\platforms" + RMDir /r "$INSTDIR\printsupport" + RMDir /r "$INSTDIR\qml" + RMDir /r "$INSTDIR\resources" + RMDir /r "$INSTDIR\translations" + RMDir /r "$INSTDIR\sqldrivers" + RMDir /r "$INSTDIR\styles" + RMDir /r "$INSTDIR\qtwebengine_dictionaries" + RMDir /r "$INSTDIR\themes" + RMDir /r "$INSTDIR\locale" + RMDir /r "$INSTDIR\plugins" + + ; Remove $INSTDIR if it is empty + RMDir "$INSTDIR" + + ; Remove start menu programs folder + RMDir /r "$SMPROGRAMS\${PRODUCT_NAME}" + DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}" @@ -457,3 +500,14 @@ FunctionEnd Function RunFalkonAsUser ${StdUtils.ExecShellAsUser} $0 "$INSTDIR\falkon.exe" "open" "" FunctionEnd + +Function un.onInit + ReadRegStr $R0 ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "InstallLocation" + IfErrors +2 0 + StrCpy $INSTDIR "$R0" + + IfFileExists "$INSTDIR\falkon.exe" found + MessageBox MB_OK|MB_ICONSTOP "$(MSG_InvalidInstallPath)" + Abort + found: +FunctionEnd diff --git a/windows/languages.nsh b/windows/languages.nsh index 44676f8ff..e7c33b058 100644 --- a/windows/languages.nsh +++ b/windows/languages.nsh @@ -24,6 +24,7 @@ LangString DESC_SecProtocols ${LANG_ENGLISH} "Associate Falkon with http(s) and ; LangString MSG_RunningInstance ${LANG_ENGLISH} "Falkon is already running! Do you want the installer try to terminate it?" LangString MSG_InstallationCanceled ${LANG_ENGLISH} "Process cancelled by user." +LangString MSG_InvalidInstallPath ${LANG_ENGLISH} "Install path invalid!" ;;;;Arabic LangString PRODUCT_DESC ${LANG_ARABIC} "كَبزيلّا متصفّح للوب جديد سريع وآمن ومفتوح المصدر. يُرخَّص استخدامه وفق الإصدار الثالث من رخصة جنو العمومية (GPL) أو أي إصدار أحدث من ذلك (اختر كما تشاء). يُبنى كَبزيلّا على محرّك العرض WebKitوإطار العمل Qt." From 6cd1e7e31a23d5ca7f4342cda8b084c07719817a Mon Sep 17 00:00:00 2001 From: David Rosca Date: Sat, 24 Mar 2018 21:47:24 +0100 Subject: [PATCH 13/13] Preferences: Correctly set show bookmarks toolbar disabled by default --- src/lib/preferences/preferences.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/preferences/preferences.cpp b/src/lib/preferences/preferences.cpp index 68a09e060..5ec12ec69 100644 --- a/src/lib/preferences/preferences.cpp +++ b/src/lib/preferences/preferences.cpp @@ -207,8 +207,8 @@ Preferences::Preferences(BrowserWindow* window) ui->showStatusbar->setChecked(settings.value("showStatusBar", false).toBool()); // NOTE: instantBookmarksToolbar and showBookmarksToolbar cannot be both enabled at the same time ui->instantBookmarksToolbar->setChecked(settings.value("instantBookmarksToolbar", false).toBool()); - ui->showBookmarksToolbar->setChecked(settings.value("showBookmarksToolbar", true).toBool()); - ui->instantBookmarksToolbar->setDisabled(settings.value("showBookmarksToolbar", true).toBool()); + ui->showBookmarksToolbar->setChecked(settings.value("showBookmarksToolbar", false).toBool()); + ui->instantBookmarksToolbar->setDisabled(settings.value("showBookmarksToolbar", false).toBool()); ui->showBookmarksToolbar->setDisabled(settings.value("instantBookmarksToolbar").toBool()); connect(ui->instantBookmarksToolbar, SIGNAL(toggled(bool)), ui->showBookmarksToolbar, SLOT(setDisabled(bool))); connect(ui->showBookmarksToolbar, SIGNAL(toggled(bool)), ui->instantBookmarksToolbar, SLOT(setDisabled(bool)));