4481 Commits (92ab0c1addef21377c58846c4aaa4fd28c304c18)

Author SHA1 Message Date
Adriaan de Groot f1971eed86 [libcalamares] Support calling a slot on retranslation
- sometimes a slot is easier than a lambda. Introduce
   a macro CALAMARES_RETRANSLATE_SLOT that calls a given
   slot in an object on language change.
 - extend the retranslator with support for calling slots:
   - use Qt's signal/slot mechanism alongside the private
     list of functions to call
   - provide convenience for obtaining the retranslator of
     an object.
6 years ago
Adriaan de Groot 535bf01475 [welcome] Refactor lambdas to full slots
- This helps give meaningful names to code chunks
 - Gives clang-format something to work with
 - Reduces indentation depth

I think this is a bit of a code-style opinion issue: big complicated
lambdas doing UI things just don't seem like a good idea.
6 years ago
Adriaan de Groot fc5aa54cb2 [welcome] Fix code formatting
- the RETRANSLATE macro is a real challenge for astyle and clang-format
6 years ago
Adriaan de Groot 07bd22ba95
Merge pull request #1233 from bill-auger/patch-4
eliminate magic number in src/modules/welcome/WelcomePage.cpp
6 years ago
Adriaan de Groot 9ca864567a
Merge pull request #1231 from bill-auger/patch-5
cross-reference/clarify geoip documentation
6 years ago
Adriaan de Groot 3f90921155
Merge pull request #1232 from bill-auger/patch-3
update doc comment in src/modules/initcpio/initcpio.conf
6 years ago
bill-auger 5642576cf3
cross-reference/clarify geoip documentation 6 years ago
bill-auger bb678e535b
add esperanto branding translations, fix mis-configured ones 6 years ago
bill-auger 4c3c6f3f91
eliminate magic number in src/modules/welcome/WelcomePage.cpp 6 years ago
bill-auger 13a58a4ab2
update doc comment in src/modules/initcpio/initcpio.conf 6 years ago
bill-auger e459b82cfe
fix typo in src/libcalamaresui/ViewManager.cpp 6 years ago
Adriaan de Groot 559a65d169 Merge branch 'issue-1213'
FIXES #1213

Better slideshow loading, both V1 and V2. Keyboard shortcuts only while
the slideshow is visible.
6 years ago
Adriaan de Groot 8ab0fb4e5f [libcalamaresui] Apply coding style (missed earlier) 6 years ago
Adriaan de Groot 03ac0d2cf0 [qml] Document the new property and how it updates 6 years ago
Adriaan de Groot be5388abcd [libcalamaresui] activate -> change state
- since we also need to *disable* the shortcuts, and should tell a
   V1 slideshow that it no longer is running,
 - use existing function to set the property to true / false depending.
 - instead of changeState( true ) or changeStage( false ), use
   meaningful enum names so that the code at the call site
   becomes readable; make the boolean part internal to the
   state-changing method.
6 years ago
Adriaan de Groot 1e3e53d30a [libcalamaresui] Set activatedInCalamares special property
- when the QML is activated, if the slideshow has this property,
   set it to true. This enables the keyboard shortcuts.
6 years ago
Adriaan de Groot 7df6ed31e9 [libcalamaresui] Refactor QML slideshow activation
- one function for activation, since we activate from different
   places and each loader-API may need multiple steps for activation.
6 years ago
Adriaan de Groot 0a9d0ddf68 [qml] In the default (sample) slideshow, activate key shortcuts
- with V2 loading, the key shortcuts should be enabled when the
   slideshow itself is activated, not when it is loaded.
6 years ago
Adriaan de Groot 34cb777b0a [qml] Disable all the key shortcuts via root.activatedInCalamares 6 years ago
Adriaan de Groot ac8952f223 [libcalamaresui] Improve QML API v2 debugging
- log what is being loaded
 - distinguish "component complete" from actuial loading
6 years ago
Adriaan de Groot e0bb53aff4 [dummycpp] Replace QProcess::execute()
- hangs unpredictably during testing
 - replace with the Calamares process-invocation runCommand(), which is also
   synchronous but doesn't hang (or, hasn't, in testing so far)
6 years ago
Adriaan de Groot c28c97d3aa Merge branch 'issue-1215'
FIXES #1215
FIXES #1216
6 years ago
Adriaan de Groot eb21c90861 [libcalamares] Avoid implicit 0-to-flags conversion
- clang complains about using 0 as a Flags value, so make the
   default (empty) initialization explicit.
6 years ago
Adriaan de Groot d8a587e16e [packagechooser] Scale screenshot
- if the screenshot is too large, scale it down
 - (doesn't react to window resizes though)
6 years ago
Adriaan de Groot 6035a74a93 [packagechooser] Align the screenshot
- hcenter + vcenter the screenshot
 - make it expand as necessary
 - fill in some sample text
6 years ago
Kevin Kofler 9dbd3a765b [netinstall] Fix typo in netinstall.conf comment
s/inmportant/important/
6 years ago
Adriaan de Groot 5868f102f2 [packagechooser] Less-bad "no selection" image
- It's only "less bad", not actually a good image, composed from
   Breeze "empty" and "generic packages" icon.
6 years ago
Adriaan de Groot d063d60e37 [packages] Explain pre-script isn't actually a shell script 6 years ago
Adriaan de Groot 56792fdcb5 [netinstall] Polish the README
- describe the format better
 - more consistent typography
 - refer to `packages.conf` for details on shell commands
6 years ago
Adriaan de Groot ee29c45433 [netinstall] Point documentation towards netinstall README.md 6 years ago
Adriaan de Groot 6fb909a799 Merge branch 'networking-service' 6 years ago
Adriaan de Groot f7215393d1 [tracking] Use the network service
- drop own NAM handling
 - use timeout mechanism
 - report timeout as fatal error (like it already did), other
   errors are ignored.
6 years ago
Adriaan de Groot a1b0049bbf [libcalamares] Use more readable names 6 years ago
Adriaan de Groot e2c6591a77 [libcalamares] Refactor request internals
- distinguish timeouts from other failures
 - git synchronousPing() a more detailed result, which is
   still bool-compatible.
6 years ago
Adriaan de Groot f0be7fd4aa [libcalamares] Make failures in the internal methods obvious
- internally, timeout and error will return nullptr
6 years ago
Adriaan de Groot 87ea14f68a [libcalamares] Drop INTERFACES again
- The compile failure came from bad #include paths, so restoring
   this interface declaration wasn't a fix.
 - Reported to cause runtime failures on both KaOS and Manjaro.
6 years ago
Adriaan de Groot ededebbc6c [libcalamares] Return reply early if the request is bad 6 years ago
Arnaud Ferraris 0f6b2dbe2d [unpackfs] Enable to use "/" as a source
If we don't have/need an image for the rootfs, we might want to
configure the `/` directory as a source for unpackfs. Unfortunately,
this raises an error:
  - unpackfs first creates a temporary directory
  - it then creates a subdirectory for each source, using the source
path's basename
  - when the source is `/`, the basename is an empty string, therefore
the module tries to create an already existing directory

In order to prevent this error, we use the `os.makedirs` function with
parameter `exist_ok=True` instead of `os.mkdir`.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
6 years ago
Adriaan de Groot d422c782ba [libcalamares] Correct include path
- no need for the subdirectories, and this confuses MOC

Reported-by: Jonathan Riddell
Fix-by: Harald Sitter
6 years ago
Adriaan de Groot 85f0d38698 [libcalamares] Refactor synchronous get
- Add timeout support
 - Refactor into a static helper method
6 years ago
Adriaan de Groot 1f2b3b734d [libcalamares] Extend synchronous API with options 6 years ago
Adriaan de Groot af1aa701bc [libcalamares] Shuffle namespace lines around
- put all the definitions inside namespace {} to avoid
   needlessly long source lines.
6 years ago
Adriaan de Groot 383bd97a9c [displaymanager] Handle variations in config file
- GDM3 uses a different config file than previous GDM
6 years ago
Adriaan de Groot 1c61181624 [displaymanager] Handle variations in GDM executable name
- Debian https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=934504
 - Instead of hard-coding one or the other, search for gdm and gdm3
6 years ago
Adriaan de Groot 333a1f6e84 [displaymanager] Non-existent DMs don't exist
- Returning True for a non-existent DM is weird
 - Avoid suggestive parenthesis in return type
6 years ago
Adriaan de Groot b66f3434af [displaymanager] Consistent Copyright notices 6 years ago
Adriaan de Groot b8bad1c0b4 [welcome] Drop unused includes 6 years ago
Adriaan de Groot 8ea1ea6662 [libcalamares] Add synchronousGet() to network service
- Synchronous download of a given URL; not something to
   do from the GUI thread.
 - Use it from the GeoIP service, which downloads in a
   separate thread to do GeoIP lookups.
 - Drop now-unused headers.
 - Adjust tests for GeoIP to use network service
6 years ago
Adriaan de Groot 0b2855d6e0 [libcalamares] Fix build (bad class name) 6 years ago
Adriaan de Groot 9aae9b2f02 [libcalamares] Restore Q_DELCARE_INTERFACE
- This **may** be the cause of build failures on aarch64.
6 years ago
Adriaan de Groot 85f5410735 [libcalamaresui] Apply coding style 6 years ago
Adriaan de Groot dbe0ccf2e1 [calamares] Apply coding style 6 years ago
Adriaan de Groot 310a1d76cf [calamares] Reduce warnings now that getInteger is qint64 6 years ago
Adriaan de Groot eae931f2ed [libcalamares] Ping only when accessibility is unknown
- Restores exact functionality of previous version
   (noted by Kevin Kofler)
 - Short-circuit ping if the URL is bad.
6 years ago
Adriaan de Groot e065008631 [welcome] Switch to the network service
- simplify configuration
 - use existing ping- and hasInternet()
6 years ago
Adriaan de Groot 4389c254df [libcalamares] Rely directly on QNAM's networkAccessible() 6 years ago
Adriaan de Groot 11d52df04c [libcalamares] Add API docs to network service 6 years ago
Adriaan de Groot 82622373bc [libcalamares] Remove superfluous ; (warnings--) 6 years ago
Adriaan de Groot 8d3530154f [libcalamares] Expand network service test
- Do an actual ping (also to check for memory leaks)
6 years ago
Adriaan de Groot b8d56bb4a6 [libcalamares] Add tests for network service 6 years ago
Adriaan de Groot d7602df51e [libcalamares] Introduce networking service
- The networking service is intended to wrap up use of
   QNetworkAccessManager and others for consumption within
   Calamares, and to provide some convenience functions
   for internet access.
 - Medium term, it may also monitor network access, so that
   we can respond to changes in network availability during
   installation.

Currently very minimal and undocumented.
6 years ago
Adriaan de Groot 8c5caf9fd0 [packagechooser] Add CMake knobs to enable/disable item choices
- AppData and AppStream can be disabled independently of finding
   their requirements (possibly useful if you want to ignore
   AppStream even when it's installed in your build environment).
 - Add a little top-level documentation about WITH_
6 years ago
Adriaan de Groot ffa899b497 [packagechooser] Assemble the translated name and description 6 years ago
Adriaan de Groot 7b699bfc76 [libcalamares] Access list of locale Ids
- Make it easier to obtain locale-ids (from CALAMARES_TRANSLATION_LANGUAGES)
   so avoid splitting that string multiple times.
6 years ago
Adriaan de Groot d8af11adee [packagechooser] Build AppStream Pool first
- Don't build a Pool for each PackageItem loaded
 - Do make it load all languages instead of only the current one
6 years ago
Adriaan de Groot 0a92ef7655 [packagechooser] Refactor fromApp*()
- These don't have to be static methods of PackageItem, a free
   function is more convenient.
 - Since it's not API of PackageItem anymore, need to
   - update tests not to use API
   - do API-not-available warnings in consumers
6 years ago
Adriaan de Groot 17abbeda96 [packagechooser] Try to load a screenshot
- The smallest size image of the default (or, if there is no
   default, the first) screenshot is used.
 - Remote URLs are not supported by QPixmap, so most will not
   load anyway.
6 years ago
Adriaan de Groot fa2f5763c6 [packagechooser] Load AppStream data
- Get the id, name, and description from AppStream data

Missing:
 - No translations
 - No screenshots
6 years ago
Adriaan de Groot eaa0c02f8d [packagechooser] Initial support for appstream items
- Use *appstream* as key in one of the items for the package-
   chooser to load data from the AppStream cache in the system.
 - Usable for some applications; for DE-selection not so much.
 - Currently unimplemented.
6 years ago
Adriaan de Groot 2f20ad30bf [packagechooser] Refactor AppData XML support into separate file
- Put the implementation entirely in a separate file, keep the
   not-supported one in PackageModel.cpp (but only in an #ifdef).
 - Makes the various optional-data-sources more similar.
6 years ago
Adriaan de Groot 5b4152133d [packagechooser] Look for AppStream libs 6 years ago
Adriaan de Groot 52af9dbaad [mount] Add docstrings to methods 6 years ago
Adriaan de Groot 395c375c60 [mount] Winnow partition list
- Simplify the iteration by first determining which partitions
   are mountable (at all).
 - This guards against the very rare case that a partition
   does not have a mountPoint at all (the if guarded against that)
   where the lambda passed to sort() would get a KeyError.
6 years ago
Adriaan de Groot 8aedd8b175
Merge pull request #1219 from a-wai/extra-mounts-after-root
mount: Make sure extra mounts are mounted right after /
6 years ago
Arnaud Ferraris 257f5da1af mount: Use a single partitions list sorted by mount point
Instead of having a special case for extra mounts to be processed right
after the rootfs, a better approach is to add them to the partitions
list, and then sort the list by mount point.

This way, we make sure every partition is mounted right when it is
needed: `/` is obviously mounted first, `/run` is mounted before
`/run/udev`, and so on.

The overall process is therefore more generic and should suit all
use-cases.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
6 years ago
Adriaan de Groot 0b7dcf7c50 [welcome] Fix up tooltips
- the "Select language" tooltip was applied to the form, so it would
   show up inappropriately all over the place
 - the buttons didn't have useful tooltips.
6 years ago
Adriaan de Groot c36f963954 [welcome] Adjust names of URLs to be consistent
- having show*Url and donateUrl seems inconsistent, although
   the show*Url settings were originally boolean-only.
 - add "show" to the Donate button setting, to make them
   all consistent (putting a boolean there will generate a
   warning and hide the button, that's all).
6 years ago
Adriaan de Groot 706cc73925 [branding] [welcome] Adjust documentation for welcome-overrides 6 years ago
Adriaan de Groot 341965c2b1 [welcome] Use setupButton for all four buttons
- the show* settings in welcome.conf are "upgraded" to allow
   setting the URL directly in the module configuration.
6 years ago
Adriaan de Groot 119f84d6c1 [welcome] Remove setupLinks() method, use generic
- the generic (enum-based) setupButton() can handle all four
   of the buttons, so setupLinks() can go away. Only the
   (re)translation of the text on the button needs to be
   done, so move that to the main RETRANSLATE.
6 years ago
Adriaan de Groot 64d4b0a46c [welcome] Switch API for buttons to an enum + string
- Handle buttons and their URL-opening in a more
   general way with an enum; drop existing three-boot
   method and special setupDonateButton()
 - Doesn't compile because consumers haven't changed.
6 years ago
Adriaan de Groot 03e506a826 [welcome] Add a donate button
FIXES #1197
6 years ago
Adriaan de Groot b60ec123a0 [branding] [welcome] Document interrelationship of settings 6 years ago
Adriaan de Groot 6b8c0129fd [libcalamaresui] Add one more icon (donate) from Breeze
- LGPLv3 like the others
6 years ago
Adriaan de Groot e7dedbbfe0 [libcalamaresui] Apply coding style to remainder 6 years ago
Adriaan de Groot d44e8f6115 [libcalamaresui] Apply coding style to viewpages/ 6 years ago
Adriaan de Groot 6f74463a80 [libcalamaresui] Apply coding style to utils/ 6 years ago
Adriaan de Groot 1b6aed8c40 [libcalamaresui] Apply coding style to modulesystem/ 6 years ago
Adriaan de Groot 6224d6605b [libcalamaresui] Apply coding style to widgets/ 6 years ago
Adriaan de Groot 27c3a5a11d [calamares] Apply coding style 6 years ago
Adriaan de Groot f31ff8b9ea [libcalamares] Apply coding style to PluginFactory 6 years ago
Adriaan de Groot ccd707b23a [libcalamares] Apply coding style
- .. or, rather, avoid re-formatting tables in future.
6 years ago
Adriaan de Groot 09a36cd669
Merge pull request #1221 from a-wai/add-base-10-sizes
Add 'base 10' partition size multiples
6 years ago
Adriaan de Groot 54767812fe
Merge pull request #1218 from a-wai/fix-unpackfs
Fix error in unpackfs
6 years ago
Arnaud Ferraris a51d612afa Revert "libcalamares: Align partition sizes on actual sectors"
This reverts commit 40202705ff.
6 years ago
Adriaan de Groot 1d047839c7
Merge pull request #1220 from a-wai/prevent-int-overflow
Prevent integer overflow when parsing configuration
6 years ago
Arnaud Ferraris 40202705ff libcalamares: Align partition sizes on actual sectors
Currently, the `bytesToSectors()` function rounds a partition size to the
nearest MiB unit, which may lead to inconsistencies when a partition
is expected to only be a few KiB's.

This patch changes the behaviour of `bytesToSectors()` so that it aligns
on sector size, without rounding the partition size to a multiple of
1MiB.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
6 years ago
Arnaud Ferraris 209e8331b7 libcalamares: Add support for KB/MB/GB size units
Currently, all size units are expressed as KiB, MiB or GiB (resp. 2^10,
2^20 or 2^30).

In order to maximize compatibility and consistent results with other
partitioning tools, this commit adds support for sizes expressed as KB,
MB or GB (resp. 10^3, 10^6 or 10^9).

This change won't affect existing users, it simply adds a new option
that wasn't previously handled.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
6 years ago
Adriaan de Groot 0716a46eb2 [libcalamares] Switch to using KPluginFactory
- this is not entirely straightfoward, since  we need
   different constructor arguments for the objects
   Calamares creates (no QVariantList& args, in particular).
   Implement our own registerPlugin() and createInstance()
   for that.
 - work around a bug in K_PLUGIN_FACTORY_DECLARATION_WITH_BASEFACTORY
6 years ago
Arnaud Ferraris 3929557a5a welcome: Fix requirements parsing
As the config files integer are now of type `QVariant::LongLong` instead
of `QVariant::Int`, requirements relying on this type were not parsed
correctly.

This patch fixes this, and adds an option to the python conversion to
take into account `QVariant::LongLong` types.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
6 years ago