Commit Graph

1619 Commits

Author SHA1 Message Date
Adriaan de Groot
67fafa04ac [partition] Move fs-type handling into Config
- the defaultFileSystemType interacts with availableFileSystemTypes
  so set them together.
2021-06-29 14:47:09 +02:00
Adriaan de Groot
f494440895 [partition] Don't run bool allowManualPartitioning through GS
It's a bit over-wrought to store a bool in a QVariant in GS for
consumption **only** by ChoicePage, so drop that GS key and store
it locally.
2021-06-29 13:21:46 +02:00
Adriaan de Groot
5e3a0eda73 [partition] Reduce confused naming 2021-06-29 13:01:21 +02:00
Adriaan de Groot
ebecfb9f8b [partition] Simplify config-reading (now the variant-docs are better) 2021-06-29 12:21:14 +02:00
Adriaan de Groot
46f2d72b4c [partition] requiredPartitionTableType: improve docs 2021-06-29 11:48:53 +02:00
Adriaan de Groot
5f7cfefed7 [partition] Migrate EFI settings-setting to Config object 2021-06-29 11:43:20 +02:00
Adriaan de Groot
c3bc305bb6 [partition] Shuffle Config and ViewStep to top
Modules nearly always have a Config and either a Job or ViewStep
as their "top level" components. Everything else is implementation-
detail. The *partition* module was unusual in that those two
"top level" components were tucked away in subdirectories.

Shuffle them to the top: this makes it more clear that these
two files are there to coordinate the module.
2021-06-29 11:22:47 +02:00
Adriaan de Groot
cba5b9e4fb [partition]: restore defaultFileSystemType in config
Add the old key back, document the new key, expand schema.
2021-06-28 22:25:54 +02:00
Adriaan de Groot
131352ca03 [partition] Apply coding style 2021-06-22 00:21:01 +02:00
Adriaan de Groot
e2bf717ea0 [partition] Rewrite new-partition API
The existing API required calling the one constructor with
specific pointers (nullptr for a partition-from-free-space)
followed by calling one of the initFrom*() functions. This
is fragile design.

Use tag-classes to distinguish create-from-free-space and
edit-another-freshly-created-partition cases, refactor
to merge the initFrom*() methods into the constructors
and factor out the shared UI creation.

Callers can now use the tag-class to distinguish. While
here, adjust both callers to use QPointer, avoiding some
very specific dialog-on-the-stack crash possibilities.
2021-06-22 00:17:46 +02:00
Adriaan de Groot
dbfd8bea03 [partition] Newly-created (fresh) partitions don't have flags yet
When a partition is set as "freshly created", the dialog was
passing in newFlags() as the **already-active** flags on the
partition; then the caller was setting those same flags as
"set these in the future", so that afterwards, no flags would
actually be set (because they're already active -- see the
first sentence).

Now, fresh partitions have no flags.
2021-06-22 00:11:46 +02:00
Adriaan de Groot
f06766085a [partition] Rename function, to track down consumers 2021-06-22 00:11:46 +02:00
Adriaan de Groot
60f8a7c5fb [partition] Don't offer /boot if EFI wants something else
- Don't leave /boot in the list always; EFI might be configured
  for /boot/efi on this system
- While here, apply coding style.
2021-06-18 22:20:11 +02:00
Adriaan de Groot
6936915dd6 [partition] Fix logging (type of debug stream changed) 2021-06-18 17:41:22 +02:00
Adriaan de Groot
7deb6c0e9e [partition] Improve logging in clearmounts job 2021-06-18 16:18:06 +02:00
Adriaan de Groot
66f96e339c [libcalamares] Introduce cVerbose() convenience macro (like cDebug()) 2021-06-18 16:01:04 +02:00
Adriaan de Groot
17cc0470da [partition] Log names of partition flags, not just a number 2021-06-18 15:54:51 +02:00
Adriaan de Groot
bf7eed9342 [partition] Tidy debug output when creating table 2021-06-18 15:50:13 +02:00
Adriaan de Groot
fb7e6101ff [partition] Hook erase-fs-type changes to the config-object 2021-06-18 13:53:47 +02:00
Adriaan de Groot
7ce2a87644 [partition] Fix build
- fsName was a QString (a copy) so it could be modified;
- the modification isn't really necessary.
- While here, pick up new PointerSetter convenience class.
2021-06-18 13:49:39 +02:00
Adriaan de Groot
2a0d4e5a23 [partition] Initialize pointers in declaration 2021-06-18 12:35:15 +02:00
Adriaan de Groot
26cabbb3e4 [partition] refactor config-reading from availableFileSystemTypes 2021-06-18 12:18:04 +02:00
Adriaan de Groot
cd804470b5 [partition] Canonicalize the FS choice for erase 2021-06-18 11:51:33 +02:00
Adriaan de Groot
d8a862ec82 [partition] Use Q_EMIT 2021-06-18 11:31:53 +02:00
Adriaan de Groot
4fa61249a8 [partition] Make the fs type used for erase, a config property 2021-06-18 11:29:36 +02:00
Adriaan de Groot
9fa5ab04e5 [partition] Apply coding style to core/ 2021-06-18 11:23:27 +02:00
Adriaan de Groot
f9659989b1 [partition] rename findFS
Rename findFS -> canonicalFilesystemName because that's what it actually
does. While here, apply coding style to the files that are affected.
2021-06-18 11:09:11 +02:00
Adriaan de Groot
546253d750 [partition] Apply coding style 2021-06-18 11:00:15 +02:00
Adriaan de Groot
9ef22f4168 Merge branch 'calamares' of https://github.com/LordTermor/calamares into pr-1667 2021-06-15 11:48:33 +02:00
Adriaan de Groot
dba346be7a [partition] Fix build in non-debug settings 2021-06-08 19:51:25 +02:00
Adriaan de Groot
4f70568c65 [partition] Remove unneeded includes 2021-06-08 15:05:44 +02:00
Adriaan de Groot
63c6a8bac8 [partition] Remove unneeded includes 2021-06-08 14:18:28 +02:00
Adriaan de Groot
f67c7f900c [partition] Make the expanded (pop-up) icon sizes for devices a bit smaller 2021-06-08 14:14:11 +02:00
Adriaan de Groot
df634573bf [partition] Resize combo box to show whole pop-up
The (collapsed) combo box should be wide enough to show the
entire pop-up (expanded) box data.

FIXES #1700
2021-06-08 14:09:31 +02:00
Adriaan de Groot
eb627bc055 [partition] Avoid crash when PARTITION_UNSAFE is on
PARTITION_UNSAFE is a debug mode. It is not used in
production, because it allows you to pick an install
device that would be dangerous (e.g. the current / device).

Existing code kept two copies of a list of pointers,
and deleted pointers from one of the lists and returned
the other -- which now contains dangling pointers.

Refactor by applying suitable lambdas to a single
copy of the list; this avoids copying the list so
there is no danger of dangling pointers.
2021-06-08 13:22:56 +02:00
Adriaan de Groot
a57a1fdbd8 [partition] Improve logging while collecting devices 2021-06-04 13:32:22 +02:00
Adriaan de Groot
cf341c53fa Merge branch 'calamares' into improve-partition 2021-05-25 17:37:15 +02:00
Adriaan de Groot
a72d59d23b [partition] Don't mention IRC support for weird configs 2021-05-31 10:38:37 +02:00
Adriaan de Groot
2d8cf6aabf [partition] Fix build against KPMCore3 2021-05-26 16:36:28 +02:00
Adriaan de Groot
01911beccc [partition] Expand debugging output
The partition path isn't set yet, so is probably 'empty'. Try logging the device, too.
2021-05-25 14:16:28 +02:00
Adriaan de Groot
252a88cb7f [partition] Check for suitable bios_grub partition. 2021-05-25 14:07:58 +02:00
Adriaan de Groot
43c172f54d [partition] Tighten up types
Don't return the generic Abstract model for bootloader, but
the subclass pointer, so that consumers can use the convenience
API on the subclass.
2021-05-25 13:23:28 +02:00
Adriaan de Groot
d0276fd25f [partition] Look up bootloader by name, method
The bootloader model knows about both rows and
devices, so we can look up both at once. The
existing implementation as a non-member was rather
sketchy and wasn't used except as support for
restoreSelectedBootLoader().
2021-05-25 13:05:45 +02:00
Adriaan de Groot
dabd895755 [partition] Use type alias consistently 2021-05-25 12:33:12 +02:00
Adriaan de Groot
d630c2aadf [partition] Introduce a check if the GPT-on-BIOS popup should be shown
The check is bogus right now, and it still always warns; but if
the `shouldWarnForGPTOnBIOS()` function is implemented, this will
fix issue 1701.
2021-05-25 12:00:35 +02:00
Adriaan de Groot
df20aa9ddb Merge branch 'calamares' into improve-partition 2021-04-23 23:33:49 +02:00
Adriaan de Groot
231fa815c1 [partition] Forgotten ) 2021-04-19 16:10:29 +02:00
Adriaan de Groot
117418fe60 [partition] Fix partitioning summary
- the %4 is left-over from the feature-summary string,
- replace it with ""; don't change the source string
  because that will break translations right now.
2021-04-19 15:47:55 +02:00
Adriaan de Groot
4912de5893 [partition] reduce warnings with unsafe-option
- Move variables closer to where they are needed
- Do the winnowing / selection always, but in unsafe mode return
  the un-winnowed list of devices
- Massage build documentation a little
2021-04-09 13:32:48 +02:00
Artem Grinev
9302ad1468 [partition] Erase disk FS choice 2021-03-31 20:15:02 +04:00
Adriaan de Groot
7a26143fbc [partition] All action-changes should update next 2021-03-29 15:52:55 +02:00
Adriaan de Groot
1fe337d6ed [partition] Improve logging of device-checking
- Avoid lots of function headers between the checks applied to
  each individual device.
2021-03-29 15:25:57 +02:00
Adriaan de Groot
785042ccf3 [partition] Improve formatting of logging while loading configuration 2021-03-29 14:41:56 +02:00
Adriaan de Groot
0446f03613 [partition] Remove overly-chatty debugging from fs-name-lookup 2021-03-29 14:38:39 +02:00
Adriaan de Groot
7b09344a8b [partition] Update next-button
You'll need a VM with 2 disks to demonstrate:

- Configure Calamares to pick "none" as initial action on
  the partition page (this is a safe choice),
- Enter partition page,
- No action is selected, and the next> button is greyed out.
- Click erase; notice next> is now available.
- Change devices, notice no action is selected, but next>
  is still available. Clicking on it, though, does nothing.

When changing to "no action", update the next-button's
availability.
2021-03-29 14:24:56 +02:00
Adriaan de Groot
70bf033dc0 [partition] Improve logging readability
- The entire queue is one long output, so print them with SubEntry
2021-03-29 14:17:40 +02:00
Adriaan de Groot
1155b6fc3d [partition] Improve debug-output a little 2021-03-29 14:14:05 +02:00
Adriaan de Groot
0ec77f5d85 [partition] Warnings-- (uninitialized value) 2021-03-29 11:06:16 +02:00
Adriaan de Groot
df1d7dea61 [partition] Warnings--
Avoid the extra indirection through the otherwise-unused
prettyGptType(const QString&), construct table of names
only on first call to avoid static-initialization order
(though that's not important here).
2021-03-29 11:03:37 +02:00
Adriaan de Groot
22dbe60bb9 [partition] Use operations-API (available in all supported KPMCore versions) 2021-03-28 18:07:32 +02:00
Adriaan de Groot
47c167c043 [partition] KPMCore removed some headers 2021-03-28 17:56:54 +02:00
Adriaan de Groot
e2113eda38 [partition] trust in AutoMoc 2021-03-28 17:52:44 +02:00
Adriaan de Groot
1eba562d07 [partition] Apply coding style 2021-03-27 15:43:32 +01:00
shainer
1007680931 Fix error handling in ChangeFilesystemLabelJob 2021-03-27 15:40:07 +01:00
shainer
c035029f38 Make sure we always set the filesystem label.
In particular, we need a separate Job class to set the label; this
is invoked after we formatted a partition, and when no other changes
to the partition have been requested in the Edit dialog.
2021-03-27 15:38:46 +01:00
Adriaan de Groot
3d49379bec [partition] Chase API change in createNewPartition()
The partition- and filesystem-label setting code was already there,
but not in the call to createNewPartition(); now we set the
FS label twice (once in the call, once afterwards)
2021-03-27 14:45:34 +01:00
shainer
b602d423c7 Allow users to set/edit filesystem labels.
When creating or editing a new formatted partition, allow
to set a filesystem label (16 chars maximum). Modify
the KPMHelpers to accept it as a new parameter. Partitions
created by default may get a meaningful label too.
2021-03-27 14:31:06 +01:00
shainer
1cfdc8044c Display current filesystem label as a column in the main partition view. 2021-03-23 16:30:31 +01:00
Adriaan de Groot
559b79f920 [partition] Use (better documented) filesystem-use API 2021-03-23 12:09:06 +01:00
Adriaan de Groot
186d32ebee [partition] More missing ; 2021-03-16 16:11:02 +01:00
Adriaan de Groot
2b4bc7adf4 [partition] Apply newer formatting tool 2021-03-16 16:08:13 +01:00
Adriaan de Groot
bb426ebac4 [partition] Add missing ; (and apply coding style) 2021-03-16 16:01:25 +01:00
Adriaan de Groot
98524708cc [partition] Chase namespace change for Units 2021-03-09 19:45:12 +01:00
Adriaan de Groot
144b51f00e [partition] Use automount control
FIXES #1604

(Admittedly, this fixes the problem only when there's Plasma Solid automount
present, and not any of the other kinds; but none of those have been reported
yet, and adding them into AutoMount.cpp is opaque to the rest of the
system)
2021-02-03 01:31:37 +01:00
Adriaan de Groot
17f73b1294 [partition] Test automount job in a queue 2021-02-03 01:26:49 +01:00
Adriaan de Groot
38fa1d9567 [libcalamares] Distinguish logging raw, shared and unique pointers
- It shouldn't be necessary to explicitly .get() pointers for
  logging, and it's convenient to know when a pointer is smart.
  * no annotation means raw (e.g. @0x0)
  * S means shared
  * U means unique
2021-02-03 01:06:25 +01:00
Adriaan de Groot
c43a6ab866 [partition] Improve logging in automount test
- switch logging in job to VERBOSE because we don't want to be printing
  pointers to the regular session log
- switch logging in test to VERBOSE to actually see the messages from the Job
- hook the test into the build
2021-02-03 00:46:34 +01:00
Adriaan de Groot
aae815cf3b [partition] Add trivial test for automount management job 2021-02-02 23:01:59 +01:00
Adriaan de Groot
1704ad5977 [partition] Add a job to handle automount behavior
- while here, nudge CalamaresUtils automount API a little,
  since it doesn't really need an rvalue-ref.
2021-02-02 19:18:19 +01:00
Adriaan de Groot
6978ce3cb4 [partition] Collect more kpmcore 4.2 code 2021-01-20 14:56:34 +01:00
Adriaan de Groot
520f08bbba [partition] Fix build with legacy kpmcore 2021-01-20 14:54:12 +01:00
Adriaan de Groot
31bf38977e [partition] Refactor partition-labeling 2021-01-20 14:48:44 +01:00
Gaël PORTAY
af5c57a713 [partition] Output filesystem features in overview 2021-01-08 08:57:03 -05:00
Gaël PORTAY
c045af1975 [partition] Output GPT entries in overview 2021-01-08 08:57:03 -05:00
Gaël PORTAY
bf9c9a64f1 [libcalamares] Introduce new function getPartitionTable 2021-01-08 08:54:02 -05:00
Gaël PORTAY
feab8bebba [partition] Remove unused attribute m_defaultFsType
This attribute is used since the commit fcd0e8d36 [partition] Apply
partition layout when replacing free space
2020-11-12 15:15:51 -05:00
Gaël PORTAY
2e6d632c7c [partition] Fix typo 2020-11-11 12:49:44 -05:00
Adriaan de Groot
59255c7a57 Changes: apply coding style 2020-11-05 00:00:29 +01:00
Gaël PORTAY
e2b00bc517 [partition] Fix typo 2020-11-04 09:58:07 -05:00
Adriaan de Groot
2c297a068f [partition] Log when an EFI problem has been solved 2020-11-04 12:32:51 +01:00
Adriaan de Groot
0f38ee624e [partition] static-assert that our shortcut makes sense 2020-11-04 09:59:35 +01:00
Adriaan de Groot
15ace5202d [partition] Simplify EFI-flags checking with KPMCore 4 2020-11-04 01:16:36 +01:00
Adriaan de Groot
85bb8c27b3 [partition] Simplify flags calculations
- factor out the flags-we-want from the flags-we-already-have
 - the use of ->activeFlags() meant that the state on *disk* was
   being compared with the flags-we-want; if a partition was re-edited,
   then you couldn't change the flags back to the state-on-disk
   (eg. enable a flag, then change your mind and disable it).
 - set the flags before refreshing the partition, because the
   refresh checks for EFI bootability and that needs the new flags,
   not the old ones.
2020-11-04 00:58:11 +01:00
Adriaan de Groot
949e33f1e8 [partition] Massage logging while checking for EFI boot 2020-11-04 00:43:32 +01:00
Adriaan de Groot
63964de4bd [partition] Explain underlying type for flags variant 2020-11-04 00:32:21 +01:00
Adriaan de Groot
87c77d9807 [partition] When flags are explicitly invalid, return early 2020-11-04 00:14:05 +01:00
Adriaan de Groot
356e13ae93 [partition] Improve logging readability 2020-11-03 23:46:07 +01:00
Adriaan de Groot
2516f18d1b
Merge pull request #1560 from gportay/partition-mount-make-mountPoint-and-filesystem-optionals
[partition,mount] Make mountPoint and filesystem optionals
2020-11-02 23:25:53 +01:00
Adriaan de Groot
ffce79e30e [partition] Initialize the filesystem type, not the partition type
- Passing FileSystem::Type to the QString constructor for
  partition type is not what I intended.
2020-11-02 22:32:44 +01:00
Adriaan de Groot
73b5a0898d [partition] Migrate the defaultFS type
- remove the m_defaultFSType from PartitionLayout, because it is
  set on construction -- which is too early, before the configuration
  has been read.
- make the default FS explicit in the init() calls which pass in
  a configuration; this needs support in the intermediate
  PartitionCoreModule.
2020-11-02 21:35:43 +01:00