Commit Graph

296 Commits

Author SHA1 Message Date
Adriaan de Groot
8cf3c217f7 Merge branch 'requirements-checking' 2019-02-25 10:00:43 -05:00
Adriaan de Groot
2092ec3c9a [partition] Drop some re-parenting trickery
- Can't re-parent across threads easily
 - If device is made by immutableDeviceCopy(), then it's still owned by the
   PartitionCoreModule; giving it away to the widget is not a good idea.
2019-02-25 04:36:46 -05:00
Dan Simmons
651b52ead9 Fix spelling typo 2019-02-20 05:00:58 -05:00
Adriaan de Groot
2a8960cd0f [partition] Ensure combobox pre-selects consistently
- Match the selected item in the combobox with a given default,
   which should be whatever is selected from the available set of
   choices.
2019-02-12 07:30:34 -05:00
Adriaan de Groot
5f20eedb6e [partition] Use swap-choice member, not the combobox pointer
- Store changes to the selected swap-choice when the combobox changes
 - Use that member instead of dereferencing the combobox

This avoids nullptr crashes when the combobox isn't even created
(e.g. when there is only one swap choice).
2019-02-12 07:21:35 -05:00
Adriaan de Groot
a4e6d4cd35 [partition] Rename combo box
- Too much confusion possible between the different members all
   named variations of *SwapChoice*
 - Update copyright years, too
2019-02-12 05:40:11 -05:00
Adriaan de Groot
273461a497 [partition] Be verbose about handling osprober results 2019-02-11 05:32:42 -05:00
Adriaan de Groot
2c6ff26aaa [partition] Reduce warnings 2019-02-06 04:08:21 -05:00
Adriaan de Groot
73c39adf9c Merge branch 'improve-swap-ui' 2019-01-24 15:20:06 -05:00
Adriaan de Groot
b913753831 [partition] No need to re-query the current choice 2019-01-21 08:54:09 -05:00
Adriaan de Groot
aef61a42bc [partition] Tidy up code
- avoid possible nullptr dereference on connect() if no swap choices
 - group retranslations together
2019-01-21 08:22:17 -05:00
Adriaan de Groot
24422b19bd [partition] Idiomatic connect() usage 2019-01-21 08:20:01 -05:00
Adriaan de Groot
fbef117fc8 [partition] Remove unused code 2019-01-21 07:52:23 -05:00
Adriaan de Groot
8ecae75dc8 [partition] Simplify code a little
- Document and make pickOne() more correct
 - Reduce calls to globalStorage(), it doesn't change
2019-01-21 07:41:47 -05:00
Adriaan de Groot
e85fedfd41 [partition] Drop comment that doesn't apply anymore 2019-01-18 15:57:21 +01:00
Adriaan de Groot
a51a000681 Merge branch 'master' into improve-swap-ui 2019-01-14 15:57:22 +01:00
Arnaud Ferraris
5cacc0ddc6 Merge remote-tracking branch 'upstream/master' into partition-layout 2019-01-11 10:03:46 +01:00
Arnaud Ferraris
dfb5412c57 [partition] Preserve current device when going to manual partitioning
Fixes #1043

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-01-10 16:28:05 +01:00
Arnaud Ferraris
fcd0e8d362 [partition] Apply partition layout when replacing free space
When chosing the "Replace partition" option, free space is not handled
like any partition. In order to apply the custom partition layout in
that case too, we have to modify the code where "replace free space" is
handled.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-01-07 17:28:02 +01:00
Arnaud Ferraris
ba673b17ee [partition] Add configuration option to disable manual partitioning
In some cases where a custom partition layout is used, use of this
layout is mandatory (this can be the case when using a read-only rootfs
which is updated by block-cpying an image file to it).

For these cases, the user must not be able to change the partition
layout, therefore we have to disable manual partitioning.

In order to stay consistent with current behaviour, manual partitioning
is still enabled by default. It will only be disabled if the partition
module's config file contains the corresponding option set to "false".

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-01-07 17:27:40 +01:00
Arnaud Ferraris
2f14a21456 [partition] Apply custom layout when installing "Alongside"
When choosing "Install alongside another system", the custom partition
layout is applied to the space freed by resizing the selected partition.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-01-07 17:27:12 +01:00
Adriaan de Groot
4973d00ace [partition] Only create drop-down if there is something to select
- Swap choices may be 0 (then choose none), 1 (choose that one)
   or more (currently undecided)
2018-12-11 13:52:23 +01:00
Adriaan de Groot
00df8a9fb1 [partition] Remove unused code
- Swap choice for replace and alongside will happen much, much later.
2018-12-04 12:21:02 +01:00
Adriaan de Groot
2998c27545 [partition] Use configured swap choices in choice page 2018-12-04 11:35:35 +01:00
Adriaan de Groot
edc6c64657 [partition] Create swap-combo from a set
- Alternate way to create swap-combobox, using configuration
   values rather than an initializer list.
2018-12-04 11:01:16 +01:00
Adriaan de Groot
988a0a5388 [partition] Changing swap choice also changes preview
- When selecting *erase*, you may be able to change the swap
   settings. If so, changing swap settings should change the
   preview.
2018-12-04 10:34:02 +01:00
Adriaan de Groot
0231619c7c [partition] Refactor slot for change in action
- Let's not go overboard on lambdas,
 - Needed for others that also want to update the partitioning preview
2018-12-04 10:22:08 +01:00
Adriaan de Groot
c5d707399d Merge branch 'fix-swap-ui' 2018-12-03 21:02:10 +01:00
Adriaan de Groot
8144295e98 [partition] Make new partition flags explicit
Suggested by aliveafter1000: having a default value, and then
filling in the default in one place it is used and not others,
is weird. Instead of dropping the one use, remove the default
value: partition flags are important enough to be explicit.
2018-11-09 08:25:26 -05:00
Adriaan de Groot
417eeedd9f [partition] Calamares is spaced-out enough without extra's 2018-10-11 06:35:45 -04:00
Adriaan de Groot
2a61116b3c [partition] Disable swap choice for replace & alongside 2018-10-08 15:32:02 -04:00
Adriaan de Groot
779542a5d1 Merge branch 'master' into fix-swap-ui 2018-10-08 13:56:28 -04:00
Adriaan de Groot
292bc57523 [partition] Fix build with suitable operator << 2018-10-03 13:49:52 -04:00
Adriaan de Groot
b38316365e [partition] Be more verbose about why UI buttons appear 2018-10-03 13:58:50 +02:00
Adriaan de Groot
29bae61610 Merge branch 'master' into fix-swap-ui 2018-10-01 03:21:06 -04:00
Adriaan de Groot
e3bf9fc220 [partition] Fix build with KPMCore <= 3.3.0
- Reported by Philip Mueller
2018-09-21 16:19:05 -04:00
Adriaan de Groot
d2f4079a18 [partition] Move partitioning options into a class
- As (auto) partitioning grows more options, the parameter
   list becomes more unwieldy. Add some structure to it.
2018-09-17 06:42:14 -04:00
Adriaan de Groot
5136021416 [partition] Move SwapChoice to another namespace
- The choice of swap needs to be handled in more places,
   so make the enum available in the partition module core instead
   of just inside the choice page.
2018-09-13 06:29:59 -04:00
Adriaan de Groot
846e496d76 [partition] Tidy includes 2018-09-13 05:50:46 -04:00
Adriaan de Groot
959cd7b224 [partition] Simplify creation of comboboxes for swap choices 2018-09-13 04:45:36 -04:00
Adriaan de Groot
cfa940b35c [partition] Support translations of swap choices
- Introduce enum to indicate what is selected
 - Support translations
 - Fill selections for erase
2018-09-12 11:18:17 -04:00
Adriaan de Groot
7d0451fe69 [partition] Rename Choice -> InstallChoice
- There are more choices to be made (or to come) when partitioning,
   so don't take the most generic term for one enum.
2018-09-12 10:16:48 -04:00
Adriaan de Groot
dc492b301c [partition] Drop label on swap-options box 2018-09-12 08:42:21 -04:00
Adriaan de Groot
a791818a65 [partition] Add swap drop-down
- This is WIP; the drop-down contents should be customised,
   depending on configuration and the state of the device being
   installed-to.
2018-09-12 08:18:45 -04:00
Caio Carvalho
b5a2a5bbdd [partition] Don't show erase button for inactive RAID. 2018-08-13 12:26:00 -03:00
Adriaan de Groot
dd8e53dc22 Copyright: update copyright lines on files touched in 2018
Contributions from:
  Adriaan de Groot <groot@kde.org>
  Gabriel Craciunescu <crazy@frugalware.org>
  AlmAck <gluca86@gmail.com>
  Andrius Štikonas <andrius@stikonas.eu>
  Caio Carvalho <caiojcarvalho@gmail.com>
  Raul Rodrigo Segura <raurodse@gmail.com>
2018-06-15 05:59:11 -04:00
Adriaan de Groot
3315df5df1 [modules] Use new convenience logging methods across the board 2018-02-13 11:07:12 +01:00
Adriaan de Groot
05967311de [partition] Be defensive against no device-device-available.
Scenario is this: you have no suitable installation devices on
your system (everything is mounted, or HDD has died), click through
to partition page, where you have all the buttons available, but no
devices in the list. The following actions then cause a crash:

 - clicking "back"
 - clicking any button

Prevent that:
 - you can click "back", but if there is no device selected
   nothing happens to the device state (no nullptr deref,
   and no crash)
 - button code is now more resilient to this scenario
 - buttons are hidden until a device is available, so you
   can't even click on them to trigger the code.
2018-01-09 06:58:46 -05:00
Adriaan de Groot
762ad54344 Documentation: change http links to GitHub to https 2017-12-20 08:39:09 -05:00
Adriaan de Groot
31fa9e4251 Clang: fix warnings on partition splitter
- initialize all the fields
 - member-initialization order
 - silence warnings about double<->int
 - drop unused parameter to setSplitPartition
2017-09-10 06:17:28 -04:00
Adriaan de Groot
3e5916157f A mounted partition cannot be resized or replaced
- add check for isMounted()
 - a device with a mounted partition cannot be (entirely) erased

FIXES #639
2017-09-07 04:55:44 -04:00
Adriaan de Groot
851379628c Reduce Qt runtime warnings.
- deleteLater() doesn't like nullptr (produces a warning, but is harmless)
 - reparenting across threads doesn't work, comment on that but leave
   it in, since this may be relevant for memory management.
2017-09-07 04:24:08 -04:00
Adriaan de Groot
7e66499f36 Refactor check for EFI system.
The TODO stands, to delegate this to KPMCore.
2017-08-28 05:36:45 -04:00
Adriaan de Groot
3c3c0f99f8 C++ trickery, part two: shorten code 2017-07-04 08:42:14 -04:00
Adriaan de Groot
ee4e4dfccc C++ trickery to make the code shorter to read. 2017-07-03 18:07:18 -04:00
Teo Mrnjavac
6545443b24 Documentation++ 2017-03-03 12:32:44 +01:00
Teo Mrnjavac
f4732de975 Always write bootloader path. 2017-01-18 19:38:12 +01:00
Teo Mrnjavac
a59a79a816 bootloaderInstallPath only applies if !isEfi. 2017-01-12 13:28:34 +01:00
Teo Mrnjavac
f3848cd428 The sender QObject should be in scope so the bootloader path is written.
CAL-388
CAL-417
CAL-441
2017-01-10 14:46:07 +01:00
Teo Mrnjavac
5796b05fda Allow disabling automated LUKS modes. 2016-09-26 13:14:54 +02:00
Teo Mrnjavac
c316d22b08 Keep an immutable copy for every scanned Device* to avoid rescans. 2016-09-09 11:28:39 +02:00
Chantara Tith
aa10fe982a API Changes, logicalSectorSize -> logicalSize, totalSectors -> totalLogical. 2016-09-09 11:28:39 +02:00
Andrius Štikonas
9f0ca042fe Port away from most cases of Q_FOREACH to C++11 ranged for loop.
In order to avoid deep copies, Qt containers over which we iterate must be const
The remaining unported cases require qAsConst (Qt 5.7) or std::as_const (C++17)
2016-09-01 16:46:14 +01:00
Teo Mrnjavac
edeee85cd3 Write reuse Home check box string. 2016-07-22 16:36:26 +02:00
Teo Mrnjavac
e6f9714f84 Avoid homePartitionPath going out of scope. 2016-07-22 16:36:26 +02:00
Teo Mrnjavac
90bb64fb17 Pass current index by value. 2016-07-22 16:36:26 +02:00
Teo Mrnjavac
aaf85407fb Only look for a separate /home partition if a partition was found. 2016-07-22 16:36:26 +02:00
Teo Mrnjavac
6c6e4a1f88 Write reuseHome to GlobalStorage. 2016-07-22 16:36:26 +02:00
Teo Mrnjavac
8b0b4c73de Add Q_UNUSED where relevant. 2016-07-22 16:36:26 +02:00
Teo Mrnjavac
d44a3d831b Warning fixes: avoid C-style casts. 2016-07-22 16:36:26 +02:00
Teo Mrnjavac
30ff216dea Warning fix: implicit cast. 2016-07-22 16:36:26 +02:00
Teo Mrnjavac
90c06bd733 Warning fixage (init list order, lossy cast, Q_UNUSED). 2016-07-22 16:36:26 +02:00
Teo Mrnjavac
c1e535a8e8 Hide reuse checkbox on action selection change. 2016-07-22 16:36:26 +02:00
Teo Mrnjavac
a17f369cee React to reuse home checkbox by setting /home mount point.
Rearranged Replace workflow a bit: onPartitionReplaceSelected is now
the on choice slot, which in turn calls doReplaceSelectedPartition.
onHomeCheckBoxStateChanged also calls doReplaceSelectedPartition if we
need to redo the Replace task with/without a separate home to keep.
m_reuseHomeCheckBox is hidden by default.
2016-07-22 16:36:26 +02:00
Teo Mrnjavac
2c68802446 Reapply the action choice instead. 2016-06-29 18:46:02 +02:00
Teo Mrnjavac
b2b202d190 Do a full revert. 2016-06-29 18:34:02 +02:00
Teo Mrnjavac
f1a29033a2 Revert PCM before applying Alongside operation. 2016-06-29 18:21:38 +02:00
Teo Mrnjavac
18742d2afd Ignore encrypt widget if the choice is Manual. 2016-06-10 15:22:40 +02:00
Teo Mrnjavac
f5ff716369 Make everything obey the default filesystem type setting. 2016-06-10 15:22:21 +02:00
Teo Mrnjavac
936e7fab7c Initial support for Alongside install with LUKS. 2016-06-07 17:35:39 +02:00
Teo Mrnjavac
fd2d24d650 Always show encrypt widget for Replace. 2016-06-03 17:56:31 +02:00
Teo Mrnjavac
4113207e00 Fix next status handling in alongside and replace. 2016-06-03 17:55:14 +02:00
Teo Mrnjavac
e84108e234 Add encryption support in PartitionActions::doReplacePartition. 2016-06-03 16:39:28 +02:00
Teo Mrnjavac
6cd1bf6b3d Initial work on having the Replace feature obey the encryption setting. 2016-06-02 18:29:17 +02:00
Teo Mrnjavac
a4ab8dad46 Hide encryption widget if not Erase. 2016-05-18 07:22:13 +02:00
Teo Mrnjavac
60dcba8735 Update next state slightly later. 2016-05-17 11:34:30 +02:00
Teo Mrnjavac
b792ea0216 Rebuild autopartition proposal when encryption choice changes. 2016-05-06 18:59:51 +02:00
Teo Mrnjavac
0cc9560a99 Hook up EncryptWidget in ChoicePage, plus improve next status handling. 2016-05-06 18:59:51 +02:00
Teo Mrnjavac
dacb8f2a94 Make sure we don't hide actions based on osprober. 2016-03-18 12:28:54 +01:00
Chantara Tith
fd8c131b26 implement free-space partition replace install 2016-03-18 17:09:50 +07:00
Teo Mrnjavac
83d440f37e Add note. 2016-03-10 13:16:18 +01:00
Teo Mrnjavac
06ebf69afe Initialize all members (fix Coverity defect 98200). 2016-02-26 14:02:22 +01:00
Teo Mrnjavac
a0ac9d9f07 Don't dereference nullptr (fix Coverity defect 121863). 2016-02-26 13:00:58 +01:00
Teo Mrnjavac
e91d213872 Improve setting ESP. 2016-02-19 16:57:49 +01:00
Teo Mrnjavac
e27b9fc295 Handle ESP selector visibility. 2016-02-19 16:51:24 +01:00
Teo Mrnjavac
a4831085fb Only override BIOS bootloader install path if there's no UI. 2016-02-19 16:42:51 +01:00
Teo Mrnjavac
7a89b53538 Refactor leave event of ChoicePage, add ESP mount point support.
PVS now calls ChoicePage::onLeave, which in turn runs ChoicePage::
doAlongsideApply and/or sets up the ESP mount point based on the UI
state if it's running in EFI mode and the action is Alongside or
Replace.
If setting up under BIOS, Alongside and Replace always install
the bootloader in the MBR of the current device.
2016-02-19 16:33:19 +01:00
Teo Mrnjavac
485176d70d And always do that, please. 2016-02-12 16:48:29 +01:00
Teo Mrnjavac
12ec3bb74b Iterate over all partitions for canBeResized check, not just osprober. 2016-02-12 16:45:52 +01:00
Teo Mrnjavac
c3404769dc Use new check as selection filter in view. 2016-02-12 15:02:49 +01:00