38 Commits

Author SHA1 Message Date
Arttu Tarkiainen
b3eaeb1782 Enable support for Qt 5.12 in installer framework
Workaround issues of IFW not being able to work on elevated mode
caused by changes in qtbase, namely when initializing socket
connection between remote installer client and server, and writing
maintenance tool binary.

Switch to using unbuffered mode for QFSFileEngine instances as
buffered mode support has been dropped. Fix calls to QFile::copy()
when running elevated installer process. Make minor modifications
for unit tests to pass. Explicitly fail and return when performing
CreateLocalRepositoryOperation on non-owned directory.

Task-number: QTIFW-1312
Change-Id: I3db72547ee95c87d8c02d27e5b31c7b30e793431
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
2019-08-22 11:49:19 +00:00
Katja Marttila
6664ca85f0 Add findFiles method
Task-number: QTIFW-1094
Change-Id: Ibc37e9b568f7f54e37f6ed6a5b040940cab5aebd
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
2018-03-26 08:46:30 +00:00
Katja Marttila
2539c3d453 Fix tests
Task-number: QTIFW-1027
Change-Id: I9d153924d0f88a537ddcf87e61cac2c550d6817f
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
2017-11-08 08:40:39 +00:00
Katja Marttila
9772474dd9 Merge remote-tracking branch 'origin/2.0'
Conflicts:
	Changelog
	dist/config/config.xml
	dist/packages/org.qtproject.ifw.binaries/meta/package.xml
	dist/packages/org.qtproject.ifw/meta/package.xml
	installerfw.pri
	src/libs/installer/lib7z_create.h
	src/libs/kdtools/kdgenericfactory.cpp
	src/libs/kdtools/kdgenericfactory.h
	src/libs/kdtools/kdupdaterapplication.cpp
	src/libs/kdtools/kdupdaterapplication.h
	src/libs/kdtools/kdupdaterupdatesourcesinfo.cpp
	src/libs/kdtools/kdupdaterupdatesourcesinfo.h
	src/libs/kdtools/localpackagehub.cpp
	src/libs/kdtools/localpackagehub.h
	src/libs/kdtools/updatefinder.cpp
	src/libs/kdtools/updatefinder.h
	tools/binarycreator/resources/mkdmg.sh

Change-Id: Iab2513f549832d2e750e77131c673457ab265af4
2017-01-30 14:40:26 +02:00
Katja Marttila
c9d11cc991 License header update to GPL-EXCEPT
Change-Id: I6426c4e8f932cf26c6c638dec18d0c12e22972d1
Reviewed-by: Janne Anttila <janne.anttila@theqtcompany.com>
2017-01-26 10:02:56 +00:00
Katja Marttila
e87c58548a Merge remote-tracking branch 'origin/2.0'
Conflicts:
	Changelog
	dist/config/config.xml
	dist/packages/org.qtproject.ifw.binaries/meta/package.xml
	dist/packages/org.qtproject.ifw/meta/package.xml
	installerfw.pri
	src/libs/7zip/7zip.pro
	src/libs/7zip/win/CPP/7zip/UI/Common/Update.cpp
	src/libs/installer/component.cpp
	src/libs/installer/lib7z_facade.cpp
	src/libs/installer/packagemanagercore.cpp
	src/libs/installer/proxycredentialsdialog.h
	src/sdk/translations/ja.ts
	tests/auto/installer/messageboxhandler/tst_messageboxhandler.cpp
	tests/auto/installer/scriptengine/tst_scriptengine.cpp
	tests/auto/installer/settings/tst_settings.cpp

Change-Id: I3bb98b8490b3c3eb7f664c1abb7417155b5430b2
2016-06-21 12:32:42 +03:00
Christian Stenger
4b652cdc1a Tests: Fix scriptengine test
Change-Id: I288f366785c72da49087cb688f7f1247c2494c99
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
2016-03-31 13:20:45 +00:00
Karsten Heimrich
ba145f6090 Make communication via installer.execute() Unicode safe
It was impossible to pass Unicode data safely to a process started via
installer.execute(), or to read Unicode data printed by that process
safely back in. The reason for this is that the code hardcoded the
latin1 codec for converting between strings used in the script
interpreter and bytes used by the QProcessWrapper API.

Fix this by adding two new optional arguments to installer.execute()
which can be used to define the codec to be used for writing to stdin
resp. reading from stdout. This defaults to latin1 for backwards
compatibility.

Change-Id: I290d8d9617b286ef90b2f0a05c6e7a47f6df317f
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
Reviewed-by: Frerich Raabe <raabe@froglogic.com>
2016-03-30 21:13:03 +00:00
Karsten Heimrich
6e904b95bd Fix failing auto-test.
Change-Id: If948400f15f9dcb43e4f47293ee58428993375f7
Reviewed-by: Katja Marttila <katja.marttila@theqtcompany.com>
2016-03-23 11:46:30 +00:00
Katja Marttila
e67fd518cb Revert "Use QQmlV4Function to correctly get empty parameters from script."
This reverts commit eb574d77b0ab9a92b61e7738d089cd4ea4304e51.
The change will not work with Qt5.5 as it is causing constant
crashes in Qt installers. Using this change will require a fix
for Qt5. As we are about to make Qt installers based on 2.0 we
need to revert this change for now.

Change-Id: Ia7906d02db645f2407ab07d14f5a037224574b29
Reviewed-by: Andy Shaw <andy.shaw@theqtcompany.com>
2016-02-17 11:20:56 +00:00
Karsten Heimrich
d2e0b8fc3b Fix build after merge.
Change-Id: I03b7f65e9a2b5ce16160f9059e70a064e354a6c7
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2016-01-21 13:55:26 +00:00
Iikka Eklund
2af57eb8c8 Merge remote-tracking branch 'origin/2.0'
Conflicts:
	installerfw.pri
	src/libs/kdtools/kdgenericfactory.cpp
	src/libs/kdtools/kdgenericfactory.h
	src/libs/kdtools/kdupdaterapplication.cpp
	src/libs/kdtools/kdupdaterapplication.h
	src/libs/kdtools/kdupdaterupdatesourcesinfo.cpp
	src/libs/kdtools/kdupdaterupdatesourcesinfo.h
	sync.profile

Change-Id: Ifdc8b065f89b7e241bd3788ed79768e21888161f
2016-01-20 14:18:30 +02:00
Iikka Eklund
6ba58b42ab Update license headers
Update existing license headers. LGPL -> LGPLv21.
Update copyright year as well.

Change-Id: Ie1d71f8c68186b8f625f409ddf94691f178093c9
Reviewed-by: Katja Marttila <katja.marttila@theqtcompany.com>
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-12-29 07:31:11 +00:00
Karsten Heimrich
eb574d77b0 Use QQmlV4Function to correctly get empty parameters from script.
By using QQmlV4Function to get the parameters, empty strings passed
are correctly kept as empty and not null.

Task-number: QTIFW-724
Change-Id: I592e2230e574ba82e765bd0079964db29452b2e9
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-11-26 07:04:11 +00:00
Katja Marttila
30c223190d Fix scriptengine autotest
Was failing in Windows because NativeSeparators was not taken into account
when verifying the error message

Change-Id: I79c17ad91875918501d84b102d16f84bb2008038
Reviewed-by: Iikka Eklund <iikka.eklund@theqtcompany.com>
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
2015-11-06 07:41:53 +00:00
Kai Koehne
b2a65ce68b Sanitize QDebug output
Prefer using the stream operator logic instead of using
QString::fromLatin1. Add a noquote() where a QString should be printed
without any quotes/escapes.

This also fixes the tests with Qt 5.5, where QString's are further
escaped.

Change-Id: Ie3afd14b9355101d3c0b52f30f66ec759c76526c
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
2015-07-09 13:38:42 +00:00
Kai Koehne
5d53c5a4ba Fix error strings in autotests
Fix autotests that broke with commit 1e589e37a991b.

Change-Id: I2c0ed437de17fef856706fb3e422f3466c373c37
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-06-24 11:08:24 +00:00
Kai Koehne
a893c90bfa Fix autotests for changed debug output
Commit fa5f7c662841b1d13f6610db8817608a24e3a3f6 removed the printing
of exceptions on creation. Fix autotests accordingly.

Change-Id: Id715b194f893016d23d7e2accf4b131a40a3f906
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
2015-06-10 08:50:59 +00:00
Christoph Vogtländer
17e29fc8d3 fix empty installer.components array
Make sure the current list of components is used when referencing
installer.components in a controller script.

Change-Id: I9468110d61a958f13edba66da0059d6622aa7037
Task-number: QTIFW-601
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
2015-03-13 10:16:51 +00:00
Kai Koehne
99996591e0 Update Copyright
Change-Id: I8dde6629cfd461104364d5cdc255cb54b58283fa
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
2015-02-18 10:33:48 +00:00
Kai Koehne
aa0e97f08a Fix testBrokenJSMethodConnect autotest
Since qtdeclarative change e2c1e7b8a exceptions in JS slots do _not_ set
the engine to an error state anymore, but are rather printed to console,
and ignored. This prevents exceptions to silently propagate ...

Change-Id: Icb065314730cf2142eedbde14b0c77c21bdd6f6f
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
Reviewed-by: Jarek Kobus <jaroslaw.kobus@theqtcompany.com>
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2015-01-30 07:28:43 +00:00
jkobus
838f328496 Fix the invocation order of entering() and page callback
Task-number: QTIFW-620
Change-Id: I1a40aae35dc1c259a96043a1056aa631bf7279b2
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2015-01-27 13:52:14 +00:00
Kai Koehne
36a9594bce Make sure widgets from .ui files are properly registered to engine
Make the QWidget representing a UI file known to the engine, so that
e.g. child objects can be always accessed :

   component.userInterface("RegisterFileCheckBoxForm").RegisterFileCheckBox.checked;

This worked reliably only if the .ui file has been shown to the user,
which might not always been the case.

Change-Id: I7a87773e29f6210ab7160d8e33c41f6ebeeb82d6
Reviewed-by: Jarek Kobus <jaroslaw.kobus@theqtcompany.com>
2015-01-20 16:09:57 +01:00
Kai Koehne
f87efd7c14 Fix objects returned by gui methods
We need to make sure objects like pageWidgetByObjectName are augmented
too (so that one can access child objects). This is achieved by
a proxy object that augments all raw QObject * and QWidget * return
values.

This fixes e.g. the dynamicpage example.

Task-number: QTIFW-605
Change-Id: If26dc59220946a7445ef0f9ec7caa15e5b04eaa8
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
2015-01-08 08:59:06 +01:00
Kai Koehne
8d86c06aef Simplify registration of objects into script engine
Rename addQObjectChildren, removeQObjectChildren methods to
addToGlobalObject, removeToGlobalObject, and merge the augmentation
of the properties with newQObject.

Also, don't recursively register all objects with their objectNames
in the global scope. This avoids name pollution.

Change-Id: I28f1bc67e6febecc7b5142982c918432b61ed96f
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
2015-01-07 16:17:33 +01:00
Kai Koehne
71c248e270 Expose findChild, findChildren methods to JS
Re-add the findChild, findChildren methods known from Qt Script.

Change-Id: I3db6be53ccd89a09b2c7de14ba7f96ebb26dbdbb
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
2014-12-10 09:44:27 +01:00
Kai Koehne
de748023e5 Expose systemInfo API
Add systemInfo as a wrapper for QSystemInfo.

Task-number: QTIFW-592
Change-Id: Ib54fcea8b0ef3a397a74f5315202f3000abd63cd
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
Reviewed-by: Jarek Kobus <jaroslaw.kobus@theqtcompany.com>
2014-12-05 14:02:38 +01:00
jkobus
79964b1ee5 Remove unused code.
Dead since commit 5359d0a3e8d84699701e73d3d15163fb20200bb0

Change-Id: I40af485876d70a6a68406eafe14258b185e16323
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
2014-12-03 16:04:23 +01:00
kh1
76cb03cb60 Fix regression after porting to QJSEngine.
Setting a dynamic property of a dynamic page from JS doesn't have
any effect anymore, as the properties are not synced. Now we define
the property directly on the JavaScript object and connect it to
corresponding C++ page with static Qt properties.

Task-number: QTIFW-562
Change-Id: If95222a94ebee7f8bb455792eab96c5e9bc19b86
Reviewed-by: Niels Weber <niels.weber@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2014-10-30 14:54:05 +01:00
kh1
d7e202fbd6 Add check for expected default properties.
Change-Id: I315c958bbc3cbc45452db4787ef3ab27750ebbaa
Reviewed-by: Niels Weber <niels.weber@digia.com>
2014-10-30 13:40:39 +01:00
kh1
00c6f94d1d Add test for default script engine properties.
Change-Id: Id07a6ffd193e032439d008878d6526806ef24c9f
Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
2014-06-03 10:52:01 +02:00
kh1
8addcf763b Replace script with js engine.
Change-Id: Ic9c88e27dca1e936ba09a3776df3df7ec166c606
Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
2014-06-03 10:51:51 +02:00
Tim Jenssen
016cdad413 Restart on the wizard needs to cleanup component left-overs
- use two different script engine instances
    - one which lives from the beginning -> the controlScriptEngine
    - the other one which will be reset if there are some new repositories
      loaded
  - now the core has a pointer to the gui object, but it should only be
    used by the script engine so a QObject type should be enough
  - engines are deleted as QObject children from the PackageManagerCore
  - registered downloaded archives are removed

Change-Id: I60a4a32fb2e409059839ec11b10c57357454f57a
Reviewed-by: Michal Klocek <michal.klocek@digia.com>
Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
2013-11-06 16:51:35 +01:00
Tim Jenssen
7a5aa97c9b remove slotCurrentPageChanged and call it directly
- also renamed it to better name: executeControlScript

Change-Id: Id2bb7cada2386561c2b25b158c6aa101382e5cc4
Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
2013-09-30 10:49:48 +02:00
Tim Jenssen
dfbb731676 add exceptionhandler code for connected signals/JS methods
- there wasn't any error information if a C++ triggered signal resulted
   in a JS method which has an error, now it will create an exception for it
 - creating messagebox inside the lib is something what we want to avoid,
   so the developer itself is responsible to catch these exceptions
 - most cases of the installer code does that already

Change-Id: I07486f73be9de13a486de235f14e3a7d7b54f5b1
Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
2013-06-03 16:35:28 +02:00
Tim Jenssen
802fe64d72 fix crash in scriptengine autotest
- destructor deletes components, so there was a double deletion

Change-Id: I5c4f14bb3b964297be542821d10a7ebb27925af5
Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
2013-05-22 18:14:00 +02:00
Tim Jenssen
37e436add7 fix scriptengine autotest
- since we are using one scriptengine the component needs to be
   registered on the packagemangercore to load the script

Change-Id: I931b75e8d68328c2317dd4a55ab9cc298229caba
Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
2013-05-22 17:45:05 +02:00
Tim Jenssen
06449248ab introduce installerscriptengine
- it uses one scriptengine for everything and adds the components
   or/and the install-controller in javascript closure contexts
 - added the gui object to the component script context
 - removed tabController from controlscript context

Change-Id: I3bd6c5dcf470666c30add1b7d04a8fdd094f5f11
Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
2013-05-16 16:12:52 +02:00