[PATCH 2 of 2] Merged

Wald Commits scm-commit at wald.intevation.org
Thu Aug 21 13:59:23 CEST 2014


# HG changeset patch
# User Emanuel Schuetze <emanuel at intevation.de>
# Date 1408622339 -7200
# Node ID e48ad80c3aca35af861adc9429926a0ab83cea32
# Parent  e15637472a99082b798d5502de928e13e3d411b3
# Parent  e5fd2d0cf42fe8c3ccb48c4ada4a78c72ff8d49a
Merged.

diff -r e15637472a99 -r e48ad80c3aca CMakeLists.txt
--- a/CMakeLists.txt	Thu Aug 21 13:58:33 2014 +0200
+++ b/CMakeLists.txt	Thu Aug 21 13:58:59 2014 +0200
@@ -10,7 +10,7 @@
 
 option(DO_RELEASE_BUILD "Build for a public release." OFF)
 option(ENABLE_PROFILING "Set to enable profiling." OFF)
-option(USE_CURL "Use libcurl to download updates and certificate lists." ON)
+option(USE_CURL "Use libcurl to download updates and certificate lists." UNIX)
 
 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")
 
diff -r e15637472a99 -r e48ad80c3aca packaging/linux-installer.inc.in
--- a/packaging/linux-installer.inc.in	Thu Aug 21 13:58:33 2014 +0200
+++ b/packaging/linux-installer.inc.in	Thu Aug 21 13:58:59 2014 +0200
@@ -304,6 +304,7 @@
 
   getxt "Removing TrustBridge from autostart\n"
   rm_files "${autostart_path}/trustbridge.desktop"
+  update-desktop-database 2>&1 || true
 
   getxt "Removing TrustBridge from start menu\n"
   rm_files "${startmenu_path}/trustbridge.desktop"
diff -r e15637472a99 -r e48ad80c3aca packaging/trustbridge.nsi
--- a/packaging/trustbridge.nsi	Thu Aug 21 13:58:33 2014 +0200
+++ b/packaging/trustbridge.nsi	Thu Aug 21 13:58:59 2014 +0200
@@ -80,7 +80,7 @@
 !define MUI_FINISHPAGE_NOAUTOCLOSE
 !define MUI_UNFINISHPAGE_NOAUTOCLOSE
 
-!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU"
+!define MUI_STARTMENUPAGE_REGISTRY_ROOT "SHCTX"
 !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\${productname_short}"
 !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
 
@@ -143,10 +143,25 @@
   !endif
 
   ${IfNot} ${AtLeastWinVista}
-    MessageBox MB_OK "Windows XP und ältere Windows Versionen werden von dieser Anwendung nicht unterstützt."
+    MessageBox MB_ICONSTOP "Windows XP und ältere Windows Versionen werden von dieser Anwendung nicht unterstützt."
     Quit
   ${Endif}
 
+  UserInfo::GetAccountType
+  pop $0
+  ${If} $0 != "admin"
+    MessageBox MB_ICONINFORMATION|MB_YESNO "\
+Sie sind im Begriff ${productname} ohne Administratorrechte zu installieren. $\r$\n\
+$\r$\n\
+Ohne Administratorrechte werden Sie von Windows zur Bestätigung jeder Zertifikatsänderung einzeln aufgefordert. $\r$\n$\r$\n\
+Wenn Sie die Möglichkeit besitzen Administratorrechte auf diesem System zu erlangen wird daher dazu geraten diesen Installer erneut mit der Funktion \
+'Als Administrator ausführen' zu starten.  $\r$\n$\r$\n\
+Möchten Sie die Installation ohne Administratorrechte fortsetzen?" /SD IDYES IDYES goOn IDNO stopNow
+    stopNow:
+      Quit
+    goOn:
+  ${EndIf}
+
   Var /GLOBAL is_update
   Var /GLOBAL changed_dir
   ${GetParameters} $R0
@@ -233,6 +248,8 @@
   WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${productname_short}" \
                  "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S"
 
+  ; Below this is HKCU only!
+  SetShellVarContext current
   !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
 
   ;Create shortcuts
@@ -257,8 +274,7 @@
 
   !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder
 
-  Delete "$SMPROGRAMS\$StartMenuFolder\${productname}.lnk"
-  RMDir "$SMPROGRAMS\$StartMenuFolder"
+  DeleteRegValue SHCTX "Software\${productname_short}" "Start Menu Folder"
 
   DeleteRegKey /ifempty SHCTX "Software\${productname_short}"
 
@@ -270,5 +286,12 @@
 
 ; Remove uninstaller
   DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${productname_short}"
+
+  ; Below this is HKCU only!
+  SetShellVarContext current
+
+  Delete "$SMPROGRAMS\$StartMenuFolder\${productname}.lnk"
+  RMDir "$SMPROGRAMS\$StartMenuFolder"
+
 SectionEnd
 !endif
diff -r e15637472a99 -r e48ad80c3aca ui/mainwindow.cpp
--- a/ui/mainwindow.cpp	Thu Aug 21 13:58:33 2014 +0200
+++ b/ui/mainwindow.cpp	Thu Aug 21 13:58:59 2014 +0200
@@ -1158,6 +1158,15 @@
     unselected << mInstallList->unselectedCertificates();
     unselected << mRemoveList->unselectedCertificates();
 
+#ifdef Q_OS_WIN
+    if (!is_admin() || !is_system_install()) {
+        QMessageBox::information(this,
+                tr("Installation as normal user."),
+                tr("TrustBridge does not have the necessary privileges to install the certificates silently.") + "\n" +
+                tr("Windows will explicitly ask you to verify every modification TrustBridge intends to make."));
+    }
+#endif
+
     QProgressDialog *progress = new QProgressDialog(this);
     progress->setWindowModality(Qt::WindowModal);
     progress->setLabelText(tr("Installing certificates..."));
diff -r e15637472a99 -r e48ad80c3aca ui/sslconnection_bare.cpp
--- a/ui/sslconnection_bare.cpp	Thu Aug 21 13:58:33 2014 +0200
+++ b/ui/sslconnection_bare.cpp	Thu Aug 21 13:58:59 2014 +0200
@@ -438,6 +438,11 @@
 
     ret = write(getRequest.toUtf8());
 
+    if (ret != 0) {
+        qDebug() << "Failed to send request.";
+        return false;
+    }
+
     // Open / Create the file to write to.
     if (!outputFile.open(QIODevice::WriteOnly)) {
         qDebug() << "Failed to open file";


More information about the Trustbridge-commits mailing list