Compare commits
182 Commits
Author | SHA1 | Date |
---|---|---|
Heiko Becker | fc385fd89c | |
l10n daemon script | 66fa786e00 | |
Andrius Štikonas | bb6cd82f6d | |
Tomaz Canabrava | 4f0ff7b63a | |
Tomaz Canabrava | 90f6cb74d2 | |
Andrius Štikonas | 87eb4cdadd | |
Andrius Štikonas | d795c3d9f8 | |
Andrius Štikonas | 3b290d606d | |
Andrius Štikonas | 983c46a7ac | |
Andrius Štikonas | 48c5f67506 | |
Andrius Štikonas | 6a66203744 | |
Andrius Štikonas | 479631455c | |
Andrius Štikonas | 458872f359 | |
Andrius Štikonas | 850151655e | |
Andrius Štikonas | adacc91e75 | |
Andrius Štikonas | 909a03347a | |
Andrius Štikonas | e47827e20c | |
Andrius Štikonas | 20d41ef501 | |
Andrius Štikonas | 0ff20194b0 | |
Andrius Štikonas | ca788a9e69 | |
Andrius Štikonas | 7d4ca72118 | |
Andrius Štikonas | 312079422a | |
l10n daemon script | 843d7e9f19 | |
l10n daemon script | b29953b6b9 | |
l10n daemon script | 31bdb87514 | |
l10n daemon script | fb8249cbc9 | |
l10n daemon script | 55f525d5a4 | |
l10n daemon script | 1430b89952 | |
l10n daemon script | 28df23863e | |
Andrius Štikonas | e57c9d1552 | |
Nate Graham | 4703517c75 | |
Tomaz Canabrava | 825ca30ce7 | |
Tomaz Canabrava | a8da9ef6c1 | |
Tomaz Canabrava | afcc0c6c47 | |
Andrius Štikonas | 6f28900350 | |
Heiko Becker | d24f5cd2c1 | |
Andrius Štikonas | c9751910e8 | |
Andrius Štikonas | b9e5a055d4 | |
Andrius Štikonas | 850ab0df40 | |
Andrius Štikonas | 519bea8fd5 | |
Andrius Štikonas | 47e6d5f3d2 | |
Andrius Štikonas | 4e5cbcdb65 | |
Tomaz Canabrava | 1edb947525 | |
Tomaz Canabrava | 2bcd994bf1 | |
Tomaz Canabrava | bfc445bd7c | |
Tomaz Canabrava | 6b27467943 | |
Alessio Bonfiglio | 4f17fc5548 | |
Albert Astals Cid | dffa270506 | |
Andrius Štikonas | 81bbfea449 | |
Tomaz Canabrava | 479c3f4678 | |
Tomaz Canabrava | a577f8a0b8 | |
Tomaz Canabrava | a85b63c004 | |
Tomaz Canabrava | 099c753516 | |
Tomaz Canabrava | ae088e1ace | |
Albert Astals Cid | 1c5d0f5b4a | |
Tomaz Canabrava | a389b0e9ff | |
Tomaz Canabrava | a41c31c66f | |
Heiko Becker | 26ef5d3342 | |
Heiko Becker | d951b24fd8 | |
Heiko Becker | 6339ca235c | |
Andrius Štikonas | 4fbf432640 | |
Heiko Becker | 90b0aa2ed4 | |
Heiko Becker | d4afb41e87 | |
l10n daemon script | 5264203fe8 | |
Albert Astals Cid | c0565bd091 | |
Heiko Becker | a3d219f401 | |
Andrius Štikonas | 9212d74464 | |
Heiko Becker | 03fad35e25 | |
Heiko Becker | 2b7cf50f5c | |
l10n daemon script | 789a014df2 | |
Carl Schwan | 072e8c4720 | |
Heiko Becker | 03dd7cb0e0 | |
l10n daemon script | 8ecb5373c1 | |
l10n daemon script | 4407b41a21 | |
Andrius Štikonas | bdb0d25ace | |
Albert Astals Cid | 2e80aa5bdd | |
Heiko Becker | d23a3bde10 | |
Luigi Toscano | d58f97bf51 | |
Heiko Becker | c8e2afccb1 | |
l10n daemon script | 2fcaecab43 | |
l10n daemon script | 6385967402 | |
l10n daemon script | a428b26f2e | |
Christoph Feck | 42c46fa674 | |
l10n daemon script | c1ca4a3399 | |
l10n daemon script | 69d03099b0 | |
l10n daemon script | 03da1748bc | |
Christoph Feck | 2f226daa00 | |
Andrius Štikonas | 175eaef1b9 | |
Andrius Štikonas | 03edda5de6 | |
Andrius Štikonas | aa32927848 | |
Albert Astals Cid | f419683cd6 | |
Albert Astals Cid | 50d8321b3a | |
Albert Astals Cid | e40ef5d88d | |
Albert Astals Cid | 80a2b51a68 | |
Yuri Chornoivan | d45ee40326 | |
Andrius Štikonas | 2ab0ceb998 | |
Andrius Štikonas | cd10b5ba2c | |
Andrius Štikonas | 7d515e43bf | |
Andrius Štikonas | 631cac66c8 | |
Andrius Štikonas | 5a4df98216 | |
Andrius Štikonas | b34b656c24 | |
Andrius Štikonas | 8bcba4719f | |
Andrius Štikonas | 991bd1125f | |
Andrius Štikonas | ed84b9762c | |
l10n daemon script | 9cbcbe061d | |
Andrius Štikonas | 4f5a4ff51e | |
Andrius Štikonas | 02e4359889 | |
Andrius Štikonas | e0906e3e26 | |
Andrius Štikonas | 58b3aefcfa | |
Andrius Štikonas | 9ff2649cd2 | |
Andrius Štikonas | 209c1767b7 | |
Andrius Štikonas | 3cc0fc6848 | |
Andrius Štikonas | 380485aa8e | |
Andrius Štikonas | 3e39aaea60 | |
Andrius Štikonas | 65619e679e | |
Andrius Štikonas | 47b3d5f6fa | |
Andrius Štikonas | 71305e4ca6 | |
Andrius Štikonas | 6fc116a034 | |
l10n daemon script | 7a03de8f05 | |
Andrius Štikonas | 2d2af2158a | |
Andrius Štikonas | 30d5671950 | |
Andrius Štikonas | 159ad053b2 | |
l10n daemon script | 6d6a361e8b | |
l10n daemon script | 32313190d6 | |
Andrius Štikonas | e08815f4a9 | |
Andrius Štikonas | f023bb6674 | |
Andrius Štikonas | a973be6553 | |
Andrius Štikonas | 8d91fdab0b | |
Andrius Štikonas | 063da467f3 | |
Andrius Štikonas | 6e7c62775b | |
Andrius Štikonas | ad48c72af8 | |
Andrius Štikonas | 6ab1e3aa13 | |
Andrius Štikonas | 26bc8be472 | |
Andrius Štikonas | 51f4a2da04 | |
l10n daemon script | fff8a8ccb4 | |
l10n daemon script | 49edfe66ab | |
Andrius Štikonas | 62e330b0f9 | |
Andrius Štikonas | 89dcf7855c | |
Andrius Štikonas | 0b77294e3d | |
Andrius Štikonas | c3c5fd8837 | |
l10n daemon script | 289966f66b | |
l10n daemon script | aec80851bb | |
l10n daemon script | 5e8adae33d | |
l10n daemon script | d8431d5109 | |
Andrius Štikonas | 72c72d2cab | |
l10n daemon script | 4a77a319e3 | |
l10n daemon script | 56c8a84c75 | |
l10n daemon script | 2ad0b3cf1a | |
l10n daemon script | 17591321d2 | |
l10n daemon script | ce1d5b5258 | |
l10n daemon script | e3ba1be183 | |
l10n daemon script | e793602823 | |
Andrius Štikonas | 77354e4599 | |
l10n daemon script | a88f49c59b | |
l10n daemon script | e248cfcf16 | |
l10n daemon script | 0183d07911 | |
l10n daemon script | 510f1f80af | |
l10n daemon script | 589221012e | |
l10n daemon script | d05914c50b | |
l10n daemon script | 55e95e719a | |
Thiago Sueto | 2c7306dc98 | |
Andrius Štikonas | d0bfbd2d4b | |
l10n daemon script | 50f0827df6 | |
Andrius Štikonas | 4106ed78fd | |
Andrius Štikonas | ae711eb12b | |
l10n daemon script | 72cdc794df | |
l10n daemon script | c85809b372 | |
Andrius Štikonas | 386a6888d5 | |
l10n daemon script | 702c4ffd27 | |
Yuri Chornoivan | dcc665cc27 | |
l10n daemon script | 551b53ea9c | |
Yuri Chornoivan | 6ab0d56bbc | |
Andrius Štikonas | 910de2a772 | |
Andrius Štikonas | dd0df390da | |
Nate Graham | 68d8c34535 | |
Caio Jordão Carvalho | a0ce2ecbbe | |
l10n daemon script | a8cc4a448d | |
l10n daemon script | 36a38057fa | |
l10n daemon script | eca2be8f0e | |
Shubham Jangra | 7c8e8f18e5 | |
l10n daemon script | a558641bf6 | |
Andrius Štikonas | 7297efe2da |
|
@ -1,4 +0,0 @@
|
||||||
{
|
|
||||||
"phabricator.uri" : "https://phabricator.kde.org/",
|
|
||||||
"project.name" : "KDE Partition Manager"
|
|
||||||
}
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
# SPDX-FileCopyrightText: none
|
||||||
|
# SPDX-License-Identifier: CC0-1.0
|
||||||
|
|
||||||
|
build
|
||||||
|
.kdev4/
|
||||||
|
partitionmanager.kdev4
|
|
@ -0,0 +1,7 @@
|
||||||
|
# SPDX-FileCopyrightText: None
|
||||||
|
# SPDX-License-Identifier: CC0-1.0
|
||||||
|
|
||||||
|
include:
|
||||||
|
- https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/linux-qt6.yml
|
||||||
|
- https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/linux.yml
|
||||||
|
- https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/freebsd.yml
|
|
@ -0,0 +1,19 @@
|
||||||
|
# SPDX-FileCopyrightText: None
|
||||||
|
# SPDX-License-Identifier: CC0-1.0
|
||||||
|
|
||||||
|
Dependencies:
|
||||||
|
- 'on': ['@all']
|
||||||
|
'require':
|
||||||
|
'frameworks/extra-cmake-modules': '@stable'
|
||||||
|
'frameworks/kconfig': '@stable'
|
||||||
|
'frameworks/kconfigwidgets': '@stable'
|
||||||
|
'frameworks/kcoreaddons': '@stable'
|
||||||
|
'frameworks/kcrash': '@stable'
|
||||||
|
'frameworks/kdbusaddons': '@stable'
|
||||||
|
'frameworks/kdoctools': '@stable'
|
||||||
|
'frameworks/ki18n': '@stable'
|
||||||
|
'frameworks/kio': '@stable'
|
||||||
|
'frameworks/kjobwidgets': '@stable'
|
||||||
|
'frameworks/kwidgetaddons': '@stable'
|
||||||
|
'frameworks/kxmlgui': '@stable'
|
||||||
|
'system/kpmcore': '@same'
|
|
@ -0,0 +1,32 @@
|
||||||
|
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||||
|
Upstream-Name: KDE Partition Manager
|
||||||
|
Source: https://invent.kde.org/system/partitionmanager
|
||||||
|
|
||||||
|
### Translations
|
||||||
|
Files: po/*.po
|
||||||
|
License: GPL-3.0-or-later
|
||||||
|
Copyright: 2020 KDE translators
|
||||||
|
|
||||||
|
# .desktop file
|
||||||
|
FILES: src/org.kde.partitionmanager.desktop
|
||||||
|
License: GPL-3.0-or-later
|
||||||
|
Copyright: 2008 Volker Lanz <vl@fidra.de>
|
||||||
|
Copyright: 2017 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
|
Copyright: 2020 KDE translators
|
||||||
|
|
||||||
|
### DBus interface
|
||||||
|
Files: src/org.kde.partitionmanager.xml
|
||||||
|
License: MIT
|
||||||
|
Copyright: 2010 Volker Lanz <vl@fidra.de>
|
||||||
|
Copyright: 2017 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
|
|
||||||
|
### Documentation
|
||||||
|
Files: doc/*.docbook
|
||||||
|
License: GFDL-1.2-or-later
|
||||||
|
Copyright: 2008-2016 KDE Burkhard Lück <lueck@hube-lueck.de>
|
||||||
|
Copyright: 2008 Volker Lanz <vl@fidra.de>
|
||||||
|
|
||||||
|
### Screenshots
|
||||||
|
Files: doc/*.png
|
||||||
|
License: CC-BY-4.0 or GFDL-1.2-or-later
|
||||||
|
Copyright: 2016 KDE Burkhard Lück <lueck@hube-lueck.de>
|
300
CHANGELOG.md
300
CHANGELOG.md
|
@ -1,300 +0,0 @@
|
||||||
1.0.60 (1.1alpha1, 2010-xx-xx)
|
|
||||||
==============================
|
|
||||||
|
|
||||||
Features added since the last feature release include:
|
|
||||||
------------------------------------------------------
|
|
||||||
|
|
||||||
* Mount point management
|
|
||||||
|
|
||||||
* Support for new "sector based" alignment (vs. the traditional cylinder based
|
|
||||||
alignment) required for compatibility with newer disks (where the phyisical
|
|
||||||
sector size is 4096 bytes)
|
|
||||||
|
|
||||||
* SMART status reports
|
|
||||||
|
|
||||||
* Support new file systems: BTRFS, HPFS, LUKS, OCFS2 and ZFS
|
|
||||||
|
|
||||||
* Support GPT partition tables.
|
|
||||||
|
|
||||||
* Support for setting volume labels on FAT16 and FAT32 file systems
|
|
||||||
|
|
||||||
* Export and import a partition table in a human readable and editable format
|
|
||||||
similar, but for technical reasons not identical, to sfdisk's.
|
|
||||||
|
|
||||||
* Support for backend plugins that do the heavy lifting. The first (and for now
|
|
||||||
only) implementation is libparted-based.
|
|
||||||
|
|
||||||
* New operation: Shredding (i.e., securely deleting) a partition
|
|
||||||
|
|
||||||
* A configuration dialog including settings for:
|
|
||||||
|
|
||||||
* File system colors
|
|
||||||
|
|
||||||
* The default file system for new partitions
|
|
||||||
|
|
||||||
* Applying operations as non-root
|
|
||||||
|
|
||||||
* Setting the log level for the log output dock.
|
|
||||||
|
|
||||||
* The backend plugin to use
|
|
||||||
|
|
||||||
* How to shred: Overwrite with zeros (faster) or random data (slower, but
|
|
||||||
more secure)
|
|
||||||
|
|
||||||
* Allow editing start and end sectors in size dialogs in a new "advanced"
|
|
||||||
dialog section.
|
|
||||||
|
|
||||||
* Instantly align partition start and end in size dialogs if partition
|
|
||||||
alignment is on.
|
|
||||||
|
|
||||||
* Show a progress dialog when scanning for devices.
|
|
||||||
|
|
||||||
* A device properties dialog.
|
|
||||||
|
|
||||||
|
|
||||||
Additional changes:
|
|
||||||
-------------------
|
|
||||||
|
|
||||||
* Allow the Information dock widget to be docked at the top of bottom
|
|
||||||
|
|
||||||
* The partition list view now has more information available in additional
|
|
||||||
columns. The user can sort the columns and turn individual columns on and off.
|
|
||||||
|
|
||||||
* Use the icon suggested by KDE's Solid backend in the Devices list.
|
|
||||||
|
|
||||||
* Always select the first device on program start.
|
|
||||||
|
|
||||||
* Use KDE's KIO for file transfer where possible.
|
|
||||||
|
|
||||||
* Performance improvements in the dialog to change a partition's size.
|
|
||||||
|
|
||||||
* The KPart and KCM have been removed.
|
|
||||||
|
|
||||||
* Allow hiding/showing the menu bar.
|
|
||||||
|
|
||||||
* Add a context menu to the log output with entries to save or clear the log.
|
|
||||||
|
|
||||||
* GUI support for devices with more than 2^31 sectors.
|
|
||||||
|
|
||||||
* Format sector and size values according to KDE settings for number formatting
|
|
||||||
in New Partition, Resize and Insert dialogs.
|
|
||||||
|
|
||||||
* Allow fractional sizes in New Partition, Resize and Insert dialogs.
|
|
||||||
|
|
||||||
|
|
||||||
1.0.2 (2010-04-23)
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Copy a file system's UUID to the copied file system when creating a file
|
|
||||||
system from another one.
|
|
||||||
|
|
||||||
* Implement a workaround for a libparted bug that makes it sometimes fail to
|
|
||||||
commit changes to the OS in versions earlier than 2.2.
|
|
||||||
|
|
||||||
* Update the partition's file system and re-check for constraints if the
|
|
||||||
partition's role is changed in the "Create New Partition" dialog. This fixes
|
|
||||||
a bug where the user was not able to grow an extended partition if he'd
|
|
||||||
previously selected a file system that cannot grow beyond a certain size.
|
|
||||||
|
|
||||||
* Always use the correct icons in modified ok/cancel buttons in dialogs and
|
|
||||||
message boxes
|
|
||||||
|
|
||||||
* Fix a crash when operations to create, resize and delete an extended
|
|
||||||
partitions where incorrectly merged into one (bug 232092)
|
|
||||||
|
|
||||||
|
|
||||||
1.0.1 (2010-01-09)
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Fix a bug that made it impossible to activate or deactivate a swap file
|
|
||||||
system.
|
|
||||||
|
|
||||||
* Correctly handle linux swap even with newer parted versions.
|
|
||||||
|
|
||||||
* Ask for an administrator's password on startup so that non-KDE users can run
|
|
||||||
the application from their launcher.
|
|
||||||
|
|
||||||
* Use the "blkid" command as an alternative to "vol_id" if the latter is
|
|
||||||
unavailable.
|
|
||||||
|
|
||||||
* Do not crash when using the Oxygen style under KDE SC 4.4.
|
|
||||||
|
|
||||||
* Do not crash when the user clicks in the partition widget with newer
|
|
||||||
g++ versions.
|
|
||||||
|
|
||||||
* Sort devices by name after scanning.
|
|
||||||
|
|
||||||
* Don't disable updates for the partition widget while applying operations.
|
|
||||||
This leads to corrupted graphics unter Qt4.6.
|
|
||||||
|
|
||||||
* Work around a LibParted segmentation fault when the Linux Device Mapper is
|
|
||||||
used and /dev/mapper has non-existing entries.
|
|
||||||
|
|
||||||
* The above also works around a LibParted problem when the BIOS has a floppy
|
|
||||||
drive configured but none is actually present.
|
|
||||||
|
|
||||||
* Set item height in the partition and devices lists to 32 pixel to make them
|
|
||||||
look less condensed.
|
|
||||||
|
|
||||||
1.0.0 (2009-08-17)
|
|
||||||
==================
|
|
||||||
|
|
||||||
None.
|
|
||||||
|
|
||||||
1.0.0-RC1 (2009-08-03)
|
|
||||||
======================
|
|
||||||
|
|
||||||
* Correctly handle ext4 file systems even with patched parted 1.8.8 (and
|
|
||||||
hopefully 1.8.9 too). Patch by Fatih Asici <fatih@pardus.org.tr>. (bug
|
|
||||||
#195243)
|
|
||||||
|
|
||||||
* Clear the partition flags for a copied partition in the preview. (bug
|
|
||||||
#202346)
|
|
||||||
|
|
||||||
* Write the new start sector to the partition's boot sector if an NTFS file
|
|
||||||
system was moved or copied. (bug #202329)
|
|
||||||
|
|
||||||
|
|
||||||
1.0.0-BETA3 (2009-06-04)
|
|
||||||
========================
|
|
||||||
|
|
||||||
* Set the default file system in the New-Partition-dialog, don't just rely on
|
|
||||||
it being the first one in the list.
|
|
||||||
|
|
||||||
* Sort items in file system combo boxes case-insensitively.
|
|
||||||
|
|
||||||
* Fix a bug where the total free space available could get smaller and smaller
|
|
||||||
when moving an existing partition in a dialog.
|
|
||||||
|
|
||||||
* Fix a bug that the progress information wasn't set as window title for the
|
|
||||||
top level application window.
|
|
||||||
|
|
||||||
* Speed up copying file systems (and thus moving, resizing and copying).
|
|
||||||
|
|
||||||
* Add some basic timing output to the detailed report for copying file systems.
|
|
||||||
|
|
||||||
* Find a file system's mount point even if it is identified by label in fstab.
|
|
||||||
|
|
||||||
* Add support for reading file system labels from FAT16 and FAT32.
|
|
||||||
|
|
||||||
* Fix a bug where the volume label for a linuxswap file system was lost when
|
|
||||||
resizing it.
|
|
||||||
|
|
||||||
* Make sure all interesting information shown in labels anywhere in the
|
|
||||||
application is user-selectable with the mouse.
|
|
||||||
|
|
||||||
* Display the UUID for most file systems that support it.
|
|
||||||
|
|
||||||
* Always show the current file system in the partition properties dialog's file
|
|
||||||
system combo box, even if it cannot be created, is too big or too small.
|
|
||||||
|
|
||||||
|
|
||||||
1.0.0-BETA2 (2009-04-30)
|
|
||||||
========================
|
|
||||||
|
|
||||||
* Add an application icon contributed by David Miller.
|
|
||||||
|
|
||||||
* Allow setting the file system label in the dialog when creating a new partition.
|
|
||||||
|
|
||||||
* Add a context menu to operation list.
|
|
||||||
|
|
||||||
* Use a shell script to run partition manager as a child of hal-lock. This
|
|
||||||
should in theory (and according to the hal-lock manpage) avoid notifications
|
|
||||||
for new devices, but doesn't seem to work that well.
|
|
||||||
|
|
||||||
* Fix a bug that would keep the user from deleting a newly created logical
|
|
||||||
partition because the application thought there were higher-numbered
|
|
||||||
partitions still mounted.
|
|
||||||
|
|
||||||
* Add a kcm for KDE Partition Manager. If this is built and installed or not
|
|
||||||
can be (like it already is the case with the KPart) configured via cmake.
|
|
||||||
|
|
||||||
|
|
||||||
1.0.0-BETA1 (2009-01-13)
|
|
||||||
========================
|
|
||||||
|
|
||||||
* Fix a potential crash when merging a New Operation and a Create File System
|
|
||||||
Operation.
|
|
||||||
|
|
||||||
* Set extended partitions as busy as long as logical partitions inside them
|
|
||||||
are mounted.
|
|
||||||
|
|
||||||
* Don't silently succeed when unmounting a partition that cannot in fact be
|
|
||||||
unmounted because it has no mount points.
|
|
||||||
|
|
||||||
* Prevent creating a new partition table on a device with mounted partitions.
|
|
||||||
|
|
||||||
* Add tooltips to partition widgets.
|
|
||||||
|
|
||||||
* Don't show cd/dvd readers or writers as devices even if libparted reports
|
|
||||||
them.
|
|
||||||
|
|
||||||
* Add support for ext4.
|
|
||||||
|
|
||||||
* Fix calculation of reserved/free blocks for ext2/3/4.
|
|
||||||
|
|
||||||
* Output reason why a mount or unmount might have failed.
|
|
||||||
|
|
||||||
* Fix minimum width for extended partitions in the partition table widget.
|
|
||||||
|
|
||||||
* Fix a bug where a partition table just created would not disappear when the
|
|
||||||
operation to create it was undone.
|
|
||||||
|
|
||||||
* Don't allow creating partitions smaller than the device's cylinder size.
|
|
||||||
|
|
||||||
* Fix an error that could lead to some space (a few megabytes) between two
|
|
||||||
partitions being wasted.
|
|
||||||
|
|
||||||
|
|
||||||
1.0.0-ALPHA2 (2008-09-24)
|
|
||||||
=========================
|
|
||||||
|
|
||||||
* Add and install a .desktop file.
|
|
||||||
|
|
||||||
* Don't allow the user to close the main window while operations are being
|
|
||||||
applied.
|
|
||||||
|
|
||||||
* Handle activating and deactivating swap. Also, swap does have labels.
|
|
||||||
|
|
||||||
* Don't try to print a mount point in the partition properties dialog if there
|
|
||||||
is none.
|
|
||||||
|
|
||||||
* Show partition table type name and used/max primary partitions in the info
|
|
||||||
pane.
|
|
||||||
|
|
||||||
* All disk label types but msdos are read only for now, until the support
|
|
||||||
situation for them improves.
|
|
||||||
|
|
||||||
* Set default value for maximum number of primaries from 255 to 4.
|
|
||||||
|
|
||||||
* Actually set the correct disk label type before applying the operation to
|
|
||||||
create a new disk label.
|
|
||||||
|
|
||||||
* Don't update the partition table widget while operations are being applied.
|
|
||||||
This fixes a race condition that would potentially crash the application when
|
|
||||||
applying operations.
|
|
||||||
|
|
||||||
* Update devices in the GUI after creating a new disk label or undoing
|
|
||||||
operations.
|
|
||||||
|
|
||||||
* Set the operation state of all operations to StateNone when temporarily
|
|
||||||
undoing them right before starting the thread to apply them. This fixes a
|
|
||||||
crash when an operation fails and the remaining ones are undone twice.
|
|
||||||
|
|
||||||
* Update bug report address and homepage in the aboutdata.
|
|
||||||
|
|
||||||
* Unblock SIGCHLD in main so Kubuntu's kdesudo can run the application as root.
|
|
||||||
|
|
||||||
* If udevadm settle fails, try to call udevsettle to better support older
|
|
||||||
systems.
|
|
||||||
|
|
||||||
* Fix the minimum size calculations for partition widgets.
|
|
||||||
|
|
||||||
* Add some doxygen documentation.
|
|
||||||
|
|
||||||
|
|
||||||
1.0.0-ALPHA1 (2008-09-18)
|
|
||||||
=========================
|
|
||||||
|
|
||||||
* First public release
|
|
||||||
|
|
|
@ -1,41 +1,26 @@
|
||||||
# Copyright (C) 2008 by Volker Lanz <vl@fidra.de>
|
# SPDX-FileCopyrightText: 2008 Volker Lanz <vl@fidra.de>
|
||||||
# Copyright (C) 2014-2019 by Andrius Štikonas <andrius@stikonas.eu>
|
# SPDX-FileCopyrightText: 2014-2022 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
#
|
|
||||||
# This program is free software; you can redistribute it and/or
|
|
||||||
# modify it under the terms of the GNU General Public License as
|
|
||||||
# published by the Free Software Foundation; either version 3 of
|
|
||||||
# the License, or (at your option) any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
project(partitionmanager)
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.1 FATAL_ERROR)
|
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
|
||||||
|
|
||||||
|
# KDE Application Version, managed by release script
|
||||||
|
set (RELEASE_SERVICE_VERSION_MAJOR "22")
|
||||||
|
set (RELEASE_SERVICE_VERSION_MINOR "03")
|
||||||
|
set (RELEASE_SERVICE_VERSION_MICRO "70")
|
||||||
|
set (RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}")
|
||||||
|
project(partitionmanager VERSION ${RELEASE_SERVICE_VERSION})
|
||||||
|
|
||||||
# Dependencies
|
# Dependencies
|
||||||
set(QT_MIN_VERSION "5.10.0")
|
set(QT_MIN_VERSION "5.15.0")
|
||||||
set(KF5_MIN_VERSION "5.56")
|
set(KF5_MIN_VERSION "5.90")
|
||||||
set(KPMCORE_MIN_VERSION "4.0.0")
|
set(KPMCORE_MIN_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}")
|
||||||
|
|
||||||
|
set(KDE_COMPILERSETTINGS_LEVEL "5.85")
|
||||||
|
|
||||||
set(CMAKE_USE_RELATIVE_PATHS OFF)
|
set(CMAKE_USE_RELATIVE_PATHS OFF)
|
||||||
set(CMAKE_BUILD_WITH_INSTALL_RPATH ON)
|
set(CMAKE_BUILD_WITH_INSTALL_RPATH ON)
|
||||||
set(KDE_INSTALL_USE_QT_SYS_PATHS ON CACHE BOOL "Install mkspecs files, Plugins and Imports to the Qt 5 install dir" FORCE)
|
|
||||||
|
|
||||||
# Check KPMcore dependency when bumping
|
|
||||||
set(VERSION_MAJOR "4")
|
|
||||||
set(VERSION_MINOR "0")
|
|
||||||
set(VERSION_RELEASE "0")
|
|
||||||
set(VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_RELEASE})
|
|
||||||
add_definitions(-D'VERSION="${VERSION}"') #"
|
|
||||||
|
|
||||||
set(CMAKE_CXX_STANDARD 14)
|
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
||||||
|
|
||||||
find_package(ECM ${KF5_MIN_VERSION} REQUIRED NO_MODULE)
|
find_package(ECM ${KF5_MIN_VERSION} REQUIRED NO_MODULE)
|
||||||
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_MODULE_PATH})
|
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_MODULE_PATH})
|
||||||
|
@ -47,7 +32,11 @@ include(KDECompilerSettings NO_POLICY_SCOPE)
|
||||||
include(FeatureSummary)
|
include(FeatureSummary)
|
||||||
include(GenerateExportHeader)
|
include(GenerateExportHeader)
|
||||||
|
|
||||||
find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
|
if (NOT QT_MAJOR_VERSION)
|
||||||
|
set(QT_MAJOR_VERSION "5")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
find_package(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
|
||||||
Core
|
Core
|
||||||
Gui
|
Gui
|
||||||
Widgets
|
Widgets
|
||||||
|
@ -62,41 +51,29 @@ find_package(KF5 ${KF5_MIN_VERSION} REQUIRED
|
||||||
Crash
|
Crash
|
||||||
DBusAddons
|
DBusAddons
|
||||||
I18n
|
I18n
|
||||||
IconThemes
|
|
||||||
JobWidgets
|
JobWidgets
|
||||||
KIO
|
KIO
|
||||||
XmlGui
|
|
||||||
WidgetsAddons
|
WidgetsAddons
|
||||||
|
XmlGui
|
||||||
OPTIONAL_COMPONENTS
|
OPTIONAL_COMPONENTS
|
||||||
DocTools
|
DocTools
|
||||||
)
|
)
|
||||||
|
|
||||||
# use sane compile flags
|
find_package(PolkitQt${QT_MAJOR_VERSION}-1 REQUIRED)
|
||||||
add_definitions(
|
|
||||||
-DQT_USE_QSTRINGBUILDER
|
add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050f00)
|
||||||
-DQT_NO_CAST_TO_ASCII
|
|
||||||
-DQT_NO_CAST_FROM_ASCII
|
|
||||||
-DQT_STRICT_ITERATORS
|
|
||||||
-DQT_NO_URL_CAST_FROM_STRING
|
|
||||||
-DQT_NO_CAST_FROM_BYTEARRAY
|
|
||||||
-DQT_NO_CAST_TO_BYTEARRAY
|
|
||||||
-DQT_NO_SIGNALS_SLOTS_KEYWORDS
|
|
||||||
-DQT_USE_FAST_OPERATOR_PLUS
|
|
||||||
-DQT_DISABLE_DEPRECATED_BEFORE=0x050900
|
|
||||||
)
|
|
||||||
|
|
||||||
find_package(KPMcore ${KPMCORE_MIN_VERSION} REQUIRED)
|
find_package(KPMcore ${KPMCORE_MIN_VERSION} REQUIRED)
|
||||||
|
|
||||||
include_directories(${Qt5Core_INCLUDE_DIRS} ${UUID_INCLUDE_DIRS} ${BLKID_INCLUDE_DIRS} ${KPMCORE_INCLUDE_DIR} lib/ src/)
|
|
||||||
|
|
||||||
add_subdirectory(src)
|
add_subdirectory(src)
|
||||||
add_subdirectory(icons)
|
add_subdirectory(icons)
|
||||||
if (KF5DocTools_FOUND)
|
if (KF5DocTools_FOUND)
|
||||||
add_subdirectory(doc)
|
add_subdirectory(doc)
|
||||||
|
kdoctools_install(po)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
ki18n_install(po)
|
ki18n_install(po)
|
||||||
|
|
||||||
message(STATUS "KDE Partition Manager ${VERSION} will be built for install into ${CMAKE_INSTALL_PREFIX}")
|
message(STATUS "KDE Partition Manager ${RELEASE_SERVICE_VERSION} will be built for install into ${CMAKE_INSTALL_PREFIX}")
|
||||||
|
|
||||||
feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)
|
feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)
|
||||||
|
|
675
COPYING.md
675
COPYING.md
|
@ -1,675 +0,0 @@
|
||||||
### GNU GENERAL PUBLIC LICENSE
|
|
||||||
|
|
||||||
Version 3, 29 June 2007
|
|
||||||
|
|
||||||
Copyright (C) 2007 Free Software Foundation, Inc.
|
|
||||||
<https://fsf.org/>
|
|
||||||
|
|
||||||
Everyone is permitted to copy and distribute verbatim copies of this
|
|
||||||
license document, but changing it is not allowed.
|
|
||||||
|
|
||||||
### Preamble
|
|
||||||
|
|
||||||
The GNU General Public License is a free, copyleft license for
|
|
||||||
software and other kinds of works.
|
|
||||||
|
|
||||||
The licenses for most software and other practical works are designed
|
|
||||||
to take away your freedom to share and change the works. By contrast,
|
|
||||||
the GNU General Public License is intended to guarantee your freedom
|
|
||||||
to share and change all versions of a program--to make sure it remains
|
|
||||||
free software for all its users. We, the Free Software Foundation, use
|
|
||||||
the GNU General Public License for most of our software; it applies
|
|
||||||
also to any other work released this way by its authors. You can apply
|
|
||||||
it to your programs, too.
|
|
||||||
|
|
||||||
When we speak of free software, we are referring to freedom, not
|
|
||||||
price. Our General Public Licenses are designed to make sure that you
|
|
||||||
have the freedom to distribute copies of free software (and charge for
|
|
||||||
them if you wish), that you receive source code or can get it if you
|
|
||||||
want it, that you can change the software or use pieces of it in new
|
|
||||||
free programs, and that you know you can do these things.
|
|
||||||
|
|
||||||
To protect your rights, we need to prevent others from denying you
|
|
||||||
these rights or asking you to surrender the rights. Therefore, you
|
|
||||||
have certain responsibilities if you distribute copies of the
|
|
||||||
software, or if you modify it: responsibilities to respect the freedom
|
|
||||||
of others.
|
|
||||||
|
|
||||||
For example, if you distribute copies of such a program, whether
|
|
||||||
gratis or for a fee, you must pass on to the recipients the same
|
|
||||||
freedoms that you received. You must make sure that they, too, receive
|
|
||||||
or can get the source code. And you must show them these terms so they
|
|
||||||
know their rights.
|
|
||||||
|
|
||||||
Developers that use the GNU GPL protect your rights with two steps:
|
|
||||||
(1) assert copyright on the software, and (2) offer you this License
|
|
||||||
giving you legal permission to copy, distribute and/or modify it.
|
|
||||||
|
|
||||||
For the developers' and authors' protection, the GPL clearly explains
|
|
||||||
that there is no warranty for this free software. For both users' and
|
|
||||||
authors' sake, the GPL requires that modified versions be marked as
|
|
||||||
changed, so that their problems will not be attributed erroneously to
|
|
||||||
authors of previous versions.
|
|
||||||
|
|
||||||
Some devices are designed to deny users access to install or run
|
|
||||||
modified versions of the software inside them, although the
|
|
||||||
manufacturer can do so. This is fundamentally incompatible with the
|
|
||||||
aim of protecting users' freedom to change the software. The
|
|
||||||
systematic pattern of such abuse occurs in the area of products for
|
|
||||||
individuals to use, which is precisely where it is most unacceptable.
|
|
||||||
Therefore, we have designed this version of the GPL to prohibit the
|
|
||||||
practice for those products. If such problems arise substantially in
|
|
||||||
other domains, we stand ready to extend this provision to those
|
|
||||||
domains in future versions of the GPL, as needed to protect the
|
|
||||||
freedom of users.
|
|
||||||
|
|
||||||
Finally, every program is threatened constantly by software patents.
|
|
||||||
States should not allow patents to restrict development and use of
|
|
||||||
software on general-purpose computers, but in those that do, we wish
|
|
||||||
to avoid the special danger that patents applied to a free program
|
|
||||||
could make it effectively proprietary. To prevent this, the GPL
|
|
||||||
assures that patents cannot be used to render the program non-free.
|
|
||||||
|
|
||||||
The precise terms and conditions for copying, distribution and
|
|
||||||
modification follow.
|
|
||||||
|
|
||||||
### TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
#### 0. Definitions.
|
|
||||||
|
|
||||||
"This License" refers to version 3 of the GNU General Public License.
|
|
||||||
|
|
||||||
"Copyright" also means copyright-like laws that apply to other kinds
|
|
||||||
of works, such as semiconductor masks.
|
|
||||||
|
|
||||||
"The Program" refers to any copyrightable work licensed under this
|
|
||||||
License. Each licensee is addressed as "you". "Licensees" and
|
|
||||||
"recipients" may be individuals or organizations.
|
|
||||||
|
|
||||||
To "modify" a work means to copy from or adapt all or part of the work
|
|
||||||
in a fashion requiring copyright permission, other than the making of
|
|
||||||
an exact copy. The resulting work is called a "modified version" of
|
|
||||||
the earlier work or a work "based on" the earlier work.
|
|
||||||
|
|
||||||
A "covered work" means either the unmodified Program or a work based
|
|
||||||
on the Program.
|
|
||||||
|
|
||||||
To "propagate" a work means to do anything with it that, without
|
|
||||||
permission, would make you directly or secondarily liable for
|
|
||||||
infringement under applicable copyright law, except executing it on a
|
|
||||||
computer or modifying a private copy. Propagation includes copying,
|
|
||||||
distribution (with or without modification), making available to the
|
|
||||||
public, and in some countries other activities as well.
|
|
||||||
|
|
||||||
To "convey" a work means any kind of propagation that enables other
|
|
||||||
parties to make or receive copies. Mere interaction with a user
|
|
||||||
through a computer network, with no transfer of a copy, is not
|
|
||||||
conveying.
|
|
||||||
|
|
||||||
An interactive user interface displays "Appropriate Legal Notices" to
|
|
||||||
the extent that it includes a convenient and prominently visible
|
|
||||||
feature that (1) displays an appropriate copyright notice, and (2)
|
|
||||||
tells the user that there is no warranty for the work (except to the
|
|
||||||
extent that warranties are provided), that licensees may convey the
|
|
||||||
work under this License, and how to view a copy of this License. If
|
|
||||||
the interface presents a list of user commands or options, such as a
|
|
||||||
menu, a prominent item in the list meets this criterion.
|
|
||||||
|
|
||||||
#### 1. Source Code.
|
|
||||||
|
|
||||||
The "source code" for a work means the preferred form of the work for
|
|
||||||
making modifications to it. "Object code" means any non-source form of
|
|
||||||
a work.
|
|
||||||
|
|
||||||
A "Standard Interface" means an interface that either is an official
|
|
||||||
standard defined by a recognized standards body, or, in the case of
|
|
||||||
interfaces specified for a particular programming language, one that
|
|
||||||
is widely used among developers working in that language.
|
|
||||||
|
|
||||||
The "System Libraries" of an executable work include anything, other
|
|
||||||
than the work as a whole, that (a) is included in the normal form of
|
|
||||||
packaging a Major Component, but which is not part of that Major
|
|
||||||
Component, and (b) serves only to enable use of the work with that
|
|
||||||
Major Component, or to implement a Standard Interface for which an
|
|
||||||
implementation is available to the public in source code form. A
|
|
||||||
"Major Component", in this context, means a major essential component
|
|
||||||
(kernel, window system, and so on) of the specific operating system
|
|
||||||
(if any) on which the executable work runs, or a compiler used to
|
|
||||||
produce the work, or an object code interpreter used to run it.
|
|
||||||
|
|
||||||
The "Corresponding Source" for a work in object code form means all
|
|
||||||
the source code needed to generate, install, and (for an executable
|
|
||||||
work) run the object code and to modify the work, including scripts to
|
|
||||||
control those activities. However, it does not include the work's
|
|
||||||
System Libraries, or general-purpose tools or generally available free
|
|
||||||
programs which are used unmodified in performing those activities but
|
|
||||||
which are not part of the work. For example, Corresponding Source
|
|
||||||
includes interface definition files associated with source files for
|
|
||||||
the work, and the source code for shared libraries and dynamically
|
|
||||||
linked subprograms that the work is specifically designed to require,
|
|
||||||
such as by intimate data communication or control flow between those
|
|
||||||
subprograms and other parts of the work.
|
|
||||||
|
|
||||||
The Corresponding Source need not include anything that users can
|
|
||||||
regenerate automatically from other parts of the Corresponding Source.
|
|
||||||
|
|
||||||
The Corresponding Source for a work in source code form is that same
|
|
||||||
work.
|
|
||||||
|
|
||||||
#### 2. Basic Permissions.
|
|
||||||
|
|
||||||
All rights granted under this License are granted for the term of
|
|
||||||
copyright on the Program, and are irrevocable provided the stated
|
|
||||||
conditions are met. This License explicitly affirms your unlimited
|
|
||||||
permission to run the unmodified Program. The output from running a
|
|
||||||
covered work is covered by this License only if the output, given its
|
|
||||||
content, constitutes a covered work. This License acknowledges your
|
|
||||||
rights of fair use or other equivalent, as provided by copyright law.
|
|
||||||
|
|
||||||
You may make, run and propagate covered works that you do not convey,
|
|
||||||
without conditions so long as your license otherwise remains in force.
|
|
||||||
You may convey covered works to others for the sole purpose of having
|
|
||||||
them make modifications exclusively for you, or provide you with
|
|
||||||
facilities for running those works, provided that you comply with the
|
|
||||||
terms of this License in conveying all material for which you do not
|
|
||||||
control copyright. Those thus making or running the covered works for
|
|
||||||
you must do so exclusively on your behalf, under your direction and
|
|
||||||
control, on terms that prohibit them from making any copies of your
|
|
||||||
copyrighted material outside their relationship with you.
|
|
||||||
|
|
||||||
Conveying under any other circumstances is permitted solely under the
|
|
||||||
conditions stated below. Sublicensing is not allowed; section 10 makes
|
|
||||||
it unnecessary.
|
|
||||||
|
|
||||||
#### 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
|
||||||
|
|
||||||
No covered work shall be deemed part of an effective technological
|
|
||||||
measure under any applicable law fulfilling obligations under article
|
|
||||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
|
||||||
similar laws prohibiting or restricting circumvention of such
|
|
||||||
measures.
|
|
||||||
|
|
||||||
When you convey a covered work, you waive any legal power to forbid
|
|
||||||
circumvention of technological measures to the extent such
|
|
||||||
circumvention is effected by exercising rights under this License with
|
|
||||||
respect to the covered work, and you disclaim any intention to limit
|
|
||||||
operation or modification of the work as a means of enforcing, against
|
|
||||||
the work's users, your or third parties' legal rights to forbid
|
|
||||||
circumvention of technological measures.
|
|
||||||
|
|
||||||
#### 4. Conveying Verbatim Copies.
|
|
||||||
|
|
||||||
You may convey verbatim copies of the Program's source code as you
|
|
||||||
receive it, in any medium, provided that you conspicuously and
|
|
||||||
appropriately publish on each copy an appropriate copyright notice;
|
|
||||||
keep intact all notices stating that this License and any
|
|
||||||
non-permissive terms added in accord with section 7 apply to the code;
|
|
||||||
keep intact all notices of the absence of any warranty; and give all
|
|
||||||
recipients a copy of this License along with the Program.
|
|
||||||
|
|
||||||
You may charge any price or no price for each copy that you convey,
|
|
||||||
and you may offer support or warranty protection for a fee.
|
|
||||||
|
|
||||||
#### 5. Conveying Modified Source Versions.
|
|
||||||
|
|
||||||
You may convey a work based on the Program, or the modifications to
|
|
||||||
produce it from the Program, in the form of source code under the
|
|
||||||
terms of section 4, provided that you also meet all of these
|
|
||||||
conditions:
|
|
||||||
|
|
||||||
- a) The work must carry prominent notices stating that you modified
|
|
||||||
it, and giving a relevant date.
|
|
||||||
- b) The work must carry prominent notices stating that it is
|
|
||||||
released under this License and any conditions added under
|
|
||||||
section 7. This requirement modifies the requirement in section 4
|
|
||||||
to "keep intact all notices".
|
|
||||||
- c) You must license the entire work, as a whole, under this
|
|
||||||
License to anyone who comes into possession of a copy. This
|
|
||||||
License will therefore apply, along with any applicable section 7
|
|
||||||
additional terms, to the whole of the work, and all its parts,
|
|
||||||
regardless of how they are packaged. This License gives no
|
|
||||||
permission to license the work in any other way, but it does not
|
|
||||||
invalidate such permission if you have separately received it.
|
|
||||||
- d) If the work has interactive user interfaces, each must display
|
|
||||||
Appropriate Legal Notices; however, if the Program has interactive
|
|
||||||
interfaces that do not display Appropriate Legal Notices, your
|
|
||||||
work need not make them do so.
|
|
||||||
|
|
||||||
A compilation of a covered work with other separate and independent
|
|
||||||
works, which are not by their nature extensions of the covered work,
|
|
||||||
and which are not combined with it such as to form a larger program,
|
|
||||||
in or on a volume of a storage or distribution medium, is called an
|
|
||||||
"aggregate" if the compilation and its resulting copyright are not
|
|
||||||
used to limit the access or legal rights of the compilation's users
|
|
||||||
beyond what the individual works permit. Inclusion of a covered work
|
|
||||||
in an aggregate does not cause this License to apply to the other
|
|
||||||
parts of the aggregate.
|
|
||||||
|
|
||||||
#### 6. Conveying Non-Source Forms.
|
|
||||||
|
|
||||||
You may convey a covered work in object code form under the terms of
|
|
||||||
sections 4 and 5, provided that you also convey the machine-readable
|
|
||||||
Corresponding Source under the terms of this License, in one of these
|
|
||||||
ways:
|
|
||||||
|
|
||||||
- a) Convey the object code in, or embodied in, a physical product
|
|
||||||
(including a physical distribution medium), accompanied by the
|
|
||||||
Corresponding Source fixed on a durable physical medium
|
|
||||||
customarily used for software interchange.
|
|
||||||
- b) Convey the object code in, or embodied in, a physical product
|
|
||||||
(including a physical distribution medium), accompanied by a
|
|
||||||
written offer, valid for at least three years and valid for as
|
|
||||||
long as you offer spare parts or customer support for that product
|
|
||||||
model, to give anyone who possesses the object code either (1) a
|
|
||||||
copy of the Corresponding Source for all the software in the
|
|
||||||
product that is covered by this License, on a durable physical
|
|
||||||
medium customarily used for software interchange, for a price no
|
|
||||||
more than your reasonable cost of physically performing this
|
|
||||||
conveying of source, or (2) access to copy the Corresponding
|
|
||||||
Source from a network server at no charge.
|
|
||||||
- c) Convey individual copies of the object code with a copy of the
|
|
||||||
written offer to provide the Corresponding Source. This
|
|
||||||
alternative is allowed only occasionally and noncommercially, and
|
|
||||||
only if you received the object code with such an offer, in accord
|
|
||||||
with subsection 6b.
|
|
||||||
- d) Convey the object code by offering access from a designated
|
|
||||||
place (gratis or for a charge), and offer equivalent access to the
|
|
||||||
Corresponding Source in the same way through the same place at no
|
|
||||||
further charge. You need not require recipients to copy the
|
|
||||||
Corresponding Source along with the object code. If the place to
|
|
||||||
copy the object code is a network server, the Corresponding Source
|
|
||||||
may be on a different server (operated by you or a third party)
|
|
||||||
that supports equivalent copying facilities, provided you maintain
|
|
||||||
clear directions next to the object code saying where to find the
|
|
||||||
Corresponding Source. Regardless of what server hosts the
|
|
||||||
Corresponding Source, you remain obligated to ensure that it is
|
|
||||||
available for as long as needed to satisfy these requirements.
|
|
||||||
- e) Convey the object code using peer-to-peer transmission,
|
|
||||||
provided you inform other peers where the object code and
|
|
||||||
Corresponding Source of the work are being offered to the general
|
|
||||||
public at no charge under subsection 6d.
|
|
||||||
|
|
||||||
A separable portion of the object code, whose source code is excluded
|
|
||||||
from the Corresponding Source as a System Library, need not be
|
|
||||||
included in conveying the object code work.
|
|
||||||
|
|
||||||
A "User Product" is either (1) a "consumer product", which means any
|
|
||||||
tangible personal property which is normally used for personal,
|
|
||||||
family, or household purposes, or (2) anything designed or sold for
|
|
||||||
incorporation into a dwelling. In determining whether a product is a
|
|
||||||
consumer product, doubtful cases shall be resolved in favor of
|
|
||||||
coverage. For a particular product received by a particular user,
|
|
||||||
"normally used" refers to a typical or common use of that class of
|
|
||||||
product, regardless of the status of the particular user or of the way
|
|
||||||
in which the particular user actually uses, or expects or is expected
|
|
||||||
to use, the product. A product is a consumer product regardless of
|
|
||||||
whether the product has substantial commercial, industrial or
|
|
||||||
non-consumer uses, unless such uses represent the only significant
|
|
||||||
mode of use of the product.
|
|
||||||
|
|
||||||
"Installation Information" for a User Product means any methods,
|
|
||||||
procedures, authorization keys, or other information required to
|
|
||||||
install and execute modified versions of a covered work in that User
|
|
||||||
Product from a modified version of its Corresponding Source. The
|
|
||||||
information must suffice to ensure that the continued functioning of
|
|
||||||
the modified object code is in no case prevented or interfered with
|
|
||||||
solely because modification has been made.
|
|
||||||
|
|
||||||
If you convey an object code work under this section in, or with, or
|
|
||||||
specifically for use in, a User Product, and the conveying occurs as
|
|
||||||
part of a transaction in which the right of possession and use of the
|
|
||||||
User Product is transferred to the recipient in perpetuity or for a
|
|
||||||
fixed term (regardless of how the transaction is characterized), the
|
|
||||||
Corresponding Source conveyed under this section must be accompanied
|
|
||||||
by the Installation Information. But this requirement does not apply
|
|
||||||
if neither you nor any third party retains the ability to install
|
|
||||||
modified object code on the User Product (for example, the work has
|
|
||||||
been installed in ROM).
|
|
||||||
|
|
||||||
The requirement to provide Installation Information does not include a
|
|
||||||
requirement to continue to provide support service, warranty, or
|
|
||||||
updates for a work that has been modified or installed by the
|
|
||||||
recipient, or for the User Product in which it has been modified or
|
|
||||||
installed. Access to a network may be denied when the modification
|
|
||||||
itself materially and adversely affects the operation of the network
|
|
||||||
or violates the rules and protocols for communication across the
|
|
||||||
network.
|
|
||||||
|
|
||||||
Corresponding Source conveyed, and Installation Information provided,
|
|
||||||
in accord with this section must be in a format that is publicly
|
|
||||||
documented (and with an implementation available to the public in
|
|
||||||
source code form), and must require no special password or key for
|
|
||||||
unpacking, reading or copying.
|
|
||||||
|
|
||||||
#### 7. Additional Terms.
|
|
||||||
|
|
||||||
"Additional permissions" are terms that supplement the terms of this
|
|
||||||
License by making exceptions from one or more of its conditions.
|
|
||||||
Additional permissions that are applicable to the entire Program shall
|
|
||||||
be treated as though they were included in this License, to the extent
|
|
||||||
that they are valid under applicable law. If additional permissions
|
|
||||||
apply only to part of the Program, that part may be used separately
|
|
||||||
under those permissions, but the entire Program remains governed by
|
|
||||||
this License without regard to the additional permissions.
|
|
||||||
|
|
||||||
When you convey a copy of a covered work, you may at your option
|
|
||||||
remove any additional permissions from that copy, or from any part of
|
|
||||||
it. (Additional permissions may be written to require their own
|
|
||||||
removal in certain cases when you modify the work.) You may place
|
|
||||||
additional permissions on material, added by you to a covered work,
|
|
||||||
for which you have or can give appropriate copyright permission.
|
|
||||||
|
|
||||||
Notwithstanding any other provision of this License, for material you
|
|
||||||
add to a covered work, you may (if authorized by the copyright holders
|
|
||||||
of that material) supplement the terms of this License with terms:
|
|
||||||
|
|
||||||
- a) Disclaiming warranty or limiting liability differently from the
|
|
||||||
terms of sections 15 and 16 of this License; or
|
|
||||||
- b) Requiring preservation of specified reasonable legal notices or
|
|
||||||
author attributions in that material or in the Appropriate Legal
|
|
||||||
Notices displayed by works containing it; or
|
|
||||||
- c) Prohibiting misrepresentation of the origin of that material,
|
|
||||||
or requiring that modified versions of such material be marked in
|
|
||||||
reasonable ways as different from the original version; or
|
|
||||||
- d) Limiting the use for publicity purposes of names of licensors
|
|
||||||
or authors of the material; or
|
|
||||||
- e) Declining to grant rights under trademark law for use of some
|
|
||||||
trade names, trademarks, or service marks; or
|
|
||||||
- f) Requiring indemnification of licensors and authors of that
|
|
||||||
material by anyone who conveys the material (or modified versions
|
|
||||||
of it) with contractual assumptions of liability to the recipient,
|
|
||||||
for any liability that these contractual assumptions directly
|
|
||||||
impose on those licensors and authors.
|
|
||||||
|
|
||||||
All other non-permissive additional terms are considered "further
|
|
||||||
restrictions" within the meaning of section 10. If the Program as you
|
|
||||||
received it, or any part of it, contains a notice stating that it is
|
|
||||||
governed by this License along with a term that is a further
|
|
||||||
restriction, you may remove that term. If a license document contains
|
|
||||||
a further restriction but permits relicensing or conveying under this
|
|
||||||
License, you may add to a covered work material governed by the terms
|
|
||||||
of that license document, provided that the further restriction does
|
|
||||||
not survive such relicensing or conveying.
|
|
||||||
|
|
||||||
If you add terms to a covered work in accord with this section, you
|
|
||||||
must place, in the relevant source files, a statement of the
|
|
||||||
additional terms that apply to those files, or a notice indicating
|
|
||||||
where to find the applicable terms.
|
|
||||||
|
|
||||||
Additional terms, permissive or non-permissive, may be stated in the
|
|
||||||
form of a separately written license, or stated as exceptions; the
|
|
||||||
above requirements apply either way.
|
|
||||||
|
|
||||||
#### 8. Termination.
|
|
||||||
|
|
||||||
You may not propagate or modify a covered work except as expressly
|
|
||||||
provided under this License. Any attempt otherwise to propagate or
|
|
||||||
modify it is void, and will automatically terminate your rights under
|
|
||||||
this License (including any patent licenses granted under the third
|
|
||||||
paragraph of section 11).
|
|
||||||
|
|
||||||
However, if you cease all violation of this License, then your license
|
|
||||||
from a particular copyright holder is reinstated (a) provisionally,
|
|
||||||
unless and until the copyright holder explicitly and finally
|
|
||||||
terminates your license, and (b) permanently, if the copyright holder
|
|
||||||
fails to notify you of the violation by some reasonable means prior to
|
|
||||||
60 days after the cessation.
|
|
||||||
|
|
||||||
Moreover, your license from a particular copyright holder is
|
|
||||||
reinstated permanently if the copyright holder notifies you of the
|
|
||||||
violation by some reasonable means, this is the first time you have
|
|
||||||
received notice of violation of this License (for any work) from that
|
|
||||||
copyright holder, and you cure the violation prior to 30 days after
|
|
||||||
your receipt of the notice.
|
|
||||||
|
|
||||||
Termination of your rights under this section does not terminate the
|
|
||||||
licenses of parties who have received copies or rights from you under
|
|
||||||
this License. If your rights have been terminated and not permanently
|
|
||||||
reinstated, you do not qualify to receive new licenses for the same
|
|
||||||
material under section 10.
|
|
||||||
|
|
||||||
#### 9. Acceptance Not Required for Having Copies.
|
|
||||||
|
|
||||||
You are not required to accept this License in order to receive or run
|
|
||||||
a copy of the Program. Ancillary propagation of a covered work
|
|
||||||
occurring solely as a consequence of using peer-to-peer transmission
|
|
||||||
to receive a copy likewise does not require acceptance. However,
|
|
||||||
nothing other than this License grants you permission to propagate or
|
|
||||||
modify any covered work. These actions infringe copyright if you do
|
|
||||||
not accept this License. Therefore, by modifying or propagating a
|
|
||||||
covered work, you indicate your acceptance of this License to do so.
|
|
||||||
|
|
||||||
#### 10. Automatic Licensing of Downstream Recipients.
|
|
||||||
|
|
||||||
Each time you convey a covered work, the recipient automatically
|
|
||||||
receives a license from the original licensors, to run, modify and
|
|
||||||
propagate that work, subject to this License. You are not responsible
|
|
||||||
for enforcing compliance by third parties with this License.
|
|
||||||
|
|
||||||
An "entity transaction" is a transaction transferring control of an
|
|
||||||
organization, or substantially all assets of one, or subdividing an
|
|
||||||
organization, or merging organizations. If propagation of a covered
|
|
||||||
work results from an entity transaction, each party to that
|
|
||||||
transaction who receives a copy of the work also receives whatever
|
|
||||||
licenses to the work the party's predecessor in interest had or could
|
|
||||||
give under the previous paragraph, plus a right to possession of the
|
|
||||||
Corresponding Source of the work from the predecessor in interest, if
|
|
||||||
the predecessor has it or can get it with reasonable efforts.
|
|
||||||
|
|
||||||
You may not impose any further restrictions on the exercise of the
|
|
||||||
rights granted or affirmed under this License. For example, you may
|
|
||||||
not impose a license fee, royalty, or other charge for exercise of
|
|
||||||
rights granted under this License, and you may not initiate litigation
|
|
||||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
|
||||||
any patent claim is infringed by making, using, selling, offering for
|
|
||||||
sale, or importing the Program or any portion of it.
|
|
||||||
|
|
||||||
#### 11. Patents.
|
|
||||||
|
|
||||||
A "contributor" is a copyright holder who authorizes use under this
|
|
||||||
License of the Program or a work on which the Program is based. The
|
|
||||||
work thus licensed is called the contributor's "contributor version".
|
|
||||||
|
|
||||||
A contributor's "essential patent claims" are all patent claims owned
|
|
||||||
or controlled by the contributor, whether already acquired or
|
|
||||||
hereafter acquired, that would be infringed by some manner, permitted
|
|
||||||
by this License, of making, using, or selling its contributor version,
|
|
||||||
but do not include claims that would be infringed only as a
|
|
||||||
consequence of further modification of the contributor version. For
|
|
||||||
purposes of this definition, "control" includes the right to grant
|
|
||||||
patent sublicenses in a manner consistent with the requirements of
|
|
||||||
this License.
|
|
||||||
|
|
||||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
|
||||||
patent license under the contributor's essential patent claims, to
|
|
||||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
|
||||||
propagate the contents of its contributor version.
|
|
||||||
|
|
||||||
In the following three paragraphs, a "patent license" is any express
|
|
||||||
agreement or commitment, however denominated, not to enforce a patent
|
|
||||||
(such as an express permission to practice a patent or covenant not to
|
|
||||||
sue for patent infringement). To "grant" such a patent license to a
|
|
||||||
party means to make such an agreement or commitment not to enforce a
|
|
||||||
patent against the party.
|
|
||||||
|
|
||||||
If you convey a covered work, knowingly relying on a patent license,
|
|
||||||
and the Corresponding Source of the work is not available for anyone
|
|
||||||
to copy, free of charge and under the terms of this License, through a
|
|
||||||
publicly available network server or other readily accessible means,
|
|
||||||
then you must either (1) cause the Corresponding Source to be so
|
|
||||||
available, or (2) arrange to deprive yourself of the benefit of the
|
|
||||||
patent license for this particular work, or (3) arrange, in a manner
|
|
||||||
consistent with the requirements of this License, to extend the patent
|
|
||||||
license to downstream recipients. "Knowingly relying" means you have
|
|
||||||
actual knowledge that, but for the patent license, your conveying the
|
|
||||||
covered work in a country, or your recipient's use of the covered work
|
|
||||||
in a country, would infringe one or more identifiable patents in that
|
|
||||||
country that you have reason to believe are valid.
|
|
||||||
|
|
||||||
If, pursuant to or in connection with a single transaction or
|
|
||||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
|
||||||
covered work, and grant a patent license to some of the parties
|
|
||||||
receiving the covered work authorizing them to use, propagate, modify
|
|
||||||
or convey a specific copy of the covered work, then the patent license
|
|
||||||
you grant is automatically extended to all recipients of the covered
|
|
||||||
work and works based on it.
|
|
||||||
|
|
||||||
A patent license is "discriminatory" if it does not include within the
|
|
||||||
scope of its coverage, prohibits the exercise of, or is conditioned on
|
|
||||||
the non-exercise of one or more of the rights that are specifically
|
|
||||||
granted under this License. You may not convey a covered work if you
|
|
||||||
are a party to an arrangement with a third party that is in the
|
|
||||||
business of distributing software, under which you make payment to the
|
|
||||||
third party based on the extent of your activity of conveying the
|
|
||||||
work, and under which the third party grants, to any of the parties
|
|
||||||
who would receive the covered work from you, a discriminatory patent
|
|
||||||
license (a) in connection with copies of the covered work conveyed by
|
|
||||||
you (or copies made from those copies), or (b) primarily for and in
|
|
||||||
connection with specific products or compilations that contain the
|
|
||||||
covered work, unless you entered into that arrangement, or that patent
|
|
||||||
license was granted, prior to 28 March 2007.
|
|
||||||
|
|
||||||
Nothing in this License shall be construed as excluding or limiting
|
|
||||||
any implied license or other defenses to infringement that may
|
|
||||||
otherwise be available to you under applicable patent law.
|
|
||||||
|
|
||||||
#### 12. No Surrender of Others' Freedom.
|
|
||||||
|
|
||||||
If conditions are imposed on you (whether by court order, agreement or
|
|
||||||
otherwise) that contradict the conditions of this License, they do not
|
|
||||||
excuse you from the conditions of this License. If you cannot convey a
|
|
||||||
covered work so as to satisfy simultaneously your obligations under
|
|
||||||
this License and any other pertinent obligations, then as a
|
|
||||||
consequence you may not convey it at all. For example, if you agree to
|
|
||||||
terms that obligate you to collect a royalty for further conveying
|
|
||||||
from those to whom you convey the Program, the only way you could
|
|
||||||
satisfy both those terms and this License would be to refrain entirely
|
|
||||||
from conveying the Program.
|
|
||||||
|
|
||||||
#### 13. Use with the GNU Affero General Public License.
|
|
||||||
|
|
||||||
Notwithstanding any other provision of this License, you have
|
|
||||||
permission to link or combine any covered work with a work licensed
|
|
||||||
under version 3 of the GNU Affero General Public License into a single
|
|
||||||
combined work, and to convey the resulting work. The terms of this
|
|
||||||
License will continue to apply to the part which is the covered work,
|
|
||||||
but the special requirements of the GNU Affero General Public License,
|
|
||||||
section 13, concerning interaction through a network will apply to the
|
|
||||||
combination as such.
|
|
||||||
|
|
||||||
#### 14. Revised Versions of this License.
|
|
||||||
|
|
||||||
The Free Software Foundation may publish revised and/or new versions
|
|
||||||
of the GNU General Public License from time to time. Such new versions
|
|
||||||
will be similar in spirit to the present version, but may differ in
|
|
||||||
detail to address new problems or concerns.
|
|
||||||
|
|
||||||
Each version is given a distinguishing version number. If the Program
|
|
||||||
specifies that a certain numbered version of the GNU General Public
|
|
||||||
License "or any later version" applies to it, you have the option of
|
|
||||||
following the terms and conditions either of that numbered version or
|
|
||||||
of any later version published by the Free Software Foundation. If the
|
|
||||||
Program does not specify a version number of the GNU General Public
|
|
||||||
License, you may choose any version ever published by the Free
|
|
||||||
Software Foundation.
|
|
||||||
|
|
||||||
If the Program specifies that a proxy can decide which future versions
|
|
||||||
of the GNU General Public License can be used, that proxy's public
|
|
||||||
statement of acceptance of a version permanently authorizes you to
|
|
||||||
choose that version for the Program.
|
|
||||||
|
|
||||||
Later license versions may give you additional or different
|
|
||||||
permissions. However, no additional obligations are imposed on any
|
|
||||||
author or copyright holder as a result of your choosing to follow a
|
|
||||||
later version.
|
|
||||||
|
|
||||||
#### 15. Disclaimer of Warranty.
|
|
||||||
|
|
||||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
|
||||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
|
||||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT
|
|
||||||
WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
|
|
||||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
||||||
A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
|
|
||||||
PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE
|
|
||||||
DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
|
|
||||||
CORRECTION.
|
|
||||||
|
|
||||||
#### 16. Limitation of Liability.
|
|
||||||
|
|
||||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
|
||||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR
|
|
||||||
CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
|
||||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
|
|
||||||
ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT
|
|
||||||
NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR
|
|
||||||
LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM
|
|
||||||
TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER
|
|
||||||
PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
|
||||||
|
|
||||||
#### 17. Interpretation of Sections 15 and 16.
|
|
||||||
|
|
||||||
If the disclaimer of warranty and limitation of liability provided
|
|
||||||
above cannot be given local legal effect according to their terms,
|
|
||||||
reviewing courts shall apply local law that most closely approximates
|
|
||||||
an absolute waiver of all civil liability in connection with the
|
|
||||||
Program, unless a warranty or assumption of liability accompanies a
|
|
||||||
copy of the Program in return for a fee.
|
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
### How to Apply These Terms to Your New Programs
|
|
||||||
|
|
||||||
If you develop a new program, and you want it to be of the greatest
|
|
||||||
possible use to the public, the best way to achieve this is to make it
|
|
||||||
free software which everyone can redistribute and change under these
|
|
||||||
terms.
|
|
||||||
|
|
||||||
To do so, attach the following notices to the program. It is safest to
|
|
||||||
attach them to the start of each source file to most effectively state
|
|
||||||
the exclusion of warranty; and each file should have at least the
|
|
||||||
"copyright" line and a pointer to where the full notice is found.
|
|
||||||
|
|
||||||
<one line to give the program's name and a brief idea of what it does.>
|
|
||||||
Copyright (C) <year> <name of author>
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
Also add information on how to contact you by electronic and paper
|
|
||||||
mail.
|
|
||||||
|
|
||||||
If the program does terminal interaction, make it output a short
|
|
||||||
notice like this when it starts in an interactive mode:
|
|
||||||
|
|
||||||
<program> Copyright (C) <year> <name of author>
|
|
||||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
|
||||||
This is free software, and you are welcome to redistribute it
|
|
||||||
under certain conditions; type `show c' for details.
|
|
||||||
|
|
||||||
The hypothetical commands \`show w' and \`show c' should show the
|
|
||||||
appropriate parts of the General Public License. Of course, your
|
|
||||||
program's commands might be different; for a GUI interface, you would
|
|
||||||
use an "about box".
|
|
||||||
|
|
||||||
You should also get your employer (if you work as a programmer) or
|
|
||||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
|
||||||
necessary. For more information on this, and how to apply and follow
|
|
||||||
the GNU GPL, see <https://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
The GNU General Public License does not permit incorporating your
|
|
||||||
program into proprietary programs. If your program is a subroutine
|
|
||||||
library, you may consider it more useful to permit linking proprietary
|
|
||||||
applications with the library. If this is what you want to do, use the
|
|
||||||
GNU Lesser General Public License instead of this License. But first,
|
|
||||||
please read <https://www.gnu.org/licenses/why-not-lgpl.html>.
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
<!-- SPDX-FileCopyrightText: 2008-2010 Volker Lanz <vl@fidra.de>
|
||||||
|
SPDX-FileCopyrightText: 2016-2019 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
|
SPDX-License-Identifier: GFDL-1.2-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
Building and installing KDE Partition Manager from source
|
Building and installing KDE Partition Manager from source
|
||||||
=========================================================
|
=========================================================
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,324 @@
|
||||||
|
Creative Commons Attribution 4.0 International Creative Commons Corporation
|
||||||
|
("Creative Commons") is not a law firm and does not provide legal services
|
||||||
|
or legal advice. Distribution of Creative Commons public licenses does not
|
||||||
|
create a lawyer-client or other relationship. Creative Commons makes its licenses
|
||||||
|
and related information available on an "as-is" basis. Creative Commons gives
|
||||||
|
no warranties regarding its licenses, any material licensed under their terms
|
||||||
|
and conditions, or any related information. Creative Commons disclaims all
|
||||||
|
liability for damages resulting from their use to the fullest extent possible.
|
||||||
|
|
||||||
|
Using Creative Commons Public Licenses
|
||||||
|
|
||||||
|
Creative Commons public licenses provide a standard set of terms and conditions
|
||||||
|
that creators and other rights holders may use to share original works of
|
||||||
|
authorship and other material subject to copyright and certain other rights
|
||||||
|
specified in the public license below. The following considerations are for
|
||||||
|
informational purposes only, are not exhaustive, and do not form part of our
|
||||||
|
licenses.
|
||||||
|
|
||||||
|
Considerations for licensors: Our public licenses are intended for use by
|
||||||
|
those authorized to give the public permission to use material in ways otherwise
|
||||||
|
restricted by copyright and certain other rights. Our licenses are irrevocable.
|
||||||
|
Licensors should read and understand the terms and conditions of the license
|
||||||
|
they choose before applying it. Licensors should also secure all rights necessary
|
||||||
|
before applying our licenses so that the public can reuse the material as
|
||||||
|
expected. Licensors should clearly mark any material not subject to the license.
|
||||||
|
This includes other CC-licensed material, or material used under an exception
|
||||||
|
or limitation to copyright. More considerations for licensors : wiki.creativecommons.org/Considerations_for_licensors
|
||||||
|
|
||||||
|
Considerations for the public: By using one of our public licenses, a licensor
|
||||||
|
grants the public permission to use the licensed material under specified
|
||||||
|
terms and conditions. If the licensor's permission is not necessary for any
|
||||||
|
reason–for example, because of any applicable exception or limitation to copyright–then
|
||||||
|
that use is not regulated by the license. Our licenses grant only permissions
|
||||||
|
under copyright and certain other rights that a licensor has authority to
|
||||||
|
grant. Use of the licensed material may still be restricted for other reasons,
|
||||||
|
including because others have copyright or other rights in the material. A
|
||||||
|
licensor may make special requests, such as asking that all changes be marked
|
||||||
|
or described. Although not required by our licenses, you are encouraged to
|
||||||
|
respect those requests where reasonable. More considerations for the public
|
||||||
|
: wiki.creativecommons.org/Considerations_for_licensees Creative Commons Attribution
|
||||||
|
4.0 International Public License
|
||||||
|
|
||||||
|
By exercising the Licensed Rights (defined below), You accept and agree to
|
||||||
|
be bound by the terms and conditions of this Creative Commons Attribution
|
||||||
|
4.0 International Public License ("Public License"). To the extent this Public
|
||||||
|
License may be interpreted as a contract, You are granted the Licensed Rights
|
||||||
|
in consideration of Your acceptance of these terms and conditions, and the
|
||||||
|
Licensor grants You such rights in consideration of benefits the Licensor
|
||||||
|
receives from making the Licensed Material available under these terms and
|
||||||
|
conditions.
|
||||||
|
|
||||||
|
Section 1 – Definitions.
|
||||||
|
|
||||||
|
a. Adapted Material means material subject to Copyright and Similar Rights
|
||||||
|
that is derived from or based upon the Licensed Material and in which the
|
||||||
|
Licensed Material is translated, altered, arranged, transformed, or otherwise
|
||||||
|
modified in a manner requiring permission under the Copyright and Similar
|
||||||
|
Rights held by the Licensor. For purposes of this Public License, where the
|
||||||
|
Licensed Material is a musical work, performance, or sound recording, Adapted
|
||||||
|
Material is always produced where the Licensed Material is synched in timed
|
||||||
|
relation with a moving image.
|
||||||
|
|
||||||
|
b. Adapter's License means the license You apply to Your Copyright and Similar
|
||||||
|
Rights in Your contributions to Adapted Material in accordance with the terms
|
||||||
|
and conditions of this Public License.
|
||||||
|
|
||||||
|
c. Copyright and Similar Rights means copyright and/or similar rights closely
|
||||||
|
related to copyright including, without limitation, performance, broadcast,
|
||||||
|
sound recording, and Sui Generis Database Rights, without regard to how the
|
||||||
|
rights are labeled or categorized. For purposes of this Public License, the
|
||||||
|
rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights.
|
||||||
|
|
||||||
|
d. Effective Technological Measures means those measures that, in the absence
|
||||||
|
of proper authority, may not be circumvented under laws fulfilling obligations
|
||||||
|
under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996,
|
||||||
|
and/or similar international agreements.
|
||||||
|
|
||||||
|
e. Exceptions and Limitations means fair use, fair dealing, and/or any other
|
||||||
|
exception or limitation to Copyright and Similar Rights that applies to Your
|
||||||
|
use of the Licensed Material.
|
||||||
|
|
||||||
|
f. Licensed Material means the artistic or literary work, database, or other
|
||||||
|
material to which the Licensor applied this Public License.
|
||||||
|
|
||||||
|
g. Licensed Rights means the rights granted to You subject to the terms and
|
||||||
|
conditions of this Public License, which are limited to all Copyright and
|
||||||
|
Similar Rights that apply to Your use of the Licensed Material and that the
|
||||||
|
Licensor has authority to license.
|
||||||
|
|
||||||
|
h. Licensor means the individual(s) or entity(ies) granting rights under this
|
||||||
|
Public License.
|
||||||
|
|
||||||
|
i. Share means to provide material to the public by any means or process that
|
||||||
|
requires permission under the Licensed Rights, such as reproduction, public
|
||||||
|
display, public performance, distribution, dissemination, communication, or
|
||||||
|
importation, and to make material available to the public including in ways
|
||||||
|
that members of the public may access the material from a place and at a time
|
||||||
|
individually chosen by them.
|
||||||
|
|
||||||
|
j. Sui Generis Database Rights means rights other than copyright resulting
|
||||||
|
from Directive 96/9/EC of the European Parliament and of the Council of 11
|
||||||
|
March 1996 on the legal protection of databases, as amended and/or succeeded,
|
||||||
|
as well as other essentially equivalent rights anywhere in the world.
|
||||||
|
|
||||||
|
k. You means the individual or entity exercising the Licensed Rights under
|
||||||
|
this Public License. Your has a corresponding meaning.
|
||||||
|
|
||||||
|
Section 2 – Scope.
|
||||||
|
|
||||||
|
a. License grant.
|
||||||
|
|
||||||
|
1. Subject to the terms and conditions of this Public License, the Licensor
|
||||||
|
hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive,
|
||||||
|
irrevocable license to exercise the Licensed Rights in the Licensed Material
|
||||||
|
to:
|
||||||
|
|
||||||
|
A. reproduce and Share the Licensed Material, in whole or in part; and
|
||||||
|
|
||||||
|
B. produce, reproduce, and Share Adapted Material.
|
||||||
|
|
||||||
|
2. Exceptions and Limitations. For the avoidance of doubt, where Exceptions
|
||||||
|
and Limitations apply to Your use, this Public License does not apply, and
|
||||||
|
You do not need to comply with its terms and conditions.
|
||||||
|
|
||||||
|
3. Term. The term of this Public License is specified in Section 6(a).
|
||||||
|
|
||||||
|
4. Media and formats; technical modifications allowed. The Licensor authorizes
|
||||||
|
You to exercise the Licensed Rights in all media and formats whether now known
|
||||||
|
or hereafter created, and to make technical modifications necessary to do
|
||||||
|
so. The Licensor waives and/or agrees not to assert any right or authority
|
||||||
|
to forbid You from making technical modifications necessary to exercise the
|
||||||
|
Licensed Rights, including technical modifications necessary to circumvent
|
||||||
|
Effective Technological Measures. For purposes of this Public License, simply
|
||||||
|
making modifications authorized by this Section 2(a)(4) never produces Adapted
|
||||||
|
Material.
|
||||||
|
|
||||||
|
5. Downstream recipients.
|
||||||
|
|
||||||
|
A. Offer from the Licensor – Licensed Material. Every recipient of the Licensed
|
||||||
|
Material automatically receives an offer from the Licensor to exercise the
|
||||||
|
Licensed Rights under the terms and conditions of this Public License.
|
||||||
|
|
||||||
|
B. No downstream restrictions. You may not offer or impose any additional
|
||||||
|
or different terms or conditions on, or apply any Effective Technological
|
||||||
|
Measures to, the Licensed Material if doing so restricts exercise of the Licensed
|
||||||
|
Rights by any recipient of the Licensed Material.
|
||||||
|
|
||||||
|
6. No endorsement. Nothing in this Public License constitutes or may be construed
|
||||||
|
as permission to assert or imply that You are, or that Your use of the Licensed
|
||||||
|
Material is, connected with, or sponsored, endorsed, or granted official status
|
||||||
|
by, the Licensor or others designated to receive attribution as provided in
|
||||||
|
Section 3(a)(1)(A)(i).
|
||||||
|
|
||||||
|
b. Other rights.
|
||||||
|
|
||||||
|
1. Moral rights, such as the right of integrity, are not licensed under this
|
||||||
|
Public License, nor are publicity, privacy, and/or other similar personality
|
||||||
|
rights; however, to the extent possible, the Licensor waives and/or agrees
|
||||||
|
not to assert any such rights held by the Licensor to the limited extent necessary
|
||||||
|
to allow You to exercise the Licensed Rights, but not otherwise.
|
||||||
|
|
||||||
|
2. Patent and trademark rights are not licensed under this Public License.
|
||||||
|
|
||||||
|
3. To the extent possible, the Licensor waives any right to collect royalties
|
||||||
|
from You for the exercise of the Licensed Rights, whether directly or through
|
||||||
|
a collecting society under any voluntary or waivable statutory or compulsory
|
||||||
|
licensing scheme. In all other cases the Licensor expressly reserves any right
|
||||||
|
to collect such royalties.
|
||||||
|
|
||||||
|
Section 3 – License Conditions.
|
||||||
|
|
||||||
|
Your exercise of the Licensed Rights is expressly made subject to the following
|
||||||
|
conditions.
|
||||||
|
|
||||||
|
a. Attribution.
|
||||||
|
|
||||||
|
1. If You Share the Licensed Material (including in modified form), You must:
|
||||||
|
|
||||||
|
A. retain the following if it is supplied by the Licensor with the Licensed
|
||||||
|
Material:
|
||||||
|
|
||||||
|
i. identification of the creator(s) of the Licensed Material and any others
|
||||||
|
designated to receive attribution, in any reasonable manner requested by the
|
||||||
|
Licensor (including by pseudonym if designated);
|
||||||
|
|
||||||
|
ii. a copyright notice;
|
||||||
|
|
||||||
|
iii. a notice that refers to this Public License;
|
||||||
|
|
||||||
|
iv. a notice that refers to the disclaimer of warranties;
|
||||||
|
|
||||||
|
v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable;
|
||||||
|
|
||||||
|
B. indicate if You modified the Licensed Material and retain an indication
|
||||||
|
of any previous modifications; and
|
||||||
|
|
||||||
|
C. indicate the Licensed Material is licensed under this Public License, and
|
||||||
|
include the text of, or the URI or hyperlink to, this Public License.
|
||||||
|
|
||||||
|
2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner
|
||||||
|
based on the medium, means, and context in which You Share the Licensed Material.
|
||||||
|
For example, it may be reasonable to satisfy the conditions by providing a
|
||||||
|
URI or hyperlink to a resource that includes the required information.
|
||||||
|
|
||||||
|
3. If requested by the Licensor, You must remove any of the information required
|
||||||
|
by Section 3(a)(1)(A) to the extent reasonably practicable.
|
||||||
|
|
||||||
|
4. If You Share Adapted Material You produce, the Adapter's License You apply
|
||||||
|
must not prevent recipients of the Adapted Material from complying with this
|
||||||
|
Public License.
|
||||||
|
|
||||||
|
Section 4 – Sui Generis Database Rights.
|
||||||
|
|
||||||
|
Where the Licensed Rights include Sui Generis Database Rights that apply to
|
||||||
|
Your use of the Licensed Material:
|
||||||
|
|
||||||
|
a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract,
|
||||||
|
reuse, reproduce, and Share all or a substantial portion of the contents of
|
||||||
|
the database;
|
||||||
|
|
||||||
|
b. if You include all or a substantial portion of the database contents in
|
||||||
|
a database in which You have Sui Generis Database Rights, then the database
|
||||||
|
in which You have Sui Generis Database Rights (but not its individual contents)
|
||||||
|
is Adapted Material; and
|
||||||
|
|
||||||
|
c. You must comply with the conditions in Section 3(a) if You Share all or
|
||||||
|
a substantial portion of the contents of the database.
|
||||||
|
|
||||||
|
For the avoidance of doubt, this Section 4 supplements and does not replace
|
||||||
|
Your obligations under this Public License where the Licensed Rights include
|
||||||
|
other Copyright and Similar Rights.
|
||||||
|
|
||||||
|
Section 5 – Disclaimer of Warranties and Limitation of Liability.
|
||||||
|
|
||||||
|
a. Unless otherwise separately undertaken by the Licensor, to the extent possible,
|
||||||
|
the Licensor offers the Licensed Material as-is and as-available, and makes
|
||||||
|
no representations or warranties of any kind concerning the Licensed Material,
|
||||||
|
whether express, implied, statutory, or other. This includes, without limitation,
|
||||||
|
warranties of title, merchantability, fitness for a particular purpose, non-infringement,
|
||||||
|
absence of latent or other defects, accuracy, or the presence or absence of
|
||||||
|
errors, whether or not known or discoverable. Where disclaimers of warranties
|
||||||
|
are not allowed in full or in part, this disclaimer may not apply to You.
|
||||||
|
|
||||||
|
b. To the extent possible, in no event will the Licensor be liable to You
|
||||||
|
on any legal theory (including, without limitation, negligence) or otherwise
|
||||||
|
for any direct, special, indirect, incidental, consequential, punitive, exemplary,
|
||||||
|
or other losses, costs, expenses, or damages arising out of this Public License
|
||||||
|
or use of the Licensed Material, even if the Licensor has been advised of
|
||||||
|
the possibility of such losses, costs, expenses, or damages. Where a limitation
|
||||||
|
of liability is not allowed in full or in part, this limitation may not apply
|
||||||
|
to You.
|
||||||
|
|
||||||
|
c. The disclaimer of warranties and limitation of liability provided above
|
||||||
|
shall be interpreted in a manner that, to the extent possible, most closely
|
||||||
|
approximates an absolute disclaimer and waiver of all liability.
|
||||||
|
|
||||||
|
Section 6 – Term and Termination.
|
||||||
|
|
||||||
|
a. This Public License applies for the term of the Copyright and Similar Rights
|
||||||
|
licensed here. However, if You fail to comply with this Public License, then
|
||||||
|
Your rights under this Public License terminate automatically.
|
||||||
|
|
||||||
|
b. Where Your right to use the Licensed Material has terminated under Section
|
||||||
|
6(a), it reinstates:
|
||||||
|
|
||||||
|
1. automatically as of the date the violation is cured, provided it is cured
|
||||||
|
within 30 days of Your discovery of the violation; or
|
||||||
|
|
||||||
|
2. upon express reinstatement by the Licensor.
|
||||||
|
|
||||||
|
c. For the avoidance of doubt, this Section 6(b) does not affect any right
|
||||||
|
the Licensor may have to seek remedies for Your violations of this Public
|
||||||
|
License.
|
||||||
|
|
||||||
|
d. For the avoidance of doubt, the Licensor may also offer the Licensed Material
|
||||||
|
under separate terms or conditions or stop distributing the Licensed Material
|
||||||
|
at any time; however, doing so will not terminate this Public License.
|
||||||
|
|
||||||
|
e. Sections 1, 5, 6, 7, and 8 survive termination of this Public License.
|
||||||
|
|
||||||
|
Section 7 – Other Terms and Conditions.
|
||||||
|
|
||||||
|
a. The Licensor shall not be bound by any additional or different terms or
|
||||||
|
conditions communicated by You unless expressly agreed.
|
||||||
|
|
||||||
|
b. Any arrangements, understandings, or agreements regarding the Licensed
|
||||||
|
Material not stated herein are separate from and independent of the terms
|
||||||
|
and conditions of this Public License.
|
||||||
|
|
||||||
|
Section 8 – Interpretation.
|
||||||
|
|
||||||
|
a. For the avoidance of doubt, this Public License does not, and shall not
|
||||||
|
be interpreted to, reduce, limit, restrict, or impose conditions on any use
|
||||||
|
of the Licensed Material that could lawfully be made without permission under
|
||||||
|
this Public License.
|
||||||
|
|
||||||
|
b. To the extent possible, if any provision of this Public License is deemed
|
||||||
|
unenforceable, it shall be automatically reformed to the minimum extent necessary
|
||||||
|
to make it enforceable. If the provision cannot be reformed, it shall be severed
|
||||||
|
from this Public License without affecting the enforceability of the remaining
|
||||||
|
terms and conditions.
|
||||||
|
|
||||||
|
c. No term or condition of this Public License will be waived and no failure
|
||||||
|
to comply consented to unless expressly agreed to by the Licensor.
|
||||||
|
|
||||||
|
d. Nothing in this Public License constitutes or may be interpreted as a limitation
|
||||||
|
upon, or waiver of, any privileges and immunities that apply to the Licensor
|
||||||
|
or You, including from the legal processes of any jurisdiction or authority.
|
||||||
|
|
||||||
|
Creative Commons is not a party to its public licenses. Notwithstanding, Creative
|
||||||
|
Commons may elect to apply one of its public licenses to material it publishes
|
||||||
|
and in those instances will be considered the "Licensor." The text of the
|
||||||
|
Creative Commons public licenses is dedicated to the public domain under the
|
||||||
|
CC0 Public Domain Dedication. Except for the limited purpose of indicating
|
||||||
|
that material is shared under a Creative Commons public license or as otherwise
|
||||||
|
permitted by the Creative Commons policies published at creativecommons.org/policies,
|
||||||
|
Creative Commons does not authorize the use of the trademark "Creative Commons"
|
||||||
|
or any other trademark or logo of Creative Commons without its prior written
|
||||||
|
consent including, without limitation, in connection with any unauthorized
|
||||||
|
modifications to any of its public licenses or any other arrangements, understandings,
|
||||||
|
or agreements concerning use of licensed material. For the avoidance of doubt,
|
||||||
|
this paragraph does not form part of the public licenses.
|
||||||
|
|
||||||
|
Creative Commons may be contacted at creativecommons.org.
|
|
@ -0,0 +1,119 @@
|
||||||
|
Creative Commons Legal Code
|
||||||
|
|
||||||
|
CC0 1.0 Universal CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES
|
||||||
|
NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE
|
||||||
|
AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION
|
||||||
|
ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE
|
||||||
|
OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS
|
||||||
|
LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION
|
||||||
|
OR WORKS PROVIDED HEREUNDER.
|
||||||
|
|
||||||
|
Statement of Purpose
|
||||||
|
|
||||||
|
The laws of most jurisdictions throughout the world automatically confer exclusive
|
||||||
|
Copyright and Related Rights (defined below) upon the creator and subsequent
|
||||||
|
owner(s) (each and all, an "owner") of an original work of authorship and/or
|
||||||
|
a database (each, a "Work").
|
||||||
|
|
||||||
|
Certain owners wish to permanently relinquish those rights to a Work for the
|
||||||
|
purpose of contributing to a commons of creative, cultural and scientific
|
||||||
|
works ("Commons") that the public can reliably and without fear of later claims
|
||||||
|
of infringement build upon, modify, incorporate in other works, reuse and
|
||||||
|
redistribute as freely as possible in any form whatsoever and for any purposes,
|
||||||
|
including without limitation commercial purposes. These owners may contribute
|
||||||
|
to the Commons to promote the ideal of a free culture and the further production
|
||||||
|
of creative, cultural and scientific works, or to gain reputation or greater
|
||||||
|
distribution for their Work in part through the use and efforts of others.
|
||||||
|
|
||||||
|
For these and/or other purposes and motivations, and without any expectation
|
||||||
|
of additional consideration or compensation, the person associating CC0 with
|
||||||
|
a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright
|
||||||
|
and Related Rights in the Work, voluntarily elects to apply CC0 to the Work
|
||||||
|
and publicly distribute the Work under its terms, with knowledge of his or
|
||||||
|
her Copyright and Related Rights in the Work and the meaning and intended
|
||||||
|
legal effect of CC0 on those rights.
|
||||||
|
|
||||||
|
1. Copyright and Related Rights. A Work made available under CC0 may be protected
|
||||||
|
by copyright and related or neighboring rights ("Copyright and Related Rights").
|
||||||
|
Copyright and Related Rights include, but are not limited to, the following:
|
||||||
|
|
||||||
|
i. the right to reproduce, adapt, distribute, perform, display, communicate,
|
||||||
|
and translate a Work;
|
||||||
|
|
||||||
|
ii. moral rights retained by the original author(s) and/or performer(s);
|
||||||
|
|
||||||
|
iii. publicity and privacy rights pertaining to a person's image or likeness
|
||||||
|
depicted in a Work;
|
||||||
|
|
||||||
|
iv. rights protecting against unfair competition in regards to a Work, subject
|
||||||
|
to the limitations in paragraph 4(a), below;
|
||||||
|
|
||||||
|
v. rights protecting the extraction, dissemination, use and reuse of data
|
||||||
|
in a Work;
|
||||||
|
|
||||||
|
vi. database rights (such as those arising under Directive 96/9/EC of the
|
||||||
|
European Parliament and of the Council of 11 March 1996 on the legal protection
|
||||||
|
of databases, and under any national implementation thereof, including any
|
||||||
|
amended or successor version of such directive); and
|
||||||
|
|
||||||
|
vii. other similar, equivalent or corresponding rights throughout the world
|
||||||
|
based on applicable law or treaty, and any national implementations thereof.
|
||||||
|
|
||||||
|
2. Waiver. To the greatest extent permitted by, but not in contravention of,
|
||||||
|
applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and
|
||||||
|
unconditionally waives, abandons, and surrenders all of Affirmer's Copyright
|
||||||
|
and Related Rights and associated claims and causes of action, whether now
|
||||||
|
known or unknown (including existing as well as future claims and causes of
|
||||||
|
action), in the Work (i) in all territories worldwide, (ii) for the maximum
|
||||||
|
duration provided by applicable law or treaty (including future time extensions),
|
||||||
|
(iii) in any current or future medium and for any number of copies, and (iv)
|
||||||
|
for any purpose whatsoever, including without limitation commercial, advertising
|
||||||
|
or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the
|
||||||
|
benefit of each member of the public at large and to the detriment of Affirmer's
|
||||||
|
heirs and successors, fully intending that such Waiver shall not be subject
|
||||||
|
to revocation, rescission, cancellation, termination, or any other legal or
|
||||||
|
equitable action to disrupt the quiet enjoyment of the Work by the public
|
||||||
|
as contemplated by Affirmer's express Statement of Purpose.
|
||||||
|
|
||||||
|
3. Public License Fallback. Should any part of the Waiver for any reason be
|
||||||
|
judged legally invalid or ineffective under applicable law, then the Waiver
|
||||||
|
shall be preserved to the maximum extent permitted taking into account Affirmer's
|
||||||
|
express Statement of Purpose. In addition, to the extent the Waiver is so
|
||||||
|
judged Affirmer hereby grants to each affected person a royalty-free, non
|
||||||
|
transferable, non sublicensable, non exclusive, irrevocable and unconditional
|
||||||
|
license to exercise Affirmer's Copyright and Related Rights in the Work (i)
|
||||||
|
in all territories worldwide, (ii) for the maximum duration provided by applicable
|
||||||
|
law or treaty (including future time extensions), (iii) in any current or
|
||||||
|
future medium and for any number of copies, and (iv) for any purpose whatsoever,
|
||||||
|
including without limitation commercial, advertising or promotional purposes
|
||||||
|
(the "License"). The License shall be deemed effective as of the date CC0
|
||||||
|
was applied by Affirmer to the Work. Should any part of the License for any
|
||||||
|
reason be judged legally invalid or ineffective under applicable law, such
|
||||||
|
partial invalidity or ineffectiveness shall not invalidate the remainder of
|
||||||
|
the License, and in such case Affirmer hereby affirms that he or she will
|
||||||
|
not (i) exercise any of his or her remaining Copyright and Related Rights
|
||||||
|
in the Work or (ii) assert any associated claims and causes of action with
|
||||||
|
respect to the Work, in either case contrary to Affirmer's express Statement
|
||||||
|
of Purpose.
|
||||||
|
|
||||||
|
4. Limitations and Disclaimers.
|
||||||
|
|
||||||
|
a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered,
|
||||||
|
licensed or otherwise affected by this document.
|
||||||
|
|
||||||
|
b. Affirmer offers the Work as-is and makes no representations or warranties
|
||||||
|
of any kind concerning the Work, express, implied, statutory or otherwise,
|
||||||
|
including without limitation warranties of title, merchantability, fitness
|
||||||
|
for a particular purpose, non infringement, or the absence of latent or other
|
||||||
|
defects, accuracy, or the present or absence of errors, whether or not discoverable,
|
||||||
|
all to the greatest extent permissible under applicable law.
|
||||||
|
|
||||||
|
c. Affirmer disclaims responsibility for clearing rights of other persons
|
||||||
|
that may apply to the Work or any use thereof, including without limitation
|
||||||
|
any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims
|
||||||
|
responsibility for obtaining any necessary consents, permissions or other
|
||||||
|
rights required for any use of the Work.
|
||||||
|
|
||||||
|
d. Affirmer understands and acknowledges that Creative Commons is not a party
|
||||||
|
to this document and has no duty or obligation with respect to this CC0 or
|
||||||
|
use of the Work.
|
|
@ -0,0 +1,397 @@
|
||||||
|
GNU Free Documentation License
|
||||||
|
Version 1.2, November 2002
|
||||||
|
|
||||||
|
|
||||||
|
Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
|
||||||
|
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
|
||||||
|
0. PREAMBLE
|
||||||
|
|
||||||
|
The purpose of this License is to make a manual, textbook, or other
|
||||||
|
functional and useful document "free" in the sense of freedom: to
|
||||||
|
assure everyone the effective freedom to copy and redistribute it,
|
||||||
|
with or without modifying it, either commercially or noncommercially.
|
||||||
|
Secondarily, this License preserves for the author and publisher a way
|
||||||
|
to get credit for their work, while not being considered responsible
|
||||||
|
for modifications made by others.
|
||||||
|
|
||||||
|
This License is a kind of "copyleft", which means that derivative
|
||||||
|
works of the document must themselves be free in the same sense. It
|
||||||
|
complements the GNU General Public License, which is a copyleft
|
||||||
|
license designed for free software.
|
||||||
|
|
||||||
|
We have designed this License in order to use it for manuals for free
|
||||||
|
software, because free software needs free documentation: a free
|
||||||
|
program should come with manuals providing the same freedoms that the
|
||||||
|
software does. But this License is not limited to software manuals;
|
||||||
|
it can be used for any textual work, regardless of subject matter or
|
||||||
|
whether it is published as a printed book. We recommend this License
|
||||||
|
principally for works whose purpose is instruction or reference.
|
||||||
|
|
||||||
|
|
||||||
|
1. APPLICABILITY AND DEFINITIONS
|
||||||
|
|
||||||
|
This License applies to any manual or other work, in any medium, that
|
||||||
|
contains a notice placed by the copyright holder saying it can be
|
||||||
|
distributed under the terms of this License. Such a notice grants a
|
||||||
|
world-wide, royalty-free license, unlimited in duration, to use that
|
||||||
|
work under the conditions stated herein. The "Document", below,
|
||||||
|
refers to any such manual or work. Any member of the public is a
|
||||||
|
licensee, and is addressed as "you". You accept the license if you
|
||||||
|
copy, modify or distribute the work in a way requiring permission
|
||||||
|
under copyright law.
|
||||||
|
|
||||||
|
A "Modified Version" of the Document means any work containing the
|
||||||
|
Document or a portion of it, either copied verbatim, or with
|
||||||
|
modifications and/or translated into another language.
|
||||||
|
|
||||||
|
A "Secondary Section" is a named appendix or a front-matter section of
|
||||||
|
the Document that deals exclusively with the relationship of the
|
||||||
|
publishers or authors of the Document to the Document's overall subject
|
||||||
|
(or to related matters) and contains nothing that could fall directly
|
||||||
|
within that overall subject. (Thus, if the Document is in part a
|
||||||
|
textbook of mathematics, a Secondary Section may not explain any
|
||||||
|
mathematics.) The relationship could be a matter of historical
|
||||||
|
connection with the subject or with related matters, or of legal,
|
||||||
|
commercial, philosophical, ethical or political position regarding
|
||||||
|
them.
|
||||||
|
|
||||||
|
The "Invariant Sections" are certain Secondary Sections whose titles
|
||||||
|
are designated, as being those of Invariant Sections, in the notice
|
||||||
|
that says that the Document is released under this License. If a
|
||||||
|
section does not fit the above definition of Secondary then it is not
|
||||||
|
allowed to be designated as Invariant. The Document may contain zero
|
||||||
|
Invariant Sections. If the Document does not identify any Invariant
|
||||||
|
Sections then there are none.
|
||||||
|
|
||||||
|
The "Cover Texts" are certain short passages of text that are listed,
|
||||||
|
as Front-Cover Texts or Back-Cover Texts, in the notice that says that
|
||||||
|
the Document is released under this License. A Front-Cover Text may
|
||||||
|
be at most 5 words, and a Back-Cover Text may be at most 25 words.
|
||||||
|
|
||||||
|
A "Transparent" copy of the Document means a machine-readable copy,
|
||||||
|
represented in a format whose specification is available to the
|
||||||
|
general public, that is suitable for revising the document
|
||||||
|
straightforwardly with generic text editors or (for images composed of
|
||||||
|
pixels) generic paint programs or (for drawings) some widely available
|
||||||
|
drawing editor, and that is suitable for input to text formatters or
|
||||||
|
for automatic translation to a variety of formats suitable for input
|
||||||
|
to text formatters. A copy made in an otherwise Transparent file
|
||||||
|
format whose markup, or absence of markup, has been arranged to thwart
|
||||||
|
or discourage subsequent modification by readers is not Transparent.
|
||||||
|
An image format is not Transparent if used for any substantial amount
|
||||||
|
of text. A copy that is not "Transparent" is called "Opaque".
|
||||||
|
|
||||||
|
Examples of suitable formats for Transparent copies include plain
|
||||||
|
ASCII without markup, Texinfo input format, LaTeX input format, SGML
|
||||||
|
or XML using a publicly available DTD, and standard-conforming simple
|
||||||
|
HTML, PostScript or PDF designed for human modification. Examples of
|
||||||
|
transparent image formats include PNG, XCF and JPG. Opaque formats
|
||||||
|
include proprietary formats that can be read and edited only by
|
||||||
|
proprietary word processors, SGML or XML for which the DTD and/or
|
||||||
|
processing tools are not generally available, and the
|
||||||
|
machine-generated HTML, PostScript or PDF produced by some word
|
||||||
|
processors for output purposes only.
|
||||||
|
|
||||||
|
The "Title Page" means, for a printed book, the title page itself,
|
||||||
|
plus such following pages as are needed to hold, legibly, the material
|
||||||
|
this License requires to appear in the title page. For works in
|
||||||
|
formats which do not have any title page as such, "Title Page" means
|
||||||
|
the text near the most prominent appearance of the work's title,
|
||||||
|
preceding the beginning of the body of the text.
|
||||||
|
|
||||||
|
A section "Entitled XYZ" means a named subunit of the Document whose
|
||||||
|
title either is precisely XYZ or contains XYZ in parentheses following
|
||||||
|
text that translates XYZ in another language. (Here XYZ stands for a
|
||||||
|
specific section name mentioned below, such as "Acknowledgements",
|
||||||
|
"Dedications", "Endorsements", or "History".) To "Preserve the Title"
|
||||||
|
of such a section when you modify the Document means that it remains a
|
||||||
|
section "Entitled XYZ" according to this definition.
|
||||||
|
|
||||||
|
The Document may include Warranty Disclaimers next to the notice which
|
||||||
|
states that this License applies to the Document. These Warranty
|
||||||
|
Disclaimers are considered to be included by reference in this
|
||||||
|
License, but only as regards disclaiming warranties: any other
|
||||||
|
implication that these Warranty Disclaimers may have is void and has
|
||||||
|
no effect on the meaning of this License.
|
||||||
|
|
||||||
|
|
||||||
|
2. VERBATIM COPYING
|
||||||
|
|
||||||
|
You may copy and distribute the Document in any medium, either
|
||||||
|
commercially or noncommercially, provided that this License, the
|
||||||
|
copyright notices, and the license notice saying this License applies
|
||||||
|
to the Document are reproduced in all copies, and that you add no other
|
||||||
|
conditions whatsoever to those of this License. You may not use
|
||||||
|
technical measures to obstruct or control the reading or further
|
||||||
|
copying of the copies you make or distribute. However, you may accept
|
||||||
|
compensation in exchange for copies. If you distribute a large enough
|
||||||
|
number of copies you must also follow the conditions in section 3.
|
||||||
|
|
||||||
|
You may also lend copies, under the same conditions stated above, and
|
||||||
|
you may publicly display copies.
|
||||||
|
|
||||||
|
|
||||||
|
3. COPYING IN QUANTITY
|
||||||
|
|
||||||
|
If you publish printed copies (or copies in media that commonly have
|
||||||
|
printed covers) of the Document, numbering more than 100, and the
|
||||||
|
Document's license notice requires Cover Texts, you must enclose the
|
||||||
|
copies in covers that carry, clearly and legibly, all these Cover
|
||||||
|
Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
|
||||||
|
the back cover. Both covers must also clearly and legibly identify
|
||||||
|
you as the publisher of these copies. The front cover must present
|
||||||
|
the full title with all words of the title equally prominent and
|
||||||
|
visible. You may add other material on the covers in addition.
|
||||||
|
Copying with changes limited to the covers, as long as they preserve
|
||||||
|
the title of the Document and satisfy these conditions, can be treated
|
||||||
|
as verbatim copying in other respects.
|
||||||
|
|
||||||
|
If the required texts for either cover are too voluminous to fit
|
||||||
|
legibly, you should put the first ones listed (as many as fit
|
||||||
|
reasonably) on the actual cover, and continue the rest onto adjacent
|
||||||
|
pages.
|
||||||
|
|
||||||
|
If you publish or distribute Opaque copies of the Document numbering
|
||||||
|
more than 100, you must either include a machine-readable Transparent
|
||||||
|
copy along with each Opaque copy, or state in or with each Opaque copy
|
||||||
|
a computer-network location from which the general network-using
|
||||||
|
public has access to download using public-standard network protocols
|
||||||
|
a complete Transparent copy of the Document, free of added material.
|
||||||
|
If you use the latter option, you must take reasonably prudent steps,
|
||||||
|
when you begin distribution of Opaque copies in quantity, to ensure
|
||||||
|
that this Transparent copy will remain thus accessible at the stated
|
||||||
|
location until at least one year after the last time you distribute an
|
||||||
|
Opaque copy (directly or through your agents or retailers) of that
|
||||||
|
edition to the public.
|
||||||
|
|
||||||
|
It is requested, but not required, that you contact the authors of the
|
||||||
|
Document well before redistributing any large number of copies, to give
|
||||||
|
them a chance to provide you with an updated version of the Document.
|
||||||
|
|
||||||
|
|
||||||
|
4. MODIFICATIONS
|
||||||
|
|
||||||
|
You may copy and distribute a Modified Version of the Document under
|
||||||
|
the conditions of sections 2 and 3 above, provided that you release
|
||||||
|
the Modified Version under precisely this License, with the Modified
|
||||||
|
Version filling the role of the Document, thus licensing distribution
|
||||||
|
and modification of the Modified Version to whoever possesses a copy
|
||||||
|
of it. In addition, you must do these things in the Modified Version:
|
||||||
|
|
||||||
|
A. Use in the Title Page (and on the covers, if any) a title distinct
|
||||||
|
from that of the Document, and from those of previous versions
|
||||||
|
(which should, if there were any, be listed in the History section
|
||||||
|
of the Document). You may use the same title as a previous version
|
||||||
|
if the original publisher of that version gives permission.
|
||||||
|
B. List on the Title Page, as authors, one or more persons or entities
|
||||||
|
responsible for authorship of the modifications in the Modified
|
||||||
|
Version, together with at least five of the principal authors of the
|
||||||
|
Document (all of its principal authors, if it has fewer than five),
|
||||||
|
unless they release you from this requirement.
|
||||||
|
C. State on the Title page the name of the publisher of the
|
||||||
|
Modified Version, as the publisher.
|
||||||
|
D. Preserve all the copyright notices of the Document.
|
||||||
|
E. Add an appropriate copyright notice for your modifications
|
||||||
|
adjacent to the other copyright notices.
|
||||||
|
F. Include, immediately after the copyright notices, a license notice
|
||||||
|
giving the public permission to use the Modified Version under the
|
||||||
|
terms of this License, in the form shown in the Addendum below.
|
||||||
|
G. Preserve in that license notice the full lists of Invariant Sections
|
||||||
|
and required Cover Texts given in the Document's license notice.
|
||||||
|
H. Include an unaltered copy of this License.
|
||||||
|
I. Preserve the section Entitled "History", Preserve its Title, and add
|
||||||
|
to it an item stating at least the title, year, new authors, and
|
||||||
|
publisher of the Modified Version as given on the Title Page. If
|
||||||
|
there is no section Entitled "History" in the Document, create one
|
||||||
|
stating the title, year, authors, and publisher of the Document as
|
||||||
|
given on its Title Page, then add an item describing the Modified
|
||||||
|
Version as stated in the previous sentence.
|
||||||
|
J. Preserve the network location, if any, given in the Document for
|
||||||
|
public access to a Transparent copy of the Document, and likewise
|
||||||
|
the network locations given in the Document for previous versions
|
||||||
|
it was based on. These may be placed in the "History" section.
|
||||||
|
You may omit a network location for a work that was published at
|
||||||
|
least four years before the Document itself, or if the original
|
||||||
|
publisher of the version it refers to gives permission.
|
||||||
|
K. For any section Entitled "Acknowledgements" or "Dedications",
|
||||||
|
Preserve the Title of the section, and preserve in the section all
|
||||||
|
the substance and tone of each of the contributor acknowledgements
|
||||||
|
and/or dedications given therein.
|
||||||
|
L. Preserve all the Invariant Sections of the Document,
|
||||||
|
unaltered in their text and in their titles. Section numbers
|
||||||
|
or the equivalent are not considered part of the section titles.
|
||||||
|
M. Delete any section Entitled "Endorsements". Such a section
|
||||||
|
may not be included in the Modified Version.
|
||||||
|
N. Do not retitle any existing section to be Entitled "Endorsements"
|
||||||
|
or to conflict in title with any Invariant Section.
|
||||||
|
O. Preserve any Warranty Disclaimers.
|
||||||
|
|
||||||
|
If the Modified Version includes new front-matter sections or
|
||||||
|
appendices that qualify as Secondary Sections and contain no material
|
||||||
|
copied from the Document, you may at your option designate some or all
|
||||||
|
of these sections as invariant. To do this, add their titles to the
|
||||||
|
list of Invariant Sections in the Modified Version's license notice.
|
||||||
|
These titles must be distinct from any other section titles.
|
||||||
|
|
||||||
|
You may add a section Entitled "Endorsements", provided it contains
|
||||||
|
nothing but endorsements of your Modified Version by various
|
||||||
|
parties--for example, statements of peer review or that the text has
|
||||||
|
been approved by an organization as the authoritative definition of a
|
||||||
|
standard.
|
||||||
|
|
||||||
|
You may add a passage of up to five words as a Front-Cover Text, and a
|
||||||
|
passage of up to 25 words as a Back-Cover Text, to the end of the list
|
||||||
|
of Cover Texts in the Modified Version. Only one passage of
|
||||||
|
Front-Cover Text and one of Back-Cover Text may be added by (or
|
||||||
|
through arrangements made by) any one entity. If the Document already
|
||||||
|
includes a cover text for the same cover, previously added by you or
|
||||||
|
by arrangement made by the same entity you are acting on behalf of,
|
||||||
|
you may not add another; but you may replace the old one, on explicit
|
||||||
|
permission from the previous publisher that added the old one.
|
||||||
|
|
||||||
|
The author(s) and publisher(s) of the Document do not by this License
|
||||||
|
give permission to use their names for publicity for or to assert or
|
||||||
|
imply endorsement of any Modified Version.
|
||||||
|
|
||||||
|
|
||||||
|
5. COMBINING DOCUMENTS
|
||||||
|
|
||||||
|
You may combine the Document with other documents released under this
|
||||||
|
License, under the terms defined in section 4 above for modified
|
||||||
|
versions, provided that you include in the combination all of the
|
||||||
|
Invariant Sections of all of the original documents, unmodified, and
|
||||||
|
list them all as Invariant Sections of your combined work in its
|
||||||
|
license notice, and that you preserve all their Warranty Disclaimers.
|
||||||
|
|
||||||
|
The combined work need only contain one copy of this License, and
|
||||||
|
multiple identical Invariant Sections may be replaced with a single
|
||||||
|
copy. If there are multiple Invariant Sections with the same name but
|
||||||
|
different contents, make the title of each such section unique by
|
||||||
|
adding at the end of it, in parentheses, the name of the original
|
||||||
|
author or publisher of that section if known, or else a unique number.
|
||||||
|
Make the same adjustment to the section titles in the list of
|
||||||
|
Invariant Sections in the license notice of the combined work.
|
||||||
|
|
||||||
|
In the combination, you must combine any sections Entitled "History"
|
||||||
|
in the various original documents, forming one section Entitled
|
||||||
|
"History"; likewise combine any sections Entitled "Acknowledgements",
|
||||||
|
and any sections Entitled "Dedications". You must delete all sections
|
||||||
|
Entitled "Endorsements".
|
||||||
|
|
||||||
|
|
||||||
|
6. COLLECTIONS OF DOCUMENTS
|
||||||
|
|
||||||
|
You may make a collection consisting of the Document and other documents
|
||||||
|
released under this License, and replace the individual copies of this
|
||||||
|
License in the various documents with a single copy that is included in
|
||||||
|
the collection, provided that you follow the rules of this License for
|
||||||
|
verbatim copying of each of the documents in all other respects.
|
||||||
|
|
||||||
|
You may extract a single document from such a collection, and distribute
|
||||||
|
it individually under this License, provided you insert a copy of this
|
||||||
|
License into the extracted document, and follow this License in all
|
||||||
|
other respects regarding verbatim copying of that document.
|
||||||
|
|
||||||
|
|
||||||
|
7. AGGREGATION WITH INDEPENDENT WORKS
|
||||||
|
|
||||||
|
A compilation of the Document or its derivatives with other separate
|
||||||
|
and independent documents or works, in or on a volume of a storage or
|
||||||
|
distribution medium, is called an "aggregate" if the copyright
|
||||||
|
resulting from the compilation is not used to limit the legal rights
|
||||||
|
of the compilation's users beyond what the individual works permit.
|
||||||
|
When the Document is included in an aggregate, this License does not
|
||||||
|
apply to the other works in the aggregate which are not themselves
|
||||||
|
derivative works of the Document.
|
||||||
|
|
||||||
|
If the Cover Text requirement of section 3 is applicable to these
|
||||||
|
copies of the Document, then if the Document is less than one half of
|
||||||
|
the entire aggregate, the Document's Cover Texts may be placed on
|
||||||
|
covers that bracket the Document within the aggregate, or the
|
||||||
|
electronic equivalent of covers if the Document is in electronic form.
|
||||||
|
Otherwise they must appear on printed covers that bracket the whole
|
||||||
|
aggregate.
|
||||||
|
|
||||||
|
|
||||||
|
8. TRANSLATION
|
||||||
|
|
||||||
|
Translation is considered a kind of modification, so you may
|
||||||
|
distribute translations of the Document under the terms of section 4.
|
||||||
|
Replacing Invariant Sections with translations requires special
|
||||||
|
permission from their copyright holders, but you may include
|
||||||
|
translations of some or all Invariant Sections in addition to the
|
||||||
|
original versions of these Invariant Sections. You may include a
|
||||||
|
translation of this License, and all the license notices in the
|
||||||
|
Document, and any Warranty Disclaimers, provided that you also include
|
||||||
|
the original English version of this License and the original versions
|
||||||
|
of those notices and disclaimers. In case of a disagreement between
|
||||||
|
the translation and the original version of this License or a notice
|
||||||
|
or disclaimer, the original version will prevail.
|
||||||
|
|
||||||
|
If a section in the Document is Entitled "Acknowledgements",
|
||||||
|
"Dedications", or "History", the requirement (section 4) to Preserve
|
||||||
|
its Title (section 1) will typically require changing the actual
|
||||||
|
title.
|
||||||
|
|
||||||
|
|
||||||
|
9. TERMINATION
|
||||||
|
|
||||||
|
You may not copy, modify, sublicense, or distribute the Document except
|
||||||
|
as expressly provided for under this License. Any other attempt to
|
||||||
|
copy, modify, sublicense or distribute the Document is void, and will
|
||||||
|
automatically terminate your rights under this License. However,
|
||||||
|
parties who have received copies, or rights, from you under this
|
||||||
|
License will not have their licenses terminated so long as such
|
||||||
|
parties remain in full compliance.
|
||||||
|
|
||||||
|
|
||||||
|
10. FUTURE REVISIONS OF THIS LICENSE
|
||||||
|
|
||||||
|
The Free Software Foundation may publish new, revised versions
|
||||||
|
of the GNU Free Documentation License from time to time. Such new
|
||||||
|
versions will be similar in spirit to the present version, but may
|
||||||
|
differ in detail to address new problems or concerns. See
|
||||||
|
http://www.gnu.org/copyleft/.
|
||||||
|
|
||||||
|
Each version of the License is given a distinguishing version number.
|
||||||
|
If the Document specifies that a particular numbered version of this
|
||||||
|
License "or any later version" applies to it, you have the option of
|
||||||
|
following the terms and conditions either of that specified version or
|
||||||
|
of any later version that has been published (not as a draft) by the
|
||||||
|
Free Software Foundation. If the Document does not specify a version
|
||||||
|
number of this License, you may choose any version ever published (not
|
||||||
|
as a draft) by the Free Software Foundation.
|
||||||
|
|
||||||
|
|
||||||
|
ADDENDUM: How to use this License for your documents
|
||||||
|
|
||||||
|
To use this License in a document you have written, include a copy of
|
||||||
|
the License in the document and put the following copyright and
|
||||||
|
license notices just after the title page:
|
||||||
|
|
||||||
|
Copyright (c) YEAR YOUR NAME.
|
||||||
|
Permission is granted to copy, distribute and/or modify this document
|
||||||
|
under the terms of the GNU Free Documentation License, Version 1.2
|
||||||
|
or any later version published by the Free Software Foundation;
|
||||||
|
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
|
||||||
|
A copy of the license is included in the section entitled "GNU
|
||||||
|
Free Documentation License".
|
||||||
|
|
||||||
|
If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
|
||||||
|
replace the "with...Texts." line with this:
|
||||||
|
|
||||||
|
with the Invariant Sections being LIST THEIR TITLES, with the
|
||||||
|
Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
|
||||||
|
|
||||||
|
If you have Invariant Sections without Cover Texts, or some other
|
||||||
|
combination of the three, merge those two alternatives to suit the
|
||||||
|
situation.
|
||||||
|
|
||||||
|
If your document contains nontrivial examples of program code, we
|
||||||
|
recommend releasing these examples in parallel under your choice of
|
||||||
|
free software license, such as the GNU General Public License,
|
||||||
|
to permit their use in free software.
|
|
@ -0,0 +1,674 @@
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
Version 3, 29 June 2007
|
||||||
|
|
||||||
|
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The GNU General Public License is a free, copyleft license for
|
||||||
|
software and other kinds of works.
|
||||||
|
|
||||||
|
The licenses for most software and other practical works are designed
|
||||||
|
to take away your freedom to share and change the works. By contrast,
|
||||||
|
the GNU General Public License is intended to guarantee your freedom to
|
||||||
|
share and change all versions of a program--to make sure it remains free
|
||||||
|
software for all its users. We, the Free Software Foundation, use the
|
||||||
|
GNU General Public License for most of our software; it applies also to
|
||||||
|
any other work released this way by its authors. You can apply it to
|
||||||
|
your programs, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not
|
||||||
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
|
have the freedom to distribute copies of free software (and charge for
|
||||||
|
them if you wish), that you receive source code or can get it if you
|
||||||
|
want it, that you can change the software or use pieces of it in new
|
||||||
|
free programs, and that you know you can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to prevent others from denying you
|
||||||
|
these rights or asking you to surrender the rights. Therefore, you have
|
||||||
|
certain responsibilities if you distribute copies of the software, or if
|
||||||
|
you modify it: responsibilities to respect the freedom of others.
|
||||||
|
|
||||||
|
For example, if you distribute copies of such a program, whether
|
||||||
|
gratis or for a fee, you must pass on to the recipients the same
|
||||||
|
freedoms that you received. You must make sure that they, too, receive
|
||||||
|
or can get the source code. And you must show them these terms so they
|
||||||
|
know their rights.
|
||||||
|
|
||||||
|
Developers that use the GNU GPL protect your rights with two steps:
|
||||||
|
(1) assert copyright on the software, and (2) offer you this License
|
||||||
|
giving you legal permission to copy, distribute and/or modify it.
|
||||||
|
|
||||||
|
For the developers' and authors' protection, the GPL clearly explains
|
||||||
|
that there is no warranty for this free software. For both users' and
|
||||||
|
authors' sake, the GPL requires that modified versions be marked as
|
||||||
|
changed, so that their problems will not be attributed erroneously to
|
||||||
|
authors of previous versions.
|
||||||
|
|
||||||
|
Some devices are designed to deny users access to install or run
|
||||||
|
modified versions of the software inside them, although the manufacturer
|
||||||
|
can do so. This is fundamentally incompatible with the aim of
|
||||||
|
protecting users' freedom to change the software. The systematic
|
||||||
|
pattern of such abuse occurs in the area of products for individuals to
|
||||||
|
use, which is precisely where it is most unacceptable. Therefore, we
|
||||||
|
have designed this version of the GPL to prohibit the practice for those
|
||||||
|
products. If such problems arise substantially in other domains, we
|
||||||
|
stand ready to extend this provision to those domains in future versions
|
||||||
|
of the GPL, as needed to protect the freedom of users.
|
||||||
|
|
||||||
|
Finally, every program is threatened constantly by software patents.
|
||||||
|
States should not allow patents to restrict development and use of
|
||||||
|
software on general-purpose computers, but in those that do, we wish to
|
||||||
|
avoid the special danger that patents applied to a free program could
|
||||||
|
make it effectively proprietary. To prevent this, the GPL assures that
|
||||||
|
patents cannot be used to render the program non-free.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow.
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
0. Definitions.
|
||||||
|
|
||||||
|
"This License" refers to version 3 of the GNU General Public License.
|
||||||
|
|
||||||
|
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||||
|
works, such as semiconductor masks.
|
||||||
|
|
||||||
|
"The Program" refers to any copyrightable work licensed under this
|
||||||
|
License. Each licensee is addressed as "you". "Licensees" and
|
||||||
|
"recipients" may be individuals or organizations.
|
||||||
|
|
||||||
|
To "modify" a work means to copy from or adapt all or part of the work
|
||||||
|
in a fashion requiring copyright permission, other than the making of an
|
||||||
|
exact copy. The resulting work is called a "modified version" of the
|
||||||
|
earlier work or a work "based on" the earlier work.
|
||||||
|
|
||||||
|
A "covered work" means either the unmodified Program or a work based
|
||||||
|
on the Program.
|
||||||
|
|
||||||
|
To "propagate" a work means to do anything with it that, without
|
||||||
|
permission, would make you directly or secondarily liable for
|
||||||
|
infringement under applicable copyright law, except executing it on a
|
||||||
|
computer or modifying a private copy. Propagation includes copying,
|
||||||
|
distribution (with or without modification), making available to the
|
||||||
|
public, and in some countries other activities as well.
|
||||||
|
|
||||||
|
To "convey" a work means any kind of propagation that enables other
|
||||||
|
parties to make or receive copies. Mere interaction with a user through
|
||||||
|
a computer network, with no transfer of a copy, is not conveying.
|
||||||
|
|
||||||
|
An interactive user interface displays "Appropriate Legal Notices"
|
||||||
|
to the extent that it includes a convenient and prominently visible
|
||||||
|
feature that (1) displays an appropriate copyright notice, and (2)
|
||||||
|
tells the user that there is no warranty for the work (except to the
|
||||||
|
extent that warranties are provided), that licensees may convey the
|
||||||
|
work under this License, and how to view a copy of this License. If
|
||||||
|
the interface presents a list of user commands or options, such as a
|
||||||
|
menu, a prominent item in the list meets this criterion.
|
||||||
|
|
||||||
|
1. Source Code.
|
||||||
|
|
||||||
|
The "source code" for a work means the preferred form of the work
|
||||||
|
for making modifications to it. "Object code" means any non-source
|
||||||
|
form of a work.
|
||||||
|
|
||||||
|
A "Standard Interface" means an interface that either is an official
|
||||||
|
standard defined by a recognized standards body, or, in the case of
|
||||||
|
interfaces specified for a particular programming language, one that
|
||||||
|
is widely used among developers working in that language.
|
||||||
|
|
||||||
|
The "System Libraries" of an executable work include anything, other
|
||||||
|
than the work as a whole, that (a) is included in the normal form of
|
||||||
|
packaging a Major Component, but which is not part of that Major
|
||||||
|
Component, and (b) serves only to enable use of the work with that
|
||||||
|
Major Component, or to implement a Standard Interface for which an
|
||||||
|
implementation is available to the public in source code form. A
|
||||||
|
"Major Component", in this context, means a major essential component
|
||||||
|
(kernel, window system, and so on) of the specific operating system
|
||||||
|
(if any) on which the executable work runs, or a compiler used to
|
||||||
|
produce the work, or an object code interpreter used to run it.
|
||||||
|
|
||||||
|
The "Corresponding Source" for a work in object code form means all
|
||||||
|
the source code needed to generate, install, and (for an executable
|
||||||
|
work) run the object code and to modify the work, including scripts to
|
||||||
|
control those activities. However, it does not include the work's
|
||||||
|
System Libraries, or general-purpose tools or generally available free
|
||||||
|
programs which are used unmodified in performing those activities but
|
||||||
|
which are not part of the work. For example, Corresponding Source
|
||||||
|
includes interface definition files associated with source files for
|
||||||
|
the work, and the source code for shared libraries and dynamically
|
||||||
|
linked subprograms that the work is specifically designed to require,
|
||||||
|
such as by intimate data communication or control flow between those
|
||||||
|
subprograms and other parts of the work.
|
||||||
|
|
||||||
|
The Corresponding Source need not include anything that users
|
||||||
|
can regenerate automatically from other parts of the Corresponding
|
||||||
|
Source.
|
||||||
|
|
||||||
|
The Corresponding Source for a work in source code form is that
|
||||||
|
same work.
|
||||||
|
|
||||||
|
2. Basic Permissions.
|
||||||
|
|
||||||
|
All rights granted under this License are granted for the term of
|
||||||
|
copyright on the Program, and are irrevocable provided the stated
|
||||||
|
conditions are met. This License explicitly affirms your unlimited
|
||||||
|
permission to run the unmodified Program. The output from running a
|
||||||
|
covered work is covered by this License only if the output, given its
|
||||||
|
content, constitutes a covered work. This License acknowledges your
|
||||||
|
rights of fair use or other equivalent, as provided by copyright law.
|
||||||
|
|
||||||
|
You may make, run and propagate covered works that you do not
|
||||||
|
convey, without conditions so long as your license otherwise remains
|
||||||
|
in force. You may convey covered works to others for the sole purpose
|
||||||
|
of having them make modifications exclusively for you, or provide you
|
||||||
|
with facilities for running those works, provided that you comply with
|
||||||
|
the terms of this License in conveying all material for which you do
|
||||||
|
not control copyright. Those thus making or running the covered works
|
||||||
|
for you must do so exclusively on your behalf, under your direction
|
||||||
|
and control, on terms that prohibit them from making any copies of
|
||||||
|
your copyrighted material outside their relationship with you.
|
||||||
|
|
||||||
|
Conveying under any other circumstances is permitted solely under
|
||||||
|
the conditions stated below. Sublicensing is not allowed; section 10
|
||||||
|
makes it unnecessary.
|
||||||
|
|
||||||
|
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||||
|
|
||||||
|
No covered work shall be deemed part of an effective technological
|
||||||
|
measure under any applicable law fulfilling obligations under article
|
||||||
|
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||||
|
similar laws prohibiting or restricting circumvention of such
|
||||||
|
measures.
|
||||||
|
|
||||||
|
When you convey a covered work, you waive any legal power to forbid
|
||||||
|
circumvention of technological measures to the extent such circumvention
|
||||||
|
is effected by exercising rights under this License with respect to
|
||||||
|
the covered work, and you disclaim any intention to limit operation or
|
||||||
|
modification of the work as a means of enforcing, against the work's
|
||||||
|
users, your or third parties' legal rights to forbid circumvention of
|
||||||
|
technological measures.
|
||||||
|
|
||||||
|
4. Conveying Verbatim Copies.
|
||||||
|
|
||||||
|
You may convey verbatim copies of the Program's source code as you
|
||||||
|
receive it, in any medium, provided that you conspicuously and
|
||||||
|
appropriately publish on each copy an appropriate copyright notice;
|
||||||
|
keep intact all notices stating that this License and any
|
||||||
|
non-permissive terms added in accord with section 7 apply to the code;
|
||||||
|
keep intact all notices of the absence of any warranty; and give all
|
||||||
|
recipients a copy of this License along with the Program.
|
||||||
|
|
||||||
|
You may charge any price or no price for each copy that you convey,
|
||||||
|
and you may offer support or warranty protection for a fee.
|
||||||
|
|
||||||
|
5. Conveying Modified Source Versions.
|
||||||
|
|
||||||
|
You may convey a work based on the Program, or the modifications to
|
||||||
|
produce it from the Program, in the form of source code under the
|
||||||
|
terms of section 4, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) The work must carry prominent notices stating that you modified
|
||||||
|
it, and giving a relevant date.
|
||||||
|
|
||||||
|
b) The work must carry prominent notices stating that it is
|
||||||
|
released under this License and any conditions added under section
|
||||||
|
7. This requirement modifies the requirement in section 4 to
|
||||||
|
"keep intact all notices".
|
||||||
|
|
||||||
|
c) You must license the entire work, as a whole, under this
|
||||||
|
License to anyone who comes into possession of a copy. This
|
||||||
|
License will therefore apply, along with any applicable section 7
|
||||||
|
additional terms, to the whole of the work, and all its parts,
|
||||||
|
regardless of how they are packaged. This License gives no
|
||||||
|
permission to license the work in any other way, but it does not
|
||||||
|
invalidate such permission if you have separately received it.
|
||||||
|
|
||||||
|
d) If the work has interactive user interfaces, each must display
|
||||||
|
Appropriate Legal Notices; however, if the Program has interactive
|
||||||
|
interfaces that do not display Appropriate Legal Notices, your
|
||||||
|
work need not make them do so.
|
||||||
|
|
||||||
|
A compilation of a covered work with other separate and independent
|
||||||
|
works, which are not by their nature extensions of the covered work,
|
||||||
|
and which are not combined with it such as to form a larger program,
|
||||||
|
in or on a volume of a storage or distribution medium, is called an
|
||||||
|
"aggregate" if the compilation and its resulting copyright are not
|
||||||
|
used to limit the access or legal rights of the compilation's users
|
||||||
|
beyond what the individual works permit. Inclusion of a covered work
|
||||||
|
in an aggregate does not cause this License to apply to the other
|
||||||
|
parts of the aggregate.
|
||||||
|
|
||||||
|
6. Conveying Non-Source Forms.
|
||||||
|
|
||||||
|
You may convey a covered work in object code form under the terms
|
||||||
|
of sections 4 and 5, provided that you also convey the
|
||||||
|
machine-readable Corresponding Source under the terms of this License,
|
||||||
|
in one of these ways:
|
||||||
|
|
||||||
|
a) Convey the object code in, or embodied in, a physical product
|
||||||
|
(including a physical distribution medium), accompanied by the
|
||||||
|
Corresponding Source fixed on a durable physical medium
|
||||||
|
customarily used for software interchange.
|
||||||
|
|
||||||
|
b) Convey the object code in, or embodied in, a physical product
|
||||||
|
(including a physical distribution medium), accompanied by a
|
||||||
|
written offer, valid for at least three years and valid for as
|
||||||
|
long as you offer spare parts or customer support for that product
|
||||||
|
model, to give anyone who possesses the object code either (1) a
|
||||||
|
copy of the Corresponding Source for all the software in the
|
||||||
|
product that is covered by this License, on a durable physical
|
||||||
|
medium customarily used for software interchange, for a price no
|
||||||
|
more than your reasonable cost of physically performing this
|
||||||
|
conveying of source, or (2) access to copy the
|
||||||
|
Corresponding Source from a network server at no charge.
|
||||||
|
|
||||||
|
c) Convey individual copies of the object code with a copy of the
|
||||||
|
written offer to provide the Corresponding Source. This
|
||||||
|
alternative is allowed only occasionally and noncommercially, and
|
||||||
|
only if you received the object code with such an offer, in accord
|
||||||
|
with subsection 6b.
|
||||||
|
|
||||||
|
d) Convey the object code by offering access from a designated
|
||||||
|
place (gratis or for a charge), and offer equivalent access to the
|
||||||
|
Corresponding Source in the same way through the same place at no
|
||||||
|
further charge. You need not require recipients to copy the
|
||||||
|
Corresponding Source along with the object code. If the place to
|
||||||
|
copy the object code is a network server, the Corresponding Source
|
||||||
|
may be on a different server (operated by you or a third party)
|
||||||
|
that supports equivalent copying facilities, provided you maintain
|
||||||
|
clear directions next to the object code saying where to find the
|
||||||
|
Corresponding Source. Regardless of what server hosts the
|
||||||
|
Corresponding Source, you remain obligated to ensure that it is
|
||||||
|
available for as long as needed to satisfy these requirements.
|
||||||
|
|
||||||
|
e) Convey the object code using peer-to-peer transmission, provided
|
||||||
|
you inform other peers where the object code and Corresponding
|
||||||
|
Source of the work are being offered to the general public at no
|
||||||
|
charge under subsection 6d.
|
||||||
|
|
||||||
|
A separable portion of the object code, whose source code is excluded
|
||||||
|
from the Corresponding Source as a System Library, need not be
|
||||||
|
included in conveying the object code work.
|
||||||
|
|
||||||
|
A "User Product" is either (1) a "consumer product", which means any
|
||||||
|
tangible personal property which is normally used for personal, family,
|
||||||
|
or household purposes, or (2) anything designed or sold for incorporation
|
||||||
|
into a dwelling. In determining whether a product is a consumer product,
|
||||||
|
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||||
|
product received by a particular user, "normally used" refers to a
|
||||||
|
typical or common use of that class of product, regardless of the status
|
||||||
|
of the particular user or of the way in which the particular user
|
||||||
|
actually uses, or expects or is expected to use, the product. A product
|
||||||
|
is a consumer product regardless of whether the product has substantial
|
||||||
|
commercial, industrial or non-consumer uses, unless such uses represent
|
||||||
|
the only significant mode of use of the product.
|
||||||
|
|
||||||
|
"Installation Information" for a User Product means any methods,
|
||||||
|
procedures, authorization keys, or other information required to install
|
||||||
|
and execute modified versions of a covered work in that User Product from
|
||||||
|
a modified version of its Corresponding Source. The information must
|
||||||
|
suffice to ensure that the continued functioning of the modified object
|
||||||
|
code is in no case prevented or interfered with solely because
|
||||||
|
modification has been made.
|
||||||
|
|
||||||
|
If you convey an object code work under this section in, or with, or
|
||||||
|
specifically for use in, a User Product, and the conveying occurs as
|
||||||
|
part of a transaction in which the right of possession and use of the
|
||||||
|
User Product is transferred to the recipient in perpetuity or for a
|
||||||
|
fixed term (regardless of how the transaction is characterized), the
|
||||||
|
Corresponding Source conveyed under this section must be accompanied
|
||||||
|
by the Installation Information. But this requirement does not apply
|
||||||
|
if neither you nor any third party retains the ability to install
|
||||||
|
modified object code on the User Product (for example, the work has
|
||||||
|
been installed in ROM).
|
||||||
|
|
||||||
|
The requirement to provide Installation Information does not include a
|
||||||
|
requirement to continue to provide support service, warranty, or updates
|
||||||
|
for a work that has been modified or installed by the recipient, or for
|
||||||
|
the User Product in which it has been modified or installed. Access to a
|
||||||
|
network may be denied when the modification itself materially and
|
||||||
|
adversely affects the operation of the network or violates the rules and
|
||||||
|
protocols for communication across the network.
|
||||||
|
|
||||||
|
Corresponding Source conveyed, and Installation Information provided,
|
||||||
|
in accord with this section must be in a format that is publicly
|
||||||
|
documented (and with an implementation available to the public in
|
||||||
|
source code form), and must require no special password or key for
|
||||||
|
unpacking, reading or copying.
|
||||||
|
|
||||||
|
7. Additional Terms.
|
||||||
|
|
||||||
|
"Additional permissions" are terms that supplement the terms of this
|
||||||
|
License by making exceptions from one or more of its conditions.
|
||||||
|
Additional permissions that are applicable to the entire Program shall
|
||||||
|
be treated as though they were included in this License, to the extent
|
||||||
|
that they are valid under applicable law. If additional permissions
|
||||||
|
apply only to part of the Program, that part may be used separately
|
||||||
|
under those permissions, but the entire Program remains governed by
|
||||||
|
this License without regard to the additional permissions.
|
||||||
|
|
||||||
|
When you convey a copy of a covered work, you may at your option
|
||||||
|
remove any additional permissions from that copy, or from any part of
|
||||||
|
it. (Additional permissions may be written to require their own
|
||||||
|
removal in certain cases when you modify the work.) You may place
|
||||||
|
additional permissions on material, added by you to a covered work,
|
||||||
|
for which you have or can give appropriate copyright permission.
|
||||||
|
|
||||||
|
Notwithstanding any other provision of this License, for material you
|
||||||
|
add to a covered work, you may (if authorized by the copyright holders of
|
||||||
|
that material) supplement the terms of this License with terms:
|
||||||
|
|
||||||
|
a) Disclaiming warranty or limiting liability differently from the
|
||||||
|
terms of sections 15 and 16 of this License; or
|
||||||
|
|
||||||
|
b) Requiring preservation of specified reasonable legal notices or
|
||||||
|
author attributions in that material or in the Appropriate Legal
|
||||||
|
Notices displayed by works containing it; or
|
||||||
|
|
||||||
|
c) Prohibiting misrepresentation of the origin of that material, or
|
||||||
|
requiring that modified versions of such material be marked in
|
||||||
|
reasonable ways as different from the original version; or
|
||||||
|
|
||||||
|
d) Limiting the use for publicity purposes of names of licensors or
|
||||||
|
authors of the material; or
|
||||||
|
|
||||||
|
e) Declining to grant rights under trademark law for use of some
|
||||||
|
trade names, trademarks, or service marks; or
|
||||||
|
|
||||||
|
f) Requiring indemnification of licensors and authors of that
|
||||||
|
material by anyone who conveys the material (or modified versions of
|
||||||
|
it) with contractual assumptions of liability to the recipient, for
|
||||||
|
any liability that these contractual assumptions directly impose on
|
||||||
|
those licensors and authors.
|
||||||
|
|
||||||
|
All other non-permissive additional terms are considered "further
|
||||||
|
restrictions" within the meaning of section 10. If the Program as you
|
||||||
|
received it, or any part of it, contains a notice stating that it is
|
||||||
|
governed by this License along with a term that is a further
|
||||||
|
restriction, you may remove that term. If a license document contains
|
||||||
|
a further restriction but permits relicensing or conveying under this
|
||||||
|
License, you may add to a covered work material governed by the terms
|
||||||
|
of that license document, provided that the further restriction does
|
||||||
|
not survive such relicensing or conveying.
|
||||||
|
|
||||||
|
If you add terms to a covered work in accord with this section, you
|
||||||
|
must place, in the relevant source files, a statement of the
|
||||||
|
additional terms that apply to those files, or a notice indicating
|
||||||
|
where to find the applicable terms.
|
||||||
|
|
||||||
|
Additional terms, permissive or non-permissive, may be stated in the
|
||||||
|
form of a separately written license, or stated as exceptions;
|
||||||
|
the above requirements apply either way.
|
||||||
|
|
||||||
|
8. Termination.
|
||||||
|
|
||||||
|
You may not propagate or modify a covered work except as expressly
|
||||||
|
provided under this License. Any attempt otherwise to propagate or
|
||||||
|
modify it is void, and will automatically terminate your rights under
|
||||||
|
this License (including any patent licenses granted under the third
|
||||||
|
paragraph of section 11).
|
||||||
|
|
||||||
|
However, if you cease all violation of this License, then your
|
||||||
|
license from a particular copyright holder is reinstated (a)
|
||||||
|
provisionally, unless and until the copyright holder explicitly and
|
||||||
|
finally terminates your license, and (b) permanently, if the copyright
|
||||||
|
holder fails to notify you of the violation by some reasonable means
|
||||||
|
prior to 60 days after the cessation.
|
||||||
|
|
||||||
|
Moreover, your license from a particular copyright holder is
|
||||||
|
reinstated permanently if the copyright holder notifies you of the
|
||||||
|
violation by some reasonable means, this is the first time you have
|
||||||
|
received notice of violation of this License (for any work) from that
|
||||||
|
copyright holder, and you cure the violation prior to 30 days after
|
||||||
|
your receipt of the notice.
|
||||||
|
|
||||||
|
Termination of your rights under this section does not terminate the
|
||||||
|
licenses of parties who have received copies or rights from you under
|
||||||
|
this License. If your rights have been terminated and not permanently
|
||||||
|
reinstated, you do not qualify to receive new licenses for the same
|
||||||
|
material under section 10.
|
||||||
|
|
||||||
|
9. Acceptance Not Required for Having Copies.
|
||||||
|
|
||||||
|
You are not required to accept this License in order to receive or
|
||||||
|
run a copy of the Program. Ancillary propagation of a covered work
|
||||||
|
occurring solely as a consequence of using peer-to-peer transmission
|
||||||
|
to receive a copy likewise does not require acceptance. However,
|
||||||
|
nothing other than this License grants you permission to propagate or
|
||||||
|
modify any covered work. These actions infringe copyright if you do
|
||||||
|
not accept this License. Therefore, by modifying or propagating a
|
||||||
|
covered work, you indicate your acceptance of this License to do so.
|
||||||
|
|
||||||
|
10. Automatic Licensing of Downstream Recipients.
|
||||||
|
|
||||||
|
Each time you convey a covered work, the recipient automatically
|
||||||
|
receives a license from the original licensors, to run, modify and
|
||||||
|
propagate that work, subject to this License. You are not responsible
|
||||||
|
for enforcing compliance by third parties with this License.
|
||||||
|
|
||||||
|
An "entity transaction" is a transaction transferring control of an
|
||||||
|
organization, or substantially all assets of one, or subdividing an
|
||||||
|
organization, or merging organizations. If propagation of a covered
|
||||||
|
work results from an entity transaction, each party to that
|
||||||
|
transaction who receives a copy of the work also receives whatever
|
||||||
|
licenses to the work the party's predecessor in interest had or could
|
||||||
|
give under the previous paragraph, plus a right to possession of the
|
||||||
|
Corresponding Source of the work from the predecessor in interest, if
|
||||||
|
the predecessor has it or can get it with reasonable efforts.
|
||||||
|
|
||||||
|
You may not impose any further restrictions on the exercise of the
|
||||||
|
rights granted or affirmed under this License. For example, you may
|
||||||
|
not impose a license fee, royalty, or other charge for exercise of
|
||||||
|
rights granted under this License, and you may not initiate litigation
|
||||||
|
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||||
|
any patent claim is infringed by making, using, selling, offering for
|
||||||
|
sale, or importing the Program or any portion of it.
|
||||||
|
|
||||||
|
11. Patents.
|
||||||
|
|
||||||
|
A "contributor" is a copyright holder who authorizes use under this
|
||||||
|
License of the Program or a work on which the Program is based. The
|
||||||
|
work thus licensed is called the contributor's "contributor version".
|
||||||
|
|
||||||
|
A contributor's "essential patent claims" are all patent claims
|
||||||
|
owned or controlled by the contributor, whether already acquired or
|
||||||
|
hereafter acquired, that would be infringed by some manner, permitted
|
||||||
|
by this License, of making, using, or selling its contributor version,
|
||||||
|
but do not include claims that would be infringed only as a
|
||||||
|
consequence of further modification of the contributor version. For
|
||||||
|
purposes of this definition, "control" includes the right to grant
|
||||||
|
patent sublicenses in a manner consistent with the requirements of
|
||||||
|
this License.
|
||||||
|
|
||||||
|
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||||
|
patent license under the contributor's essential patent claims, to
|
||||||
|
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||||
|
propagate the contents of its contributor version.
|
||||||
|
|
||||||
|
In the following three paragraphs, a "patent license" is any express
|
||||||
|
agreement or commitment, however denominated, not to enforce a patent
|
||||||
|
(such as an express permission to practice a patent or covenant not to
|
||||||
|
sue for patent infringement). To "grant" such a patent license to a
|
||||||
|
party means to make such an agreement or commitment not to enforce a
|
||||||
|
patent against the party.
|
||||||
|
|
||||||
|
If you convey a covered work, knowingly relying on a patent license,
|
||||||
|
and the Corresponding Source of the work is not available for anyone
|
||||||
|
to copy, free of charge and under the terms of this License, through a
|
||||||
|
publicly available network server or other readily accessible means,
|
||||||
|
then you must either (1) cause the Corresponding Source to be so
|
||||||
|
available, or (2) arrange to deprive yourself of the benefit of the
|
||||||
|
patent license for this particular work, or (3) arrange, in a manner
|
||||||
|
consistent with the requirements of this License, to extend the patent
|
||||||
|
license to downstream recipients. "Knowingly relying" means you have
|
||||||
|
actual knowledge that, but for the patent license, your conveying the
|
||||||
|
covered work in a country, or your recipient's use of the covered work
|
||||||
|
in a country, would infringe one or more identifiable patents in that
|
||||||
|
country that you have reason to believe are valid.
|
||||||
|
|
||||||
|
If, pursuant to or in connection with a single transaction or
|
||||||
|
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||||
|
covered work, and grant a patent license to some of the parties
|
||||||
|
receiving the covered work authorizing them to use, propagate, modify
|
||||||
|
or convey a specific copy of the covered work, then the patent license
|
||||||
|
you grant is automatically extended to all recipients of the covered
|
||||||
|
work and works based on it.
|
||||||
|
|
||||||
|
A patent license is "discriminatory" if it does not include within
|
||||||
|
the scope of its coverage, prohibits the exercise of, or is
|
||||||
|
conditioned on the non-exercise of one or more of the rights that are
|
||||||
|
specifically granted under this License. You may not convey a covered
|
||||||
|
work if you are a party to an arrangement with a third party that is
|
||||||
|
in the business of distributing software, under which you make payment
|
||||||
|
to the third party based on the extent of your activity of conveying
|
||||||
|
the work, and under which the third party grants, to any of the
|
||||||
|
parties who would receive the covered work from you, a discriminatory
|
||||||
|
patent license (a) in connection with copies of the covered work
|
||||||
|
conveyed by you (or copies made from those copies), or (b) primarily
|
||||||
|
for and in connection with specific products or compilations that
|
||||||
|
contain the covered work, unless you entered into that arrangement,
|
||||||
|
or that patent license was granted, prior to 28 March 2007.
|
||||||
|
|
||||||
|
Nothing in this License shall be construed as excluding or limiting
|
||||||
|
any implied license or other defenses to infringement that may
|
||||||
|
otherwise be available to you under applicable patent law.
|
||||||
|
|
||||||
|
12. No Surrender of Others' Freedom.
|
||||||
|
|
||||||
|
If conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot convey a
|
||||||
|
covered work so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you may
|
||||||
|
not convey it at all. For example, if you agree to terms that obligate you
|
||||||
|
to collect a royalty for further conveying from those to whom you convey
|
||||||
|
the Program, the only way you could satisfy both those terms and this
|
||||||
|
License would be to refrain entirely from conveying the Program.
|
||||||
|
|
||||||
|
13. Use with the GNU Affero General Public License.
|
||||||
|
|
||||||
|
Notwithstanding any other provision of this License, you have
|
||||||
|
permission to link or combine any covered work with a work licensed
|
||||||
|
under version 3 of the GNU Affero General Public License into a single
|
||||||
|
combined work, and to convey the resulting work. The terms of this
|
||||||
|
License will continue to apply to the part which is the covered work,
|
||||||
|
but the special requirements of the GNU Affero General Public License,
|
||||||
|
section 13, concerning interaction through a network will apply to the
|
||||||
|
combination as such.
|
||||||
|
|
||||||
|
14. Revised Versions of this License.
|
||||||
|
|
||||||
|
The Free Software Foundation may publish revised and/or new versions of
|
||||||
|
the GNU General Public License from time to time. Such new versions will
|
||||||
|
be similar in spirit to the present version, but may differ in detail to
|
||||||
|
address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the
|
||||||
|
Program specifies that a certain numbered version of the GNU General
|
||||||
|
Public License "or any later version" applies to it, you have the
|
||||||
|
option of following the terms and conditions either of that numbered
|
||||||
|
version or of any later version published by the Free Software
|
||||||
|
Foundation. If the Program does not specify a version number of the
|
||||||
|
GNU General Public License, you may choose any version ever published
|
||||||
|
by the Free Software Foundation.
|
||||||
|
|
||||||
|
If the Program specifies that a proxy can decide which future
|
||||||
|
versions of the GNU General Public License can be used, that proxy's
|
||||||
|
public statement of acceptance of a version permanently authorizes you
|
||||||
|
to choose that version for the Program.
|
||||||
|
|
||||||
|
Later license versions may give you additional or different
|
||||||
|
permissions. However, no additional obligations are imposed on any
|
||||||
|
author or copyright holder as a result of your choosing to follow a
|
||||||
|
later version.
|
||||||
|
|
||||||
|
15. Disclaimer of Warranty.
|
||||||
|
|
||||||
|
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||||
|
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||||
|
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||||
|
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||||
|
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||||
|
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
16. Limitation of Liability.
|
||||||
|
|
||||||
|
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||||
|
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||||
|
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||||
|
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||||
|
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||||
|
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||||
|
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||||
|
SUCH DAMAGES.
|
||||||
|
|
||||||
|
17. Interpretation of Sections 15 and 16.
|
||||||
|
|
||||||
|
If the disclaimer of warranty and limitation of liability provided
|
||||||
|
above cannot be given local legal effect according to their terms,
|
||||||
|
reviewing courts shall apply local law that most closely approximates
|
||||||
|
an absolute waiver of all civil liability in connection with the
|
||||||
|
Program, unless a warranty or assumption of liability accompanies a
|
||||||
|
copy of the Program in return for a fee.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
|
If you develop a new program, and you want it to be of the greatest
|
||||||
|
possible use to the public, the best way to achieve this is to make it
|
||||||
|
free software which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
|
To do so, attach the following notices to the program. It is safest
|
||||||
|
to attach them to the start of each source file to most effectively
|
||||||
|
state the exclusion of warranty; and each file should have at least
|
||||||
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the program's name and a brief idea of what it does.>
|
||||||
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
If the program does terminal interaction, make it output a short
|
||||||
|
notice like this when it starts in an interactive mode:
|
||||||
|
|
||||||
|
<program> Copyright (C) <year> <name of author>
|
||||||
|
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
|
This is free software, and you are welcome to redistribute it
|
||||||
|
under certain conditions; type `show c' for details.
|
||||||
|
|
||||||
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||||
|
parts of the General Public License. Of course, your program's commands
|
||||||
|
might be different; for a GUI interface, you would use an "about box".
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or school,
|
||||||
|
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||||
|
For more information on this, and how to apply and follow the GNU GPL, see
|
||||||
|
<http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
The GNU General Public License does not permit incorporating your program
|
||||||
|
into proprietary programs. If your program is a subroutine library, you
|
||||||
|
may consider it more useful to permit linking proprietary applications with
|
||||||
|
the library. If this is what you want to do, use the GNU Lesser General
|
||||||
|
Public License instead of this License. But first, please read
|
||||||
|
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
|
@ -0,0 +1,165 @@
|
||||||
|
GNU LESSER GENERAL PUBLIC LICENSE
|
||||||
|
Version 3, 29 June 2007
|
||||||
|
|
||||||
|
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
|
||||||
|
This version of the GNU Lesser General Public License incorporates
|
||||||
|
the terms and conditions of version 3 of the GNU General Public
|
||||||
|
License, supplemented by the additional permissions listed below.
|
||||||
|
|
||||||
|
0. Additional Definitions.
|
||||||
|
|
||||||
|
As used herein, "this License" refers to version 3 of the GNU Lesser
|
||||||
|
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
||||||
|
General Public License.
|
||||||
|
|
||||||
|
"The Library" refers to a covered work governed by this License,
|
||||||
|
other than an Application or a Combined Work as defined below.
|
||||||
|
|
||||||
|
An "Application" is any work that makes use of an interface provided
|
||||||
|
by the Library, but which is not otherwise based on the Library.
|
||||||
|
Defining a subclass of a class defined by the Library is deemed a mode
|
||||||
|
of using an interface provided by the Library.
|
||||||
|
|
||||||
|
A "Combined Work" is a work produced by combining or linking an
|
||||||
|
Application with the Library. The particular version of the Library
|
||||||
|
with which the Combined Work was made is also called the "Linked
|
||||||
|
Version".
|
||||||
|
|
||||||
|
The "Minimal Corresponding Source" for a Combined Work means the
|
||||||
|
Corresponding Source for the Combined Work, excluding any source code
|
||||||
|
for portions of the Combined Work that, considered in isolation, are
|
||||||
|
based on the Application, and not on the Linked Version.
|
||||||
|
|
||||||
|
The "Corresponding Application Code" for a Combined Work means the
|
||||||
|
object code and/or source code for the Application, including any data
|
||||||
|
and utility programs needed for reproducing the Combined Work from the
|
||||||
|
Application, but excluding the System Libraries of the Combined Work.
|
||||||
|
|
||||||
|
1. Exception to Section 3 of the GNU GPL.
|
||||||
|
|
||||||
|
You may convey a covered work under sections 3 and 4 of this License
|
||||||
|
without being bound by section 3 of the GNU GPL.
|
||||||
|
|
||||||
|
2. Conveying Modified Versions.
|
||||||
|
|
||||||
|
If you modify a copy of the Library, and, in your modifications, a
|
||||||
|
facility refers to a function or data to be supplied by an Application
|
||||||
|
that uses the facility (other than as an argument passed when the
|
||||||
|
facility is invoked), then you may convey a copy of the modified
|
||||||
|
version:
|
||||||
|
|
||||||
|
a) under this License, provided that you make a good faith effort to
|
||||||
|
ensure that, in the event an Application does not supply the
|
||||||
|
function or data, the facility still operates, and performs
|
||||||
|
whatever part of its purpose remains meaningful, or
|
||||||
|
|
||||||
|
b) under the GNU GPL, with none of the additional permissions of
|
||||||
|
this License applicable to that copy.
|
||||||
|
|
||||||
|
3. Object Code Incorporating Material from Library Header Files.
|
||||||
|
|
||||||
|
The object code form of an Application may incorporate material from
|
||||||
|
a header file that is part of the Library. You may convey such object
|
||||||
|
code under terms of your choice, provided that, if the incorporated
|
||||||
|
material is not limited to numerical parameters, data structure
|
||||||
|
layouts and accessors, or small macros, inline functions and templates
|
||||||
|
(ten or fewer lines in length), you do both of the following:
|
||||||
|
|
||||||
|
a) Give prominent notice with each copy of the object code that the
|
||||||
|
Library is used in it and that the Library and its use are
|
||||||
|
covered by this License.
|
||||||
|
|
||||||
|
b) Accompany the object code with a copy of the GNU GPL and this license
|
||||||
|
document.
|
||||||
|
|
||||||
|
4. Combined Works.
|
||||||
|
|
||||||
|
You may convey a Combined Work under terms of your choice that,
|
||||||
|
taken together, effectively do not restrict modification of the
|
||||||
|
portions of the Library contained in the Combined Work and reverse
|
||||||
|
engineering for debugging such modifications, if you also do each of
|
||||||
|
the following:
|
||||||
|
|
||||||
|
a) Give prominent notice with each copy of the Combined Work that
|
||||||
|
the Library is used in it and that the Library and its use are
|
||||||
|
covered by this License.
|
||||||
|
|
||||||
|
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
||||||
|
document.
|
||||||
|
|
||||||
|
c) For a Combined Work that displays copyright notices during
|
||||||
|
execution, include the copyright notice for the Library among
|
||||||
|
these notices, as well as a reference directing the user to the
|
||||||
|
copies of the GNU GPL and this license document.
|
||||||
|
|
||||||
|
d) Do one of the following:
|
||||||
|
|
||||||
|
0) Convey the Minimal Corresponding Source under the terms of this
|
||||||
|
License, and the Corresponding Application Code in a form
|
||||||
|
suitable for, and under terms that permit, the user to
|
||||||
|
recombine or relink the Application with a modified version of
|
||||||
|
the Linked Version to produce a modified Combined Work, in the
|
||||||
|
manner specified by section 6 of the GNU GPL for conveying
|
||||||
|
Corresponding Source.
|
||||||
|
|
||||||
|
1) Use a suitable shared library mechanism for linking with the
|
||||||
|
Library. A suitable mechanism is one that (a) uses at run time
|
||||||
|
a copy of the Library already present on the user's computer
|
||||||
|
system, and (b) will operate properly with a modified version
|
||||||
|
of the Library that is interface-compatible with the Linked
|
||||||
|
Version.
|
||||||
|
|
||||||
|
e) Provide Installation Information, but only if you would otherwise
|
||||||
|
be required to provide such information under section 6 of the
|
||||||
|
GNU GPL, and only to the extent that such information is
|
||||||
|
necessary to install and execute a modified version of the
|
||||||
|
Combined Work produced by recombining or relinking the
|
||||||
|
Application with a modified version of the Linked Version. (If
|
||||||
|
you use option 4d0, the Installation Information must accompany
|
||||||
|
the Minimal Corresponding Source and Corresponding Application
|
||||||
|
Code. If you use option 4d1, you must provide the Installation
|
||||||
|
Information in the manner specified by section 6 of the GNU GPL
|
||||||
|
for conveying Corresponding Source.)
|
||||||
|
|
||||||
|
5. Combined Libraries.
|
||||||
|
|
||||||
|
You may place library facilities that are a work based on the
|
||||||
|
Library side by side in a single library together with other library
|
||||||
|
facilities that are not Applications and are not covered by this
|
||||||
|
License, and convey such a combined library under terms of your
|
||||||
|
choice, if you do both of the following:
|
||||||
|
|
||||||
|
a) Accompany the combined library with a copy of the same work based
|
||||||
|
on the Library, uncombined with any other library facilities,
|
||||||
|
conveyed under the terms of this License.
|
||||||
|
|
||||||
|
b) Give prominent notice with the combined library that part of it
|
||||||
|
is a work based on the Library, and explaining where to find the
|
||||||
|
accompanying uncombined form of the same work.
|
||||||
|
|
||||||
|
6. Revised Versions of the GNU Lesser General Public License.
|
||||||
|
|
||||||
|
The Free Software Foundation may publish revised and/or new versions
|
||||||
|
of the GNU Lesser General Public License from time to time. Such new
|
||||||
|
versions will be similar in spirit to the present version, but may
|
||||||
|
differ in detail to address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the
|
||||||
|
Library as you received it specifies that a certain numbered version
|
||||||
|
of the GNU Lesser General Public License "or any later version"
|
||||||
|
applies to it, you have the option of following the terms and
|
||||||
|
conditions either of that published version or of any later version
|
||||||
|
published by the Free Software Foundation. If the Library as you
|
||||||
|
received it does not specify a version number of the GNU Lesser
|
||||||
|
General Public License, you may choose any version of the GNU Lesser
|
||||||
|
General Public License ever published by the Free Software Foundation.
|
||||||
|
|
||||||
|
If the Library as you received it specifies that a proxy can decide
|
||||||
|
whether future versions of the GNU Lesser General Public License shall
|
||||||
|
apply, that proxy's public statement of acceptance of any version is
|
||||||
|
permanent authorization for you to choose that version for the
|
||||||
|
Library.
|
|
@ -0,0 +1,19 @@
|
||||||
|
MIT License Copyright (c) <year> <copyright holders>
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is furnished
|
||||||
|
to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice (including the next
|
||||||
|
paragraph) shall be included in all copies or substantial portions of the
|
||||||
|
Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
|
||||||
|
OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||||
|
OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@ -1,3 +1,9 @@
|
||||||
|
<!-- SPDX-FileCopyrightText: 2008-2009 Volker Lanz <vl@fidra.de>
|
||||||
|
SPDX-FileCopyrightText: 2016-2019 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
|
SPDX-FileCopyrightText: 2019 David Planella <david.planella@ubuntu.com>
|
||||||
|
SPDX-License-Identifier: CC-BY-4.0
|
||||||
|
-->
|
||||||
|
|
||||||
# KDE Partition Manager
|
# KDE Partition Manager
|
||||||
|
|
||||||
<img src="https://invent.kde.org/kde/partitionmanager/raw/master/icons/sc-apps-partitionmanager.svg" align="right"
|
<img src="https://invent.kde.org/kde/partitionmanager/raw/master/icons/sc-apps-partitionmanager.svg" align="right"
|
||||||
|
@ -22,7 +28,7 @@ a potentially dangerous program for your data. It has been tested carefully and
|
||||||
there are currently no known bugs that could lead to data loss, but nevertheless
|
there are currently no known bugs that could lead to data loss, but nevertheless
|
||||||
there is always a chance for an error to occur and you might lose your data.
|
there is always a chance for an error to occur and you might lose your data.
|
||||||
|
|
||||||
<img src="https://docs.kde.org/trunk5/en/extragear-sysadmin/partitionmanager/resize_howto_4.png" align="center"
|
<img src="https://cdn.kde.org/screenshots/partitionmanager/partitionmanager.png" align="center"
|
||||||
title="KDE Partition Manager" width="800">
|
title="KDE Partition Manager" width="800">
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
26
TODO
26
TODO
|
@ -1,26 +0,0 @@
|
||||||
===============================================================================
|
|
||||||
|
|
||||||
For releases after 3.3:
|
|
||||||
|
|
||||||
* make Job::copyBlocks() work with LVM. E.g. copy real partition into LVM LV.
|
|
||||||
|
|
||||||
* find an elegant solution for the brokenness in design that is
|
|
||||||
Partition::sectorSize()... Either a Partition has a reference/pointer to the
|
|
||||||
Device it's on or the method is removed completely. -- Maybe the
|
|
||||||
PartitionTable should reference the Device?
|
|
||||||
|
|
||||||
* the file system support dialog is a usability nightmare
|
|
||||||
|
|
||||||
* write a setup-kcm in the style of k3b's so that the user can set the r/w
|
|
||||||
permissions of the disks there.
|
|
||||||
|
|
||||||
* Convert the fs implementations into plugins. Redesign the support-stuff, make
|
|
||||||
that more flexible (no statics in the FS classes, some helper class or at
|
|
||||||
least an array in FileSystem).
|
|
||||||
|
|
||||||
* Add a SMART self test operation.
|
|
||||||
|
|
||||||
* Information about file system on a separate tab in the properties, unique
|
|
||||||
to the file system in use.
|
|
||||||
|
|
||||||
* parse progress information at least from e2fsck and ntfsclone... maybe others.
|
|
|
@ -1 +1,6 @@
|
||||||
kdoctools_create_handbook( index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR partitionmanager )
|
# SPDX-FileCopyrightText: 2008 Volker Lanz <vl@fidra.de>
|
||||||
|
# SPDX-FileCopyrightText: 2015 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
|
|
||||||
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
kdoctools_create_handbook( index.docbook INSTALL_DESTINATION ${KDE_INSTALL_DOCBUNDLEDIR}/en SUBDIR partitionmanager )
|
||||||
|
|
|
@ -510,8 +510,8 @@
|
||||||
<title>The Settings and Help Menu</title>
|
<title>The Settings and Help Menu</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
&partman; has the common &kde; <ulink url="help:/fundamentals/ui.html#menus-settings">Settings</ulink> and
|
&partman; has the common &kde; <ulink url="help:/fundamentals/menus.html#menus-settings">Settings</ulink> and
|
||||||
<ulink url="help:/fundamentals/ui.html#menus-help">Help</ulink> menu described in
|
<ulink url="help:/fundamentals/menus.html#menus-help">Help</ulink> menu described in
|
||||||
the &kde; Fundamentals with an additional submenu <guisubmenu>Panels Shown</guisubmenu>,
|
the &kde; Fundamentals with an additional submenu <guisubmenu>Panels Shown</guisubmenu>,
|
||||||
where you can toggle the display of the <guimenuitem>Devices</guimenuitem>,
|
where you can toggle the display of the <guimenuitem>Devices</guimenuitem>,
|
||||||
<guimenuitem>Pending Operations</guimenuitem>, <guimenuitem>Information</guimenuitem>
|
<guimenuitem>Pending Operations</guimenuitem>, <guimenuitem>Information</guimenuitem>
|
||||||
|
|
|
@ -1 +1,6 @@
|
||||||
|
# SPDX-FileCopyrightText: 2009 Volker Lanz <vl@fidra.de>
|
||||||
|
# SPDX-FileCopyrightText: 2014-2017 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
|
|
||||||
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
ecm_install_icons(ICONS sc-apps-partitionmanager.svg DESTINATION ${KDE_INSTALL_ICONDIR})
|
ecm_install_icons(ICONS sc-apps-partitionmanager.svg DESTINATION ${KDE_INSTALL_ICONDIR})
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: 2014 Uri Herrera <uri_herrera@nitrux.in> and others
|
||||||
|
SPDX-License-Identifier: LGPL-3.0-or-later
|
||||||
|
-->
|
||||||
<svg
|
<svg
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
|
Before Width: | Height: | Size: 9.5 KiB After Width: | Height: | Size: 9.7 KiB |
|
@ -1,24 +1,14 @@
|
||||||
# Copyright (C) 2008, 2012 by Volker Lanz <vl@fidra.de>
|
# SPDX-FileCopyrightText: 2008 Volker Lanz <vl@fidra.de>
|
||||||
#
|
# SPDX-FileCopyrightText: 2014-2020 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
# This program is free software; you can redistribute it and/or
|
|
||||||
# modify it under the terms of the GNU General Public License as
|
|
||||||
# published by the Free Software Foundation; either version 3 of
|
|
||||||
# the License, or (at your option) any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
############################################
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
include(config/CMakeLists.txt)
|
include(config/CMakeLists.txt)
|
||||||
include(gui/CMakeLists.txt)
|
include(gui/CMakeLists.txt)
|
||||||
include(util/CMakeLists.txt)
|
include(util/CMakeLists.txt)
|
||||||
|
|
||||||
|
set_property(SOURCE main.cpp APPEND PROPERTY COMPILE_DEFINITIONS "VERSION=\"${RELEASE_SERVICE_VERSION}\"")
|
||||||
|
|
||||||
set(partitionmanager_SRCS
|
set(partitionmanager_SRCS
|
||||||
main.cpp
|
main.cpp
|
||||||
${CONFIG_SRC}
|
${CONFIG_SRC}
|
||||||
|
@ -31,13 +21,13 @@ file(GLOB partitionmanager_UIFILES config/*.ui gui/*.ui)
|
||||||
ki18n_wrap_ui(partitionmanager_SRCS ${partitionmanager_UIFILES})
|
ki18n_wrap_ui(partitionmanager_SRCS ${partitionmanager_UIFILES})
|
||||||
|
|
||||||
kconfig_add_kcfg_files(partitionmanager_SRCS config.kcfgc)
|
kconfig_add_kcfg_files(partitionmanager_SRCS config.kcfgc)
|
||||||
install(FILES partitionmanager.kcfg DESTINATION ${KCFG_INSTALL_DIR})
|
install(FILES partitionmanager.kcfg DESTINATION ${KDE_INSTALL_KCFGDIR})
|
||||||
|
|
||||||
############################################
|
############################################
|
||||||
|
|
||||||
add_executable(partitionmanager ${partitionmanager_SRCS} )
|
add_executable(partitionmanager ${partitionmanager_SRCS} )
|
||||||
|
|
||||||
target_link_libraries(partitionmanager ${BLKID_LIBRARIES}
|
target_link_libraries(partitionmanager
|
||||||
kpmcore
|
kpmcore
|
||||||
KF5::ConfigCore
|
KF5::ConfigCore
|
||||||
KF5::ConfigGui
|
KF5::ConfigGui
|
||||||
|
@ -46,18 +36,22 @@ target_link_libraries(partitionmanager ${BLKID_LIBRARIES}
|
||||||
KF5::Crash
|
KF5::Crash
|
||||||
KF5::DBusAddons
|
KF5::DBusAddons
|
||||||
KF5::I18n
|
KF5::I18n
|
||||||
KF5::IconThemes
|
|
||||||
KF5::JobWidgets
|
KF5::JobWidgets
|
||||||
KF5::KIOWidgets
|
KF5::KIOWidgets
|
||||||
KF5::WidgetsAddons
|
KF5::WidgetsAddons
|
||||||
KF5::XmlGui
|
KF5::XmlGui
|
||||||
|
PolkitQt${QT_MAJOR_VERSION}-1::Core
|
||||||
)
|
)
|
||||||
|
|
||||||
target_compile_definitions(partitionmanager PRIVATE -DCMAKE_INSTALL_FULL_LIBEXECDIR_KF5=\"${CMAKE_INSTALL_FULL_LIBEXECDIR_KF5}\")
|
target_compile_definitions(partitionmanager PRIVATE -DCMAKE_INSTALL_FULL_LIBEXECDIR_KF5=\"${CMAKE_INSTALL_FULL_LIBEXECDIR_KF5}\")
|
||||||
|
|
||||||
install(TARGETS partitionmanager ${INSTALL_TARGETS_DEFAULT_ARGS})
|
install(TARGETS partitionmanager ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
|
||||||
install(FILES org.kde.partitionmanager.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR})
|
install(FILES org.kde.partitionmanager.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR})
|
||||||
install(FILES gui/partitionmanagerui.rc DESTINATION ${KDE_INSTALL_KXMLGUI5DIR}/partitionmanager)
|
install(FILES gui/partitionmanagerui.rc DESTINATION ${KDE_INSTALL_KXMLGUI5DIR}/partitionmanager)
|
||||||
install(PROGRAMS org.kde.partitionmanager.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})
|
install(PROGRAMS org.kde.partitionmanager.desktop DESTINATION ${KDE_INSTALL_APPDIR})
|
||||||
|
|
||||||
############################################
|
############################################
|
||||||
|
|
||||||
|
install(FILES open_in_partitionmanager.desktop
|
||||||
|
open_in_partitionmanager.desktop
|
||||||
|
DESTINATION ${KDE_INSTALL_DATADIR}/solid/actions/)
|
||||||
|
|
|
@ -1,6 +1,11 @@
|
||||||
#! /usr/bin/env bash
|
#! /usr/bin/env bash
|
||||||
$EXTRACTRC `find -name \*.rc` >> rc.cpp || exit 11
|
|
||||||
$EXTRACTRC `find -name \*.ui` >> rc.cpp || exit 12
|
# SPDX-FileCopyrightText: 2008 Laurent Montel <montel@kde.org>
|
||||||
$EXTRACTRC `find -name \*.kcfg` >> rc.cpp || exit 12
|
|
||||||
$XGETTEXT `find -name \*.cc -o -name \*.cpp -o -name \*.h` rc.cpp -o $podir/partitionmanager.pot
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
$EXTRACTRC $(find -name \*.rc) >> rc.cpp || exit 11
|
||||||
|
$EXTRACTRC $(find -name \*.ui) >> rc.cpp || exit 12
|
||||||
|
$EXTRACTRC $(find -name \*.kcfg) >> rc.cpp || exit 12
|
||||||
|
$XGETTEXT $(find -name \*.cc -o -name \*.cpp -o -name \*.h) rc.cpp -o $podir/partitionmanager.pot
|
||||||
rm -f rc.cpp
|
rm -f rc.cpp
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
# SPDX-FileCopyrightText: 2008-2010 Volker Lanz <vl@fidra.de>
|
||||||
|
# SPDX-FileCopyrightText: 2015 Andrius Štikonas
|
||||||
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
File=partitionmanager.kcfg
|
File=partitionmanager.kcfg
|
||||||
ClassName=Config
|
ClassName=Config
|
||||||
Singleton=true
|
Singleton=true
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
# SPDX-FileCopyrightText: 2015 Chris Campbell <c.j.campbell@ed.ac.uk>
|
||||||
|
|
||||||
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
set(CONFIG_SRC
|
set(CONFIG_SRC
|
||||||
config/advancedpagewidget.cpp
|
config/advancedpagewidget.cpp
|
||||||
config/configureoptionsdialog.cpp
|
config/configureoptionsdialog.cpp
|
||||||
|
|
|
@ -1,20 +1,9 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* Copyright (C) 2016 by Andrius Štikonas <andrius@stikonas.eu> *
|
SPDX-FileCopyrightText: 2014-2017 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* modify it under the terms of the GNU General Public License as *
|
*/
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#include "config/advancedpagewidget.h"
|
#include "config/advancedpagewidget.h"
|
||||||
|
|
||||||
|
|
|
@ -1,20 +1,9 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* Copyright (C) 2016 by Andrius Štikonas <andrius@stikonas.eu> *
|
SPDX-FileCopyrightText: 2014-2017 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* modify it under the terms of the GNU General Public License as *
|
*/
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#if !defined(ADVANCEDPAGEWIDGET_H)
|
#if !defined(ADVANCEDPAGEWIDGET_H)
|
||||||
|
|
||||||
|
@ -32,7 +21,7 @@ class QComboBox;
|
||||||
class AdvancedPageWidget : public QWidget, public Ui::ConfigurePageAdvanced
|
class AdvancedPageWidget : public QWidget, public Ui::ConfigurePageAdvanced
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
AdvancedPageWidget(QWidget* parent);
|
explicit AdvancedPageWidget(QWidget* parent);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
QComboBox& comboBackend() {
|
QComboBox& comboBackend() {
|
||||||
|
|
|
@ -1,20 +1,9 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* Copyright (C) 2016 by Andrius Štikonas <andrius@stikonas.eu> *
|
SPDX-FileCopyrightText: 2014-2020 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* modify it under the terms of the GNU General Public License as *
|
*/
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#include "config/configureoptionsdialog.h"
|
#include "config/configureoptionsdialog.h"
|
||||||
#include "config/generalpagewidget.h"
|
#include "config/generalpagewidget.h"
|
||||||
|
@ -33,7 +22,6 @@
|
||||||
|
|
||||||
#include "ui_configurepagefilesystemcolors.h"
|
#include "ui_configurepagefilesystemcolors.h"
|
||||||
|
|
||||||
#include <KIconLoader>
|
|
||||||
#include <KLocalizedString>
|
#include <KLocalizedString>
|
||||||
#include <KMessageBox>
|
#include <KMessageBox>
|
||||||
|
|
||||||
|
@ -51,19 +39,14 @@ ConfigureOptionsDialog::ConfigureOptionsDialog(QWidget* parent, const OperationS
|
||||||
{
|
{
|
||||||
setFaceType(List);
|
setFaceType(List);
|
||||||
|
|
||||||
KPageWidgetItem* item = nullptr;
|
addPage(&generalPageWidget(), xi18nc("@title:tab general application settings", "General"), QStringLiteral("partitionmanager"), i18n("General Settings"));
|
||||||
|
|
||||||
item = addPage(&generalPageWidget(), xi18nc("@title:tab general application settings", "General"), QString(), i18n("General Settings"));
|
|
||||||
item->setIcon(QIcon::fromTheme(QStringLiteral("partitionmanager")).pixmap(IconSize(KIconLoader::Desktop)));
|
|
||||||
|
|
||||||
connect(&generalPageWidget().comboDefaultFileSystem(), qOverload<int>(&QComboBox::activated), this, &ConfigureOptionsDialog::onComboDefaultFileSystemActivated);
|
connect(&generalPageWidget().comboDefaultFileSystem(), qOverload<int>(&QComboBox::activated), this, &ConfigureOptionsDialog::onComboDefaultFileSystemActivated);
|
||||||
connect(generalPageWidget().radioButton, &QRadioButton::toggled, this, &ConfigureOptionsDialog::onShredSourceActivated);
|
connect(generalPageWidget().radioButton, &QRadioButton::toggled, this, &ConfigureOptionsDialog::onShredSourceActivated);
|
||||||
|
|
||||||
item = addPage(&fileSystemColorsPageWidget(), xi18nc("@title:tab", "File System Colors"), QString(), i18n("File System Color Settings"));
|
addPage(&fileSystemColorsPageWidget(), xi18nc("@title:tab", "File System Colors"), QStringLiteral("preferences-desktop-color"), i18n("File System Color Settings"));
|
||||||
item->setIcon(QIcon::fromTheme(QStringLiteral("format-fill-color")).pixmap(IconSize(KIconLoader::Desktop)));
|
|
||||||
|
|
||||||
item = addPage(&advancedPageWidget(), xi18nc("@title:tab advanced application settings", "Advanced"), QString(), i18n("Advanced Settings"));
|
addPage(&advancedPageWidget(), xi18nc("@title:tab advanced application settings", "Advanced"), QStringLiteral("preferences-other"), i18n("Advanced Settings"));
|
||||||
item->setIcon(QIcon::fromTheme(QStringLiteral("configure")).pixmap(IconSize(KIconLoader::Desktop)));
|
|
||||||
|
|
||||||
connect(&advancedPageWidget().comboBackend(), qOverload<int>(&QComboBox::activated), this, &ConfigureOptionsDialog::onComboDefaultFileSystemActivated);
|
connect(&advancedPageWidget().comboBackend(), qOverload<int>(&QComboBox::activated), this, &ConfigureOptionsDialog::onComboDefaultFileSystemActivated);
|
||||||
|
|
||||||
|
@ -101,7 +84,7 @@ void ConfigureOptionsDialog::updateSettings()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (changed)
|
if (changed)
|
||||||
emit KConfigDialog::settingsChanged(i18n("General Settings"));
|
Q_EMIT KConfigDialog::settingsChanged(i18n("General Settings"));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ConfigureOptionsDialog::hasChanged()
|
bool ConfigureOptionsDialog::hasChanged()
|
||||||
|
|
|
@ -1,20 +1,9 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* Copyright (C) 2016 by Andrius Štikonas <andrius@stikonas.eu> *
|
SPDX-FileCopyrightText: 2014-2017 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* modify it under the terms of the GNU General Public License as *
|
*/
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#if !defined(CONFIGUREOPTIONSDIALOG_H)
|
#if !defined(CONFIGUREOPTIONSDIALOG_H)
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,11 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
|
<author>
|
||||||
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
|
SPDX-FileCopyrightText: 2010-2014 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
|
SPDX-FileCopyrightText: 2018 Shubham Jangra <aryan100jangid@gmail.com>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
</author>
|
||||||
<class>ConfigurePageAdvanced</class>
|
<class>ConfigurePageAdvanced</class>
|
||||||
<widget class="QWidget" name="ConfigurePageAdvanced">
|
<widget class="QWidget" name="ConfigurePageAdvanced">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,5 +1,10 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
|
<author>
|
||||||
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
|
SPDX-FileCopyrightText: 2014 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
</author>
|
||||||
<class>ConfigurePageGeneral</class>
|
<class>ConfigurePageGeneral</class>
|
||||||
<widget class="QWidget" name="ConfigurePageGeneral">
|
<widget class="QWidget" name="ConfigurePageGeneral">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
|
|
|
@ -1,19 +1,8 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* modify it under the terms of the GNU General Public License as *
|
*/
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#include "config/filesystemcolorspagewidget.h"
|
#include "config/filesystemcolorspagewidget.h"
|
||||||
|
|
||||||
|
|
|
@ -1,19 +1,9 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* modify it under the terms of the GNU General Public License as *
|
*/
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#if !defined(FILESYSTEMCOLORSPAGEWIDGET_H)
|
#if !defined(FILESYSTEMCOLORSPAGEWIDGET_H)
|
||||||
|
|
||||||
|
@ -26,7 +16,7 @@
|
||||||
class FileSystemColorsPageWidget : public QWidget, public Ui::ConfigurePageFileSystemColors
|
class FileSystemColorsPageWidget : public QWidget, public Ui::ConfigurePageFileSystemColors
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
FileSystemColorsPageWidget(QWidget* parent);
|
explicit FileSystemColorsPageWidget(QWidget* parent);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,20 +1,9 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* Copyright (C) 2016 by Andrius Štikonas <andrius@stikonas.eu> *
|
SPDX-FileCopyrightText: 2014-2020 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* modify it under the terms of the GNU General Public License as *
|
*/
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#include "config/generalpagewidget.h"
|
#include "config/generalpagewidget.h"
|
||||||
|
|
||||||
|
@ -24,6 +13,8 @@
|
||||||
#include <util/helpers.h>
|
#include <util/helpers.h>
|
||||||
#include "util/guihelpers.h"
|
#include "util/guihelpers.h"
|
||||||
|
|
||||||
|
#include <utility>
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
GeneralPageWidget::GeneralPageWidget(QWidget* parent) :
|
GeneralPageWidget::GeneralPageWidget(QWidget* parent) :
|
||||||
|
@ -53,7 +44,7 @@ void GeneralPageWidget::setupDialog()
|
||||||
|
|
||||||
std::sort(fsNames.begin(), fsNames.end(), caseInsensitiveLessThan);
|
std::sort(fsNames.begin(), fsNames.end(), caseInsensitiveLessThan);
|
||||||
|
|
||||||
for (const auto &fsName : qAsConst(fsNames))
|
for (const auto &fsName : std::as_const(fsNames))
|
||||||
comboDefaultFileSystem().addItem(createFileSystemColor(FileSystem::typeForName(fsName), 8), fsName);
|
comboDefaultFileSystem().addItem(createFileSystemColor(FileSystem::typeForName(fsName), 8), fsName);
|
||||||
|
|
||||||
setDefaultFileSystem(GuiHelpers::defaultFileSystem());
|
setDefaultFileSystem(GuiHelpers::defaultFileSystem());
|
||||||
|
|
|
@ -1,20 +1,11 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* Copyright (C) 2016 by Andrius Štikonas <andrius@stikonas.eu> *
|
SPDX-FileCopyrightText: 2014-2017 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* *
|
SPDX-FileCopyrightText: 2019 Yuri Chornoivan <yurchor@ukr.net>
|
||||||
* This program is free software; you can redistribute it and/or *
|
|
||||||
* modify it under the terms of the GNU General Public License as *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
*/
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#if !defined(GENERALPAGEWIDGET_H)
|
#if !defined(GENERALPAGEWIDGET_H)
|
||||||
|
|
||||||
|
@ -31,7 +22,7 @@ class QString;
|
||||||
class GeneralPageWidget : public QWidget, public Ui::ConfigurePageGeneral
|
class GeneralPageWidget : public QWidget, public Ui::ConfigurePageGeneral
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
GeneralPageWidget(QWidget* parent);
|
explicit GeneralPageWidget(QWidget* parent);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
QComboBox& comboDefaultFileSystem() {
|
QComboBox& comboDefaultFileSystem() {
|
||||||
|
|
|
@ -1,3 +1,10 @@
|
||||||
|
# SPDX-FileCopyrightText: 2015 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
|
# SPDX-FileCopyrightText: 2015 Chris Campbell <c.j.campbell@ed.ac.uk>
|
||||||
|
# SPDX-FileCopyrightText: 2015 Teo Mrnjavac <teo@kde.org>
|
||||||
|
# SPDX-FileCopyrightText: 2016 Chantara Tith <tith.chantara@gmail.com>
|
||||||
|
|
||||||
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
set(GUI_SRC
|
set(GUI_SRC
|
||||||
gui/applyprogressdetailswidget.cpp
|
gui/applyprogressdetailswidget.cpp
|
||||||
gui/applyprogressdialog.cpp
|
gui/applyprogressdialog.cpp
|
||||||
|
|
|
@ -1,18 +1,7 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2008, 2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* modify it under the terms of the GNU General Public License as *
|
*/
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#include "gui/applyprogressdetailswidget.h"
|
#include "gui/applyprogressdetailswidget.h"
|
||||||
|
|
|
@ -1,19 +1,8 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2008, 2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* modify it under the terms of the GNU General Public License as *
|
*/
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#if !defined(APPLYPROGRESSDETAILSWIDGET_H)
|
#if !defined(APPLYPROGRESSDETAILSWIDGET_H)
|
||||||
|
|
||||||
|
@ -27,7 +16,7 @@
|
||||||
class ApplyProgressDetailsWidget : public QWidget, public Ui::ApplyProgressDetailsWidgetBase
|
class ApplyProgressDetailsWidget : public QWidget, public Ui::ApplyProgressDetailsWidgetBase
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ApplyProgressDetailsWidget(QWidget* parent) : QWidget(parent) {
|
explicit ApplyProgressDetailsWidget(QWidget* parent) : QWidget(parent) {
|
||||||
setupUi(this);
|
setupUi(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,10 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
|
<author>
|
||||||
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
|
SPDX-FileCopyrightText: 2014 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
</author>
|
||||||
<class>ApplyProgressDetailsWidgetBase</class>
|
<class>ApplyProgressDetailsWidgetBase</class>
|
||||||
<widget class="QWidget" name="ApplyProgressDetailsWidgetBase">
|
<widget class="QWidget" name="ApplyProgressDetailsWidgetBase">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
|
|
|
@ -1,20 +1,9 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2008 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* Copyright (C) 2016 by Andrius Štikonas <andrius@stikonas.eu> *
|
SPDX-FileCopyrightText: 2014-2020 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* modify it under the terms of the GNU General Public License as *
|
*/
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#include "gui/applyprogressdialog.h"
|
#include "gui/applyprogressdialog.h"
|
||||||
|
|
||||||
|
@ -43,11 +32,10 @@
|
||||||
|
|
||||||
#include <KAboutData>
|
#include <KAboutData>
|
||||||
#include <KConfigGroup>
|
#include <KConfigGroup>
|
||||||
#include <KRun>
|
|
||||||
#include <KIO/CopyJob>
|
#include <KIO/CopyJob>
|
||||||
|
#include <KIO/OpenUrlJob>
|
||||||
#include <KJobUiDelegate>
|
#include <KJobUiDelegate>
|
||||||
#include <KLocalizedString>
|
#include <KLocalizedString>
|
||||||
#include <KIconLoader>
|
|
||||||
#include <KMessageBox>
|
#include <KMessageBox>
|
||||||
#include <KSharedConfig>
|
#include <KSharedConfig>
|
||||||
|
|
||||||
|
@ -72,7 +60,7 @@ ApplyProgressDialog::ApplyProgressDialog(QWidget* parent, OperationRunner& orunn
|
||||||
m_Report(nullptr),
|
m_Report(nullptr),
|
||||||
m_SavedParentTitle(mainWindow(this)->windowTitle()),
|
m_SavedParentTitle(mainWindow(this)->windowTitle()),
|
||||||
m_Timer(this),
|
m_Timer(this),
|
||||||
m_Time(),
|
m_ElapsedTimer(),
|
||||||
m_CurrentOpItem(nullptr),
|
m_CurrentOpItem(nullptr),
|
||||||
m_CurrentJobItem(nullptr),
|
m_CurrentJobItem(nullptr),
|
||||||
m_LastReportUpdate(0)
|
m_LastReportUpdate(0)
|
||||||
|
@ -93,13 +81,13 @@ ApplyProgressDialog::ApplyProgressDialog(QWidget* parent, OperationRunner& orunn
|
||||||
cancelButton = dialogButtonBox->addButton(QDialogButtonBox::Cancel);
|
cancelButton = dialogButtonBox->addButton(QDialogButtonBox::Cancel);
|
||||||
detailsButton = new QPushButton;
|
detailsButton = new QPushButton;
|
||||||
detailsButton->setText(xi18nc("@action:button", "&Details") + QStringLiteral(" >>"));
|
detailsButton->setText(xi18nc("@action:button", "&Details") + QStringLiteral(" >>"));
|
||||||
detailsButton->setIcon(QIcon::fromTheme(QStringLiteral("help-about")).pixmap(IconSize(KIconLoader::Toolbar)));
|
detailsButton->setIcon(QIcon::fromTheme(QStringLiteral("help-about")));
|
||||||
dialogButtonBox->addButton(detailsButton, QDialogButtonBox::ActionRole);
|
dialogButtonBox->addButton(detailsButton, QDialogButtonBox::ActionRole);
|
||||||
mainLayout->addWidget(dialogButtonBox);
|
mainLayout->addWidget(dialogButtonBox);
|
||||||
|
|
||||||
dialogWidget().treeTasks().setColumnWidth(0, width() * 8 / 10);
|
dialogWidget().treeTasks().setColumnWidth(0, width() * 8 / 10);
|
||||||
detailsWidget().buttonBrowser().setIcon(QIcon::fromTheme(QStringLiteral("document-open")).pixmap(IconSize(KIconLoader::Toolbar)));
|
detailsWidget().buttonBrowser().setIcon(QIcon::fromTheme(QStringLiteral("document-open")));
|
||||||
detailsWidget().buttonSave().setIcon(QIcon::fromTheme(QStringLiteral("document-save")).pixmap(IconSize(KIconLoader::Toolbar)));
|
detailsWidget().buttonSave().setIcon(QIcon::fromTheme(QStringLiteral("document-save")));
|
||||||
|
|
||||||
setupConnections();
|
setupConnections();
|
||||||
|
|
||||||
|
@ -297,7 +285,7 @@ void ApplyProgressDialog::onJobStarted(Job* job, Operation* op)
|
||||||
|
|
||||||
QTreeWidgetItem* child = new QTreeWidgetItem();
|
QTreeWidgetItem* child = new QTreeWidgetItem();
|
||||||
child->setText(0, job->description());
|
child->setText(0, job->description());
|
||||||
child->setIcon(0, QIcon::fromTheme(job->statusIcon()).pixmap(IconSize(KIconLoader::Small)));
|
child->setIcon(0, QIcon::fromTheme(job->statusIcon()));
|
||||||
child->setText(1, QTime(0, 0).toString(timeFormat()));
|
child->setText(1, QTime(0, 0).toString(timeFormat()));
|
||||||
item->addChild(child);
|
item->addChild(child);
|
||||||
dialogWidget().treeTasks().scrollToBottom();
|
dialogWidget().treeTasks().scrollToBottom();
|
||||||
|
@ -309,7 +297,7 @@ void ApplyProgressDialog::onJobStarted(Job* job, Operation* op)
|
||||||
void ApplyProgressDialog::onJobFinished(Job* job, Operation* op)
|
void ApplyProgressDialog::onJobFinished(Job* job, Operation* op)
|
||||||
{
|
{
|
||||||
if (currentJobItem())
|
if (currentJobItem())
|
||||||
currentJobItem()->setIcon(0, QIcon::fromTheme(job->statusIcon()).pixmap(IconSize(KIconLoader::Small)));
|
currentJobItem()->setIcon(0, QIcon::fromTheme(job->statusIcon()));
|
||||||
|
|
||||||
setCurrentJobItem(nullptr);
|
setCurrentJobItem(nullptr);
|
||||||
|
|
||||||
|
@ -324,7 +312,7 @@ void ApplyProgressDialog::onOpFinished(int num, Operation* op)
|
||||||
{
|
{
|
||||||
if (currentOpItem()) {
|
if (currentOpItem()) {
|
||||||
currentOpItem()->setText(0, opDesc(num, *op));
|
currentOpItem()->setText(0, opDesc(num, *op));
|
||||||
currentOpItem()->setIcon(0, QIcon::fromTheme(op->statusIcon()).pixmap(IconSize(KIconLoader::Small)));
|
currentOpItem()->setIcon(0, QIcon::fromTheme(op->statusIcon()));
|
||||||
}
|
}
|
||||||
|
|
||||||
setCurrentOpItem(nullptr);
|
setCurrentOpItem(nullptr);
|
||||||
|
@ -357,7 +345,7 @@ QString ApplyProgressDialog::opDesc(int num, const Operation& op) const
|
||||||
void ApplyProgressDialog::addTaskOutput(int num, const Operation& op)
|
void ApplyProgressDialog::addTaskOutput(int num, const Operation& op)
|
||||||
{
|
{
|
||||||
QTreeWidgetItem* item = new QTreeWidgetItem();
|
QTreeWidgetItem* item = new QTreeWidgetItem();
|
||||||
item->setIcon(0, QIcon::fromTheme(op.statusIcon()).pixmap(IconSize(KIconLoader::Small)));
|
item->setIcon(0, QIcon::fromTheme(op.statusIcon()));
|
||||||
item->setText(0, opDesc(num, op));
|
item->setText(0, opDesc(num, op));
|
||||||
item->setText(1, QTime(0, 0).toString(timeFormat()));
|
item->setText(1, QTime(0, 0).toString(timeFormat()));
|
||||||
|
|
||||||
|
@ -440,8 +428,6 @@ void ApplyProgressDialog::browserReport()
|
||||||
{
|
{
|
||||||
QTemporaryFile file;
|
QTemporaryFile file;
|
||||||
|
|
||||||
// Make sure the temp file is created somewhere another user can read it: KRun::runUrl() will open
|
|
||||||
// the file as the logged in user, not as the user running our application.
|
|
||||||
file.setFileTemplate(QStringLiteral("/tmp/") + QCoreApplication::applicationName() + QStringLiteral("-XXXXXX.html"));
|
file.setFileTemplate(QStringLiteral("/tmp/") + QCoreApplication::applicationName() + QStringLiteral("-XXXXXX.html"));
|
||||||
file.setAutoRemove(false);
|
file.setAutoRemove(false);
|
||||||
|
|
||||||
|
@ -454,11 +440,10 @@ void ApplyProgressDialog::browserReport()
|
||||||
<< report().toHtml()
|
<< report().toHtml()
|
||||||
<< html.footer();
|
<< html.footer();
|
||||||
|
|
||||||
// set the temp file's permission for everyone to read it.
|
file.setPermissions(QFile::ReadOwner | QFile::WriteOwner);
|
||||||
file.setPermissions(QFile::ReadOwner | QFile::WriteOwner | QFile::ReadGroup | QFile::ReadOther);
|
|
||||||
|
|
||||||
if (!KRun::runUrl(QUrl::fromLocalFile(file.fileName()), QStringLiteral("text/html"), this, KRun::RunFlags()))
|
auto *job = new KIO::OpenUrlJob(QUrl::fromLocalFile(file.fileName()), QStringLiteral("text/html"), this);
|
||||||
KMessageBox::sorry(this, xi18nc("@info", "The configured external browser could not be run. Please check your settings."), xi18nc("@title:window", "Could Not Launch Browser."));
|
job->start();
|
||||||
} else
|
} else
|
||||||
KMessageBox::sorry(this, xi18nc("@info", "Could not create temporary file <filename>%1</filename> for writing.", file.fileName()), i18nc("@title:window", "Could Not Launch Browser."));
|
KMessageBox::sorry(this, xi18nc("@info", "Could not create temporary file <filename>%1</filename> for writing.", file.fileName()), i18nc("@title:window", "Could Not Launch Browser."));
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,27 +1,16 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2008, 2012 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* Copyright (C) 2016 by Andrius Štikonas <andrius@stikonas.eu> *
|
SPDX-FileCopyrightText: 2014-2020 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* modify it under the terms of the GNU General Public License as *
|
*/
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#ifndef APPLYPROGRESSDIALOG_H
|
#ifndef APPLYPROGRESSDIALOG_H
|
||||||
#define APPLYPROGRESSDIALOG_H
|
#define APPLYPROGRESSDIALOG_H
|
||||||
|
|
||||||
#include <QDialog>
|
#include <QDialog>
|
||||||
#include <QString>
|
#include <QString>
|
||||||
#include <QTime>
|
#include <QElapsedTimer>
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
|
|
||||||
class OperationRunner;
|
class OperationRunner;
|
||||||
|
@ -124,8 +113,8 @@ protected:
|
||||||
|
|
||||||
void allOpsDone(const QString& msg);
|
void allOpsDone(const QString& msg);
|
||||||
|
|
||||||
QTime& time() {
|
QElapsedTimer& time() {
|
||||||
return m_Time;
|
return m_ElapsedTimer;
|
||||||
}
|
}
|
||||||
|
|
||||||
QTimer& timer() {
|
QTimer& timer() {
|
||||||
|
@ -171,7 +160,7 @@ private:
|
||||||
Report* m_Report;
|
Report* m_Report;
|
||||||
QString m_SavedParentTitle;
|
QString m_SavedParentTitle;
|
||||||
QTimer m_Timer;
|
QTimer m_Timer;
|
||||||
QTime m_Time;
|
QElapsedTimer m_ElapsedTimer;
|
||||||
QTreeWidgetItem* m_CurrentOpItem;
|
QTreeWidgetItem* m_CurrentOpItem;
|
||||||
QTreeWidgetItem* m_CurrentJobItem;
|
QTreeWidgetItem* m_CurrentJobItem;
|
||||||
int m_LastReportUpdate;
|
int m_LastReportUpdate;
|
||||||
|
|
|
@ -1,19 +1,9 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2008 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* *
|
SPDX-FileCopyrightText: 2017 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* This program is free software; you can redistribute it and/or *
|
|
||||||
* modify it under the terms of the GNU General Public License as *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
*/
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#include "gui/applyprogressdialogwidget.h"
|
#include "gui/applyprogressdialogwidget.h"
|
||||||
|
|
||||||
|
|
|
@ -1,19 +1,10 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2008 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* *
|
SPDX-FileCopyrightText: 2016-2017 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-FileCopyrightText: 2019 Yuri Chornoivan <yurchor@ukr.net>
|
||||||
* modify it under the terms of the GNU General Public License as *
|
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* the License, or (at your option) any later version. *
|
*/
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#if !defined(APPLYPROGRESSDIALOGWIDGET_H)
|
#if !defined(APPLYPROGRESSDIALOGWIDGET_H)
|
||||||
|
|
||||||
|
@ -27,7 +18,7 @@
|
||||||
class ApplyProgressDialogWidget : public QWidget, public Ui::ApplyProgressDialogWidgetBase
|
class ApplyProgressDialogWidget : public QWidget, public Ui::ApplyProgressDialogWidgetBase
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ApplyProgressDialogWidget(QWidget* parent);
|
explicit ApplyProgressDialogWidget(QWidget* parent);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
QTreeWidget& treeTasks() {
|
QTreeWidget& treeTasks() {
|
||||||
|
|
|
@ -1,5 +1,10 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
|
<author>
|
||||||
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
|
SPDX-FileCopyrightText: 2016 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
</author>
|
||||||
<class>ApplyProgressDialogWidgetBase</class>
|
<class>ApplyProgressDialogWidgetBase</class>
|
||||||
<widget class="QWidget" name="ApplyProgressDialogWidgetBase">
|
<widget class="QWidget" name="ApplyProgressDialogWidgetBase">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
|
|
|
@ -1,20 +1,11 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* Copyright (C) 2016 by Andrius Štikonas <andrius@stikonas.eu> *
|
SPDX-FileCopyrightText: 2014-2016 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* *
|
SPDX-FileCopyrightText: 2016 Chantara Tith <tith.chantara@gmail.com>
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-FileCopyrightText: 2019 Yuri Chornoivan <yurchor@ukr.net>
|
||||||
* modify it under the terms of the GNU General Public License as *
|
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* the License, or (at your option) any later version. *
|
*/
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#include "gui/createpartitiontabledialog.h"
|
#include "gui/createpartitiontabledialog.h"
|
||||||
#include "gui/createpartitiontablewidget.h"
|
#include "gui/createpartitiontablewidget.h"
|
||||||
|
|
|
@ -1,20 +1,9 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* Copyright (C) 2016 by Andrius Štikonas <andrius@stikonas.eu> *
|
SPDX-FileCopyrightText: 2014-2017 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* modify it under the terms of the GNU General Public License as *
|
*/
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#if !defined(CREATEPARTITIONTABLEDIALOG_H)
|
#if !defined(CREATEPARTITIONTABLEDIALOG_H)
|
||||||
|
|
||||||
|
|
|
@ -1,20 +1,9 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* Copyright (C) 2016 by Andrius Štikonas <andrius@stikonas.eu> *
|
SPDX-FileCopyrightText: 2014-2016 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* modify it under the terms of the GNU General Public License as *
|
*/
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#include "gui/createpartitiontablewidget.h"
|
#include "gui/createpartitiontablewidget.h"
|
||||||
|
|
||||||
|
|
|
@ -1,19 +1,10 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* *
|
SPDX-FileCopyrightText: 2014-2016 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-FileCopyrightText: 2019 Yuri Chornoivan <yurchor@ukr.net>
|
||||||
* modify it under the terms of the GNU General Public License as *
|
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* the License, or (at your option) any later version. *
|
*/
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#if !defined(CREATEPARTITIONTABLEWIDGET_H)
|
#if !defined(CREATEPARTITIONTABLEWIDGET_H)
|
||||||
|
|
||||||
|
@ -28,7 +19,7 @@
|
||||||
class CreatePartitionTableWidget : public QWidget, public Ui::CreatePartitionTableWidgetBase
|
class CreatePartitionTableWidget : public QWidget, public Ui::CreatePartitionTableWidgetBase
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CreatePartitionTableWidget(QWidget* parent);
|
explicit CreatePartitionTableWidget(QWidget* parent);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
QRadioButton& radioMSDOS() {
|
QRadioButton& radioMSDOS() {
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
|
<author>
|
||||||
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
</author>
|
||||||
<class>CreatePartitionTableWidgetBase</class>
|
<class>CreatePartitionTableWidgetBase</class>
|
||||||
<widget class="QWidget" name="CreatePartitionTableWidgetBase">
|
<widget class="QWidget" name="CreatePartitionTableWidgetBase">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
|
|
|
@ -1,20 +1,11 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2016 by Chantara Tith <tith.chantara@gmail.com> *
|
SPDX-FileCopyrightText: 2016 Chantara Tith <tith.chantara@gmail.com>
|
||||||
* Copyright (C) 2016 by Andrius Štikonas <andrius@stikonas.eu> *
|
SPDX-FileCopyrightText: 2016-2020 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* *
|
SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho <caiojcarvalho@gmail.com>
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-FileCopyrightText: 2019 Yuri Chornoivan <yurchor@ukr.net>
|
||||||
* modify it under the terms of the GNU General Public License as *
|
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* the License, or (at your option) any later version. *
|
*/
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#include "gui/createvolumegroupdialog.h"
|
#include "gui/createvolumegroupdialog.h"
|
||||||
#include "gui/volumegroupwidget.h"
|
#include "gui/volumegroupwidget.h"
|
||||||
|
@ -30,6 +21,8 @@
|
||||||
#include <util/capacity.h>
|
#include <util/capacity.h>
|
||||||
#include <util/helpers.h>
|
#include <util/helpers.h>
|
||||||
|
|
||||||
|
#include <utility>
|
||||||
|
|
||||||
#include <QtGlobal>
|
#include <QtGlobal>
|
||||||
|
|
||||||
#include <KConfigGroup>
|
#include <KConfigGroup>
|
||||||
|
@ -57,11 +50,11 @@ CreateVolumeGroupDialog::CreateVolumeGroupDialog(QWidget* parent, QString& vgNam
|
||||||
|
|
||||||
void CreateVolumeGroupDialog::setupDialog()
|
void CreateVolumeGroupDialog::setupDialog()
|
||||||
{
|
{
|
||||||
for (const auto &p : qAsConst(LVM::pvList::list())) {
|
for (const auto &p : std::as_const(LVM::pvList::list())) {
|
||||||
bool toBeDeleted = false;
|
bool toBeDeleted = false;
|
||||||
|
|
||||||
// Ignore partitions that are going to be deleted
|
// Ignore partitions that are going to be deleted
|
||||||
for (const auto &o : qAsConst(m_PendingOps)) {
|
for (const auto &o : std::as_const(m_PendingOps)) {
|
||||||
if (dynamic_cast<DeleteOperation *>(o) && o->targets(*p.partition())) {
|
if (dynamic_cast<DeleteOperation *>(o) && o->targets(*p.partition())) {
|
||||||
toBeDeleted = true;
|
toBeDeleted = true;
|
||||||
break;
|
break;
|
||||||
|
@ -71,13 +64,13 @@ void CreateVolumeGroupDialog::setupDialog()
|
||||||
if (toBeDeleted)
|
if (toBeDeleted)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (!p.isLuks() && p.vgName() == QString() && !LvmDevice::s_DirtyPVs.contains(p.partition()))
|
if (!p.isLuks() && p.vgName().isEmpty() && !LvmDevice::s_DirtyPVs.contains(p.partition()))
|
||||||
dialogWidget().listPV().addPartition(*p.partition(), false);
|
dialogWidget().listPV().addPartition(*p.partition(), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const Device *d : qAsConst(m_Devices)) {
|
for (const Device *d : std::as_const(m_Devices)) {
|
||||||
if (d->partitionTable() != nullptr) {
|
if (d->partitionTable() != nullptr) {
|
||||||
for (const Partition *p : qAsConst(d->partitionTable()->children())) {
|
for (const Partition *p : std::as_const(d->partitionTable()->children())) {
|
||||||
// Looking if there is another VG creation that contains this partition
|
// Looking if there is another VG creation that contains this partition
|
||||||
if (LvmDevice::s_DirtyPVs.contains(p))
|
if (LvmDevice::s_DirtyPVs.contains(p))
|
||||||
continue;
|
continue;
|
||||||
|
@ -97,7 +90,7 @@ void CreateVolumeGroupDialog::setupDialog()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const Partition *p : qAsConst(LvmDevice::s_OrphanPVs))
|
for (const Partition *p : std::as_const(LvmDevice::s_OrphanPVs))
|
||||||
if (!LvmDevice::s_DirtyPVs.contains(p))
|
if (!LvmDevice::s_DirtyPVs.contains(p))
|
||||||
dialogWidget().listPV().addPartition(*p, false);
|
dialogWidget().listPV().addPartition(*p, false);
|
||||||
}
|
}
|
||||||
|
@ -146,7 +139,7 @@ void CreateVolumeGroupDialog::onVGNameChanged(const QString& vgName)
|
||||||
|
|
||||||
void CreateVolumeGroupDialog::onSpinPESizeChanged(int newsize)
|
void CreateVolumeGroupDialog::onSpinPESizeChanged(int newsize)
|
||||||
{
|
{
|
||||||
Q_UNUSED(newsize);
|
Q_UNUSED(newsize)
|
||||||
updateOkButtonStatus();
|
updateOkButtonStatus();
|
||||||
updateSectorInfos();
|
updateSectorInfos();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,19 +1,11 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2016 by Chantara Tith <tith.chantara@gmail.com> *
|
SPDX-FileCopyrightText: 2016 Chantara Tith <tith.chantara@gmail.com>
|
||||||
* *
|
SPDX-FileCopyrightText: 2017 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho <caiojcarvalho@gmail.com>
|
||||||
* modify it under the terms of the GNU General Public License as *
|
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* the License, or (at your option) any later version. *
|
*/
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#ifndef CREATEVOLUMEGROUPDIALOG_H
|
#ifndef CREATEVOLUMEGROUPDIALOG_H
|
||||||
#define CREATEVOLUMEGROUPDIALOG_H
|
#define CREATEVOLUMEGROUPDIALOG_H
|
||||||
|
|
|
@ -1,20 +1,9 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2008, 2009 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* Copyright (C) 2016 by Andrius Štikonas <andrius@stikonas.eu> *
|
SPDX-FileCopyrightText: 2014-2020 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* modify it under the terms of the GNU General Public License as *
|
*/
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#include "gui/devicepropsdialog.h"
|
#include "gui/devicepropsdialog.h"
|
||||||
#include "gui/devicepropswidget.h"
|
#include "gui/devicepropswidget.h"
|
||||||
|
@ -30,13 +19,13 @@
|
||||||
#include <util/helpers.h>
|
#include <util/helpers.h>
|
||||||
|
|
||||||
#include <KConfigGroup>
|
#include <KConfigGroup>
|
||||||
#include <KIconLoader>
|
|
||||||
#include <KLocalizedString>
|
#include <KLocalizedString>
|
||||||
#include <KSharedConfig>
|
#include <KSharedConfig>
|
||||||
|
|
||||||
#include <QDialogButtonBox>
|
#include <QDialogButtonBox>
|
||||||
#include <QPointer>
|
#include <QPointer>
|
||||||
#include <QPushButton>
|
#include <QPushButton>
|
||||||
|
#include <QStyle>
|
||||||
|
|
||||||
/** Creates a new DevicePropsDialog
|
/** Creates a new DevicePropsDialog
|
||||||
@param parent pointer to the parent widget
|
@param parent pointer to the parent widget
|
||||||
|
@ -116,10 +105,13 @@ void DevicePropsDialog::setupDialog()
|
||||||
if (device().smartStatus().isValid()) {
|
if (device().smartStatus().isValid()) {
|
||||||
if (device().smartStatus().status()) {
|
if (device().smartStatus().status()) {
|
||||||
dialogWidget().smartStatusText().setText(xi18nc("@label SMART disk status", "good"));
|
dialogWidget().smartStatusText().setText(xi18nc("@label SMART disk status", "good"));
|
||||||
dialogWidget().smartStatusIcon().setPixmap(QIcon::fromTheme(QStringLiteral("dialog-ok")).pixmap(IconSize(KIconLoader::Small)));
|
dialogWidget().smartStatusIcon().setPixmap(QIcon::fromTheme(QStringLiteral("dialog-ok"))
|
||||||
|
.pixmap(QApplication::style()->pixelMetric(QStyle::PixelMetric::PM_SmallIconSize)));
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
dialogWidget().smartStatusText().setText(xi18nc("@label SMART disk status", "BAD"));
|
dialogWidget().smartStatusText().setText(xi18nc("@label SMART disk status", "BAD"));
|
||||||
dialogWidget().smartStatusIcon().setPixmap(QIcon::fromTheme(QStringLiteral("dialog-warning")).pixmap(IconSize(KIconLoader::Small)));
|
dialogWidget().smartStatusIcon().setPixmap(QIcon::fromTheme(QStringLiteral("dialog-warning"))
|
||||||
|
.pixmap(QApplication::style()->pixelMetric(QStyle::PixelMetric::PM_SmallIconSize)));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
dialogWidget().smartStatusText().setText(xi18nc("@label", "(unknown)"));
|
dialogWidget().smartStatusText().setText(xi18nc("@label", "(unknown)"));
|
||||||
|
|
|
@ -1,20 +1,9 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2008, 2009 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* Copyright (C) 2016 by Andrius Štikonas <andrius@stikonas.eu> *
|
SPDX-FileCopyrightText: 2014-2017 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* modify it under the terms of the GNU General Public License as *
|
*/
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#if !defined(DEVICEPROPSDIALOG_H)
|
#if !defined(DEVICEPROPSDIALOG_H)
|
||||||
|
|
||||||
|
|
|
@ -1,19 +1,8 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* modify it under the terms of the GNU General Public License as *
|
*/
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#include "gui/devicepropswidget.h"
|
#include "gui/devicepropswidget.h"
|
||||||
|
|
||||||
|
|
|
@ -1,19 +1,10 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* *
|
SPDX-FileCopyrightText: 2014-2018 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-FileCopyrightText: 2019 Yuri Chornoivan <yurchor@ukr.net>
|
||||||
* modify it under the terms of the GNU General Public License as *
|
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* the License, or (at your option) any later version. *
|
*/
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#if !defined(DEVICEPROPSWIDGET_H)
|
#if !defined(DEVICEPROPSWIDGET_H)
|
||||||
|
|
||||||
|
@ -29,7 +20,7 @@ class PartTableWidget;
|
||||||
class DevicePropsWidget : public QWidget, public Ui::DevicePropsWidgetBase
|
class DevicePropsWidget : public QWidget, public Ui::DevicePropsWidgetBase
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
DevicePropsWidget(QWidget* parent);
|
explicit DevicePropsWidget(QWidget* parent);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
PartTableWidget& partTableWidget() {
|
PartTableWidget& partTableWidget() {
|
||||||
|
|
|
@ -1,5 +1,10 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
|
<author>
|
||||||
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
|
SPDX-FileCopyrightText: 2014-2020 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
</author>
|
||||||
<class>DevicePropsWidgetBase</class>
|
<class>DevicePropsWidgetBase</class>
|
||||||
<widget class="QWidget" name="DevicePropsWidgetBase">
|
<widget class="QWidget" name="DevicePropsWidgetBase">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
|
@ -67,6 +72,9 @@
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string/>
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="textInteractionFlags">
|
||||||
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="1">
|
<item row="3" column="1">
|
||||||
|
@ -122,6 +130,9 @@
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string/>
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="textInteractionFlags">
|
||||||
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="6" column="0">
|
<item row="6" column="0">
|
||||||
|
@ -139,6 +150,9 @@
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string/>
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="textInteractionFlags">
|
||||||
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="7" column="0" colspan="2">
|
<item row="7" column="0" colspan="2">
|
||||||
|
@ -163,6 +177,9 @@
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string/>
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="textInteractionFlags">
|
||||||
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="9" column="0">
|
<item row="9" column="0">
|
||||||
|
@ -180,6 +197,9 @@
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string/>
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="textInteractionFlags">
|
||||||
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="10" column="0" colspan="2">
|
<item row="10" column="0" colspan="2">
|
||||||
|
@ -211,6 +231,9 @@
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string/>
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="textInteractionFlags">
|
||||||
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="13" column="0">
|
<item row="13" column="0">
|
||||||
|
@ -249,6 +272,9 @@
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string/>
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="textInteractionFlags">
|
||||||
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
|
|
|
@ -1,20 +1,9 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2009, 2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* Copyright (C) 2017 by Andrius Štikonas <andrius@stikonas.eu> *
|
SPDX-FileCopyrightText: 2014-2018 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* modify it under the terms of the GNU General Public License as *
|
*/
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#include "gui/editmountoptionsdialog.h"
|
#include "gui/editmountoptionsdialog.h"
|
||||||
#include "gui/editmountoptionsdialogwidget.h"
|
#include "gui/editmountoptionsdialogwidget.h"
|
||||||
|
|
|
@ -1,29 +1,18 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2009, 2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* Copyright (C) 2016 by Andrius Štikonas <andrius@stikonas.eu> *
|
SPDX-FileCopyrightText: 2014-2017 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* modify it under the terms of the GNU General Public License as *
|
*/
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#if !defined(EDITMOUNTOPTIONSDIALOG_H)
|
#if !defined(EDITMOUNTOPTIONSDIALOG_H)
|
||||||
|
|
||||||
#define EDITMOUNTOPTIONSDIALOG_H
|
#define EDITMOUNTOPTIONSDIALOG_H
|
||||||
|
|
||||||
#include <QDialog>
|
#include <QDialog>
|
||||||
|
#include <QStringList>
|
||||||
|
|
||||||
class EditMountOptionsDialogWidget;
|
class EditMountOptionsDialogWidget;
|
||||||
class QStringList;
|
|
||||||
class QString;
|
class QString;
|
||||||
class QWidget;
|
class QWidget;
|
||||||
|
|
||||||
|
|
|
@ -1,19 +1,8 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2009, 2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* modify it under the terms of the GNU General Public License as *
|
*/
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#include "gui/editmountoptionsdialogwidget.h"
|
#include "gui/editmountoptionsdialogwidget.h"
|
||||||
|
|
||||||
|
|
|
@ -1,19 +1,8 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2009, 2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* modify it under the terms of the GNU General Public License as *
|
*/
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#if !defined(EDITMOUNTOPTIONSDIALOGWIDGET_H)
|
#if !defined(EDITMOUNTOPTIONSDIALOGWIDGET_H)
|
||||||
|
|
||||||
|
@ -21,9 +10,9 @@
|
||||||
|
|
||||||
#include "ui_editmountoptionsdialogwidgetbase.h"
|
#include "ui_editmountoptionsdialogwidgetbase.h"
|
||||||
|
|
||||||
|
#include <QStringList>
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
|
||||||
class QStringList;
|
|
||||||
class QPlainTextEdit;
|
class QPlainTextEdit;
|
||||||
|
|
||||||
class EditMountOptionsDialogWidget : public QWidget, public Ui::EditMountOptionsDialogWidgetBase
|
class EditMountOptionsDialogWidget : public QWidget, public Ui::EditMountOptionsDialogWidgetBase
|
||||||
|
|
|
@ -1,5 +1,10 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
|
<author>
|
||||||
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
|
SPDX-FileCopyrightText: 2016 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
</author>
|
||||||
<class>EditMountOptionsDialogWidgetBase</class>
|
<class>EditMountOptionsDialogWidgetBase</class>
|
||||||
<widget class="QWidget" name="EditMountOptionsDialogWidgetBase">
|
<widget class="QWidget" name="EditMountOptionsDialogWidgetBase">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
|
|
|
@ -1,21 +1,11 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2009, 2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* Copyright (C) 2015 by Teo Mrnjavac <teo@kde.org> *
|
SPDX-FileCopyrightText: 2014-2020 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* Copyright (C) 2016 by Andrius Štikonas <andrius@stikonas.eu> *
|
SPDX-FileCopyrightText: 2015 Teo Mrnjavac <teo@kde.org>
|
||||||
* *
|
SPDX-FileCopyrightText: 2018 Abhijeet Sharma <sharma.abhijeet2096@gmail.com>
|
||||||
* This program is free software; you can redistribute it and/or *
|
|
||||||
* modify it under the terms of the GNU General Public License as *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
*/
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#include "gui/editmountpointdialog.h"
|
#include "gui/editmountpointdialog.h"
|
||||||
#include "gui/editmountpointdialogwidget.h"
|
#include "gui/editmountpointdialogwidget.h"
|
||||||
|
@ -64,13 +54,14 @@ EditMountPointDialog::~EditMountPointDialog()
|
||||||
|
|
||||||
void EditMountPointDialog::accept_(MountPointAction action)
|
void EditMountPointDialog::accept_(MountPointAction action)
|
||||||
{
|
{
|
||||||
if (KMessageBox::warningContinueCancel(this,
|
const auto dialogResult = KMessageBox::warningContinueCancel(this,
|
||||||
xi18nc("@info", "<para>Are you sure you want to save the changes you made to the system table file <filename>/etc/fstab</filename>?</para>"
|
xi18nc("@info", "<para>Are you sure you want to save the changes you made to the system table file <filename>/etc/fstab</filename>?</para>"
|
||||||
"<para><warning>This will overwrite the existing file on your hard drive now. This <emphasis strong='1'>can not be undone</emphasis>.</warning></para>"),
|
"<para><warning>This will overwrite the existing file on your hard drive now. This <emphasis strong='1'>can not be undone</emphasis>.</warning></para>"),
|
||||||
xi18nc("@title:window", "Really save changes?"),
|
xi18nc("@title:window", "Really save changes?"),
|
||||||
KGuiItem(xi18nc("@action:button", "Save changes"), QStringLiteral("arrow-right")),
|
KGuiItem(xi18nc("@action:button", "Save changes"), QStringLiteral("arrow-right")),
|
||||||
KStandardGuiItem::cancel(),
|
KStandardGuiItem::cancel(),
|
||||||
QStringLiteral("reallyWriteMountPoints")) == KMessageBox::Cancel)
|
QStringLiteral("reallyWriteMountPoints"));
|
||||||
|
if (dialogResult == KMessageBox::Cancel)
|
||||||
return;
|
return;
|
||||||
if(action == MountPointAction::Remove)
|
if(action == MountPointAction::Remove)
|
||||||
widget().removeMountPoint();
|
widget().removeMountPoint();
|
||||||
|
|
|
@ -1,20 +1,10 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2009, 2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* Copyright (C) 2016 by Andrius Štikonas <andrius@stikonas.eu> *
|
SPDX-FileCopyrightText: 2014-2018 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* *
|
SPDX-FileCopyrightText: 2018 Abhijeet Sharma <sharma.abhijeet2096@gmail.com>
|
||||||
* This program is free software; you can redistribute it and/or *
|
|
||||||
* modify it under the terms of the GNU General Public License as *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
*/
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#if !defined(EDITMOUNTPOINTDIALOG_H)
|
#if !defined(EDITMOUNTPOINTDIALOG_H)
|
||||||
|
|
||||||
|
|
|
@ -1,20 +1,10 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2009, 2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* Copyright (C) 2016, 2017 by Andrius Štikonas <andrius@stikonas.eu> *
|
SPDX-FileCopyrightText: 2014-2020 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* *
|
SPDX-FileCopyrightText: 2018 Abhijeet Sharma <sharma.abhijeet2096@gmail.com>
|
||||||
* This program is free software; you can redistribute it and/or *
|
|
||||||
* modify it under the terms of the GNU General Public License as *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
*/
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#include "gui/editmountpointdialogwidget.h"
|
#include "gui/editmountpointdialogwidget.h"
|
||||||
#include "gui/editmountoptionsdialog.h"
|
#include "gui/editmountoptionsdialog.h"
|
||||||
|
@ -73,7 +63,7 @@ EditMountPointDialogWidget::EditMountPointDialogWidget(QWidget* parent, Partitio
|
||||||
fsName = QStringLiteral("vfat");
|
fsName = QStringLiteral("vfat");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
fsName = partition().fileSystem().name();
|
fsName = partition().fileSystem().name({QStringLiteral("C")});
|
||||||
}
|
}
|
||||||
|
|
||||||
m_fstabEntries.push_back(FstabEntry(m_deviceNode, QString(), fsName, QString()));
|
m_fstabEntries.push_back(FstabEntry(m_deviceNode, QString(), fsName, QString()));
|
||||||
|
@ -162,6 +152,8 @@ void EditMountPointDialogWidget::setupRadio(const FstabEntry::Type entryType)
|
||||||
break;
|
break;
|
||||||
case FstabEntry::Type::comment:
|
case FstabEntry::Type::comment:
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -174,7 +166,7 @@ void EditMountPointDialogWidget::buttonSelectClicked(bool)
|
||||||
|
|
||||||
void EditMountPointDialogWidget::removeMountPoint()
|
void EditMountPointDialogWidget::removeMountPoint()
|
||||||
{
|
{
|
||||||
for (auto it = fstabEntries().begin(); it != fstabEntries().end(); ) {
|
for (auto it = fstabEntries().begin(); it != fstabEntries().end(); ++it) {
|
||||||
if (editPath().count() <= 1 && (
|
if (editPath().count() <= 1 && (
|
||||||
(it->fsSpec().contains(partition().deviceNode()) && !partition().deviceNode().isEmpty() ) ||
|
(it->fsSpec().contains(partition().deviceNode()) && !partition().deviceNode().isEmpty() ) ||
|
||||||
(it->fsSpec().contains(partition().fileSystem().uuid()) && !partition().fileSystem().uuid().isEmpty() ) ||
|
(it->fsSpec().contains(partition().fileSystem().uuid()) && !partition().fileSystem().uuid().isEmpty() ) ||
|
||||||
|
@ -185,7 +177,7 @@ void EditMountPointDialogWidget::removeMountPoint()
|
||||||
fstabEntries().erase(it);
|
fstabEntries().erase(it);
|
||||||
partition().setMountPoint(QString());
|
partition().setMountPoint(QString());
|
||||||
}
|
}
|
||||||
else if (editPath().count() > 1 && ((&*it == currentEntry)))
|
else if (editPath().count() > 1 && (&*it == currentEntry))
|
||||||
{
|
{
|
||||||
fstabEntries().erase(it);
|
fstabEntries().erase(it);
|
||||||
editPath().removeItem(editPath().currentIndex());
|
editPath().removeItem(editPath().currentIndex());
|
||||||
|
@ -208,7 +200,7 @@ void EditMountPointDialogWidget::buttonMoreClicked(bool)
|
||||||
|
|
||||||
QStringList EditMountPointDialogWidget::options() const
|
QStringList EditMountPointDialogWidget::options() const
|
||||||
{
|
{
|
||||||
QStringList optList = m_Options.split(QLatin1Char(','), QString::SkipEmptyParts);
|
QStringList optList = m_Options.split(QLatin1Char(','), Qt::SkipEmptyParts);
|
||||||
|
|
||||||
const auto keys = boxOptions();
|
const auto keys = boxOptions();
|
||||||
for (const auto &s : keys)
|
for (const auto &s : keys)
|
||||||
|
|
|
@ -1,19 +1,10 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2009, 2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* *
|
SPDX-FileCopyrightText: 2014-2018 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-FileCopyrightText: 2018 Abhijeet Sharma <sharma.abhijeet2096@gmail.com>
|
||||||
* modify it under the terms of the GNU General Public License as *
|
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* the License, or (at your option) any later version. *
|
*/
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#if !defined(EDITMOUNTPOINTDIALOGWIDGET_H)
|
#if !defined(EDITMOUNTPOINTDIALOGWIDGET_H)
|
||||||
|
|
||||||
|
@ -25,6 +16,7 @@
|
||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
#include <QString>
|
#include <QString>
|
||||||
|
#include <QStringList>
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
|
||||||
class Partition;
|
class Partition;
|
||||||
|
@ -34,7 +26,6 @@ class QSpinBox;
|
||||||
class QCheckBox;
|
class QCheckBox;
|
||||||
class QComboBox;
|
class QComboBox;
|
||||||
class QPushButton;
|
class QPushButton;
|
||||||
class QStringList;
|
|
||||||
|
|
||||||
class EditMountPointDialogWidget : public QWidget, public Ui::EditMountPointDialogWidgetBase
|
class EditMountPointDialogWidget : public QWidget, public Ui::EditMountPointDialogWidgetBase
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,5 +1,11 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
|
<author>
|
||||||
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
|
SPDX-FileCopyrightText: 2014 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
|
SPDX-FileCopyrightText: 2018 Abhijeet Sharma <sharma.abhijeet2096@gmail.com>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
</author>
|
||||||
<class>EditMountPointDialogWidgetBase</class>
|
<class>EditMountPointDialogWidgetBase</class>
|
||||||
<widget class="QWidget" name="EditMountPointDialogWidgetBase">
|
<widget class="QWidget" name="EditMountPointDialogWidgetBase">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
|
|
|
@ -1,20 +1,9 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2008, 2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* Copyright (C) 2016 by Andrius Štikonas <andrius@stikonas.eu> *
|
SPDX-FileCopyrightText: 2014-2020 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* modify it under the terms of the GNU General Public License as *
|
*/
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#include "gui/filesystemsupportdialog.h"
|
#include "gui/filesystemsupportdialog.h"
|
||||||
#include "gui/filesystemsupportdialogwidget.h"
|
#include "gui/filesystemsupportdialogwidget.h"
|
||||||
|
@ -26,7 +15,6 @@
|
||||||
#include <QDialog>
|
#include <QDialog>
|
||||||
|
|
||||||
#include <KConfigGroup>
|
#include <KConfigGroup>
|
||||||
#include <KIconLoader>
|
|
||||||
#include <KLocalizedString>
|
#include <KLocalizedString>
|
||||||
#include <KSharedConfig>
|
#include <KSharedConfig>
|
||||||
|
|
||||||
|
@ -66,8 +54,8 @@ QSize FileSystemSupportDialog::sizeHint() const
|
||||||
|
|
||||||
void FileSystemSupportDialog::setupDialog()
|
void FileSystemSupportDialog::setupDialog()
|
||||||
{
|
{
|
||||||
QIcon yes = QIcon::fromTheme(QStringLiteral("dialog-ok")).pixmap(IconSize(KIconLoader::Toolbar));
|
QIcon yes = QIcon::fromTheme(QStringLiteral("dialog-ok"));
|
||||||
QIcon no = QIcon::fromTheme(QStringLiteral("dialog-error")).pixmap(IconSize(KIconLoader::Toolbar));
|
QIcon no = QIcon::fromTheme(QStringLiteral("dialog-error"));
|
||||||
|
|
||||||
dialogWidget().tree().clear();
|
dialogWidget().tree().clear();
|
||||||
|
|
||||||
|
|
|
@ -1,19 +1,10 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2008, 2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* *
|
SPDX-FileCopyrightText: 2015-2017 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-FileCopyrightText: 2019 Yuri Chornoivan <yurchor@ukr.net>
|
||||||
* modify it under the terms of the GNU General Public License as *
|
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* the License, or (at your option) any later version. *
|
*/
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#if !defined(FILESYSTEMSUPPORTDIALOG_H)
|
#if !defined(FILESYSTEMSUPPORTDIALOG_H)
|
||||||
|
|
||||||
|
@ -38,7 +29,7 @@ class FileSystemSupportDialog : public QDialog
|
||||||
Q_DISABLE_COPY(FileSystemSupportDialog)
|
Q_DISABLE_COPY(FileSystemSupportDialog)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
FileSystemSupportDialog(QWidget* parent);
|
explicit FileSystemSupportDialog(QWidget* parent);
|
||||||
~FileSystemSupportDialog();
|
~FileSystemSupportDialog();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -1,19 +1,8 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2008, 2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* modify it under the terms of the GNU General Public License as *
|
*/
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#include "gui/filesystemsupportdialogwidget.h"
|
#include "gui/filesystemsupportdialogwidget.h"
|
||||||
|
|
||||||
|
|
|
@ -1,19 +1,10 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2008, 2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* *
|
SPDX-FileCopyrightText: 2014-2017 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-FileCopyrightText: 2019 Yuri Chornoivan <yurchor@ukr.net>
|
||||||
* modify it under the terms of the GNU General Public License as *
|
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* the License, or (at your option) any later version. *
|
*/
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#if !defined(FILESYSTEMSUPPORTDIALOGWIDGET_H)
|
#if !defined(FILESYSTEMSUPPORTDIALOGWIDGET_H)
|
||||||
|
|
||||||
|
@ -24,7 +15,7 @@
|
||||||
class FileSystemSupportDialogWidget : public QWidget, public Ui::FileSystemSupportDialogWidgetBase
|
class FileSystemSupportDialogWidget : public QWidget, public Ui::FileSystemSupportDialogWidgetBase
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
FileSystemSupportDialogWidget(QWidget* parent);
|
explicit FileSystemSupportDialogWidget(QWidget* parent);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
QTreeWidget& tree() {
|
QTreeWidget& tree() {
|
||||||
|
|
|
@ -1,5 +1,10 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
|
<author>
|
||||||
|
SPDX-FileCopyrightText: 2008-2010 Volker Lanz <vl@fidra.de>
|
||||||
|
SPDX-FileCopyrightText: 2014 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
</author>
|
||||||
<class>FileSystemSupportDialogWidgetBase</class>
|
<class>FileSystemSupportDialogWidgetBase</class>
|
||||||
<widget class="QWidget" name="FileSystemSupportDialogWidgetBase">
|
<widget class="QWidget" name="FileSystemSupportDialogWidgetBase">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
|
|
|
@ -1,20 +1,9 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* Copyright (C) 2016 by Andrius Štikonas <andrius@stikonas.eu> *
|
SPDX-FileCopyrightText: 2014 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* modify it under the terms of the GNU General Public License as *
|
*/
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#include "gui/formattedspinbox.h"
|
#include "gui/formattedspinbox.h"
|
||||||
|
|
||||||
|
|
|
@ -1,19 +1,8 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* modify it under the terms of the GNU General Public License as *
|
*/
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#if !defined(FORMATTEDSPINBOX_H)
|
#if !defined(FORMATTEDSPINBOX_H)
|
||||||
|
|
||||||
|
@ -24,14 +13,14 @@
|
||||||
class FormattedSpinBox : public QDoubleSpinBox
|
class FormattedSpinBox : public QDoubleSpinBox
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
FormattedSpinBox(QWidget* parent = nullptr) : QDoubleSpinBox(parent) {}
|
explicit FormattedSpinBox(QWidget* parent = nullptr) : QDoubleSpinBox(parent) {}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
QString textFromValue(double value) const override;
|
QString textFromValue(double value) const override;
|
||||||
double valueFromText(const QString& text) const override;
|
double valueFromText(const QString& text) const override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QString stripped(const QString &t, int *pos = 0) const;
|
QString stripped(const QString &t, int *pos = nullptr) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,20 +1,11 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2008 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010 Volker Lanz <vl@fidra.de>
|
||||||
* Copyright (C) 2016 by Andrius Štikonas <andrius@stikonas.eu> *
|
SPDX-FileCopyrightText: 2014-2018 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* *
|
SPDX-FileCopyrightText: 2016 Chantara Tith <tith.chantara@gmail.com>
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho <caiojcarvalho@gmail.com>
|
||||||
* modify it under the terms of the GNU General Public License as *
|
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* the License, or (at your option) any later version. *
|
*/
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#include "gui/infopane.h"
|
#include "gui/infopane.h"
|
||||||
|
|
||||||
|
@ -36,6 +27,7 @@
|
||||||
#include <QGridLayout>
|
#include <QGridLayout>
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
#include <QLocale>
|
#include <QLocale>
|
||||||
|
#include <QPalette>
|
||||||
|
|
||||||
#include <KLocalizedString>
|
#include <KLocalizedString>
|
||||||
|
|
||||||
|
@ -46,7 +38,7 @@ InfoPane::InfoPane(QWidget* parent) :
|
||||||
QWidget(parent),
|
QWidget(parent),
|
||||||
m_GridLayout(new QGridLayout(this))
|
m_GridLayout(new QGridLayout(this))
|
||||||
{
|
{
|
||||||
layout()->setMargin(0);
|
layout()->setContentsMargins(0, 0, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Clears the InfoPane, leaving it empty */
|
/** Clears the InfoPane, leaving it empty */
|
||||||
|
@ -64,7 +56,7 @@ int InfoPane::createHeader(const QString& title, const int num_cols)
|
||||||
QLabel* label = new QLabel(title, this);
|
QLabel* label = new QLabel(title, this);
|
||||||
QFont font;
|
QFont font;
|
||||||
font.setBold(true);
|
font.setBold(true);
|
||||||
font.setWeight(75);
|
font.setWeight(QFont::Bold);
|
||||||
label->setFont(font);
|
label->setFont(font);
|
||||||
label->setAlignment(Qt::AlignCenter);
|
label->setAlignment(Qt::AlignCenter);
|
||||||
gridLayout().addWidget(label, y++, 0, 1, num_cols);
|
gridLayout().addWidget(label, y++, 0, 1, num_cols);
|
||||||
|
@ -84,9 +76,9 @@ void InfoPane::createLabels(const QString& title, const QString& value, const in
|
||||||
labelTitle->setAlignment(Qt::AlignRight | Qt::AlignTrailing | Qt::AlignVCenter);
|
labelTitle->setAlignment(Qt::AlignRight | Qt::AlignTrailing | Qt::AlignVCenter);
|
||||||
|
|
||||||
QPalette palette = labelTitle->palette();
|
QPalette palette = labelTitle->palette();
|
||||||
QColor f = palette.color(QPalette::Foreground);
|
QColor f = palette.color(QPalette::WindowText);
|
||||||
f.setAlpha(128);
|
f.setAlpha(128);
|
||||||
palette.setColor(QPalette::Foreground, f);
|
palette.setColor(QPalette::WindowText, f);
|
||||||
labelTitle->setPalette(palette);
|
labelTitle->setPalette(palette);
|
||||||
|
|
||||||
gridLayout().addWidget(labelTitle, y, x, 1, 1);
|
gridLayout().addWidget(labelTitle, y, x, 1, 1);
|
||||||
|
|
|
@ -1,19 +1,10 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2008 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2010-2011 Volker Lanz <vl@fidra.de>
|
||||||
* *
|
SPDX-FileCopyrightText: 2016-2017 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-FileCopyrightText: 2019 Yuri Chornoivan <yurchor@ukr.net>
|
||||||
* modify it under the terms of the GNU General Public License as *
|
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* the License, or (at your option) any later version. *
|
*/
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#if !defined(INFOPANE_H)
|
#if !defined(INFOPANE_H)
|
||||||
|
|
||||||
|
@ -39,7 +30,7 @@ class InfoPane : public QWidget
|
||||||
Q_DISABLE_COPY(InfoPane)
|
Q_DISABLE_COPY(InfoPane)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
InfoPane(QWidget* parent = nullptr);
|
explicit InfoPane(QWidget* parent = nullptr);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void showPartition(Qt::DockWidgetArea area, const Partition& p);
|
void showPartition(Qt::DockWidgetArea area, const Partition& p);
|
||||||
|
|
|
@ -1,20 +1,9 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2008, 2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2008-2010 Volker Lanz <vl@fidra.de>
|
||||||
* Copyright (C) 2016 by Andrius Štikonas <andrius@stikonas.eu> *
|
SPDX-FileCopyrightText: 2014-2016 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* modify it under the terms of the GNU General Public License as *
|
*/
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#include "gui/insertdialog.h"
|
#include "gui/insertdialog.h"
|
||||||
#include "gui/sizedialogwidget.h"
|
#include "gui/sizedialogwidget.h"
|
||||||
|
|
|
@ -1,19 +1,9 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2008, 2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2008-2010 Volker Lanz <vl@fidra.de>
|
||||||
* *
|
SPDX-FileCopyrightText: 2014-2018 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* This program is free software; you can redistribute it and/or *
|
|
||||||
* modify it under the terms of the GNU General Public License as *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
*/
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#if !defined(INSERTDIALOG_H)
|
#if !defined(INSERTDIALOG_H)
|
||||||
|
|
||||||
|
|
|
@ -1,20 +1,9 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2008-2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2009-2010 Volker Lanz <vl@fidra.de>
|
||||||
* Copyright (C) 2016 by Andrius Štikonas <andrius@stikonas.eu> *
|
SPDX-FileCopyrightText: 2014-2020 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* modify it under the terms of the GNU General Public License as *
|
*/
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#include "gui/listdevices.h"
|
#include "gui/listdevices.h"
|
||||||
|
|
||||||
|
@ -23,14 +12,11 @@
|
||||||
#include <util/globallog.h>
|
#include <util/globallog.h>
|
||||||
#include <util/capacity.h>
|
#include <util/capacity.h>
|
||||||
|
|
||||||
#include <KIconLoader>
|
|
||||||
|
|
||||||
class ListDeviceWidgetItem : public QListWidgetItem
|
class ListDeviceWidgetItem : public QListWidgetItem
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ListDeviceWidgetItem(const Device& d) :
|
ListDeviceWidgetItem(const Device& d) :
|
||||||
QListWidgetItem(QIcon::fromTheme(d.iconName()).pixmap(IconSize(KIconLoader::Desktop)), d.prettyName()),
|
QListWidgetItem(QIcon::fromTheme(d.iconName()), d.prettyName()), deviceNode(d.deviceNode()) {
|
||||||
deviceNode(d.deviceNode()) {
|
|
||||||
setToolTip(d.prettyName());
|
setToolTip(d.prettyName());
|
||||||
setSizeHint(QSize(0, 32));
|
setSizeHint(QSize(0, 32));
|
||||||
}
|
}
|
||||||
|
@ -63,7 +49,7 @@ void ListDevices::on_m_ListDevices_itemSelectionChanged()
|
||||||
ListDeviceWidgetItem* item = dynamic_cast<ListDeviceWidgetItem*>(listDevices().selectedItems()[0]);
|
ListDeviceWidgetItem* item = dynamic_cast<ListDeviceWidgetItem*>(listDevices().selectedItems()[0]);
|
||||||
|
|
||||||
if (item != nullptr)
|
if (item != nullptr)
|
||||||
emit selectionChanged(item->deviceNode);
|
Q_EMIT selectionChanged(item->deviceNode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -72,7 +58,7 @@ void ListDevices::on_m_ListDevices_itemDoubleClicked(QListWidgetItem* list_item)
|
||||||
ListDeviceWidgetItem* item = dynamic_cast<ListDeviceWidgetItem*>(list_item);
|
ListDeviceWidgetItem* item = dynamic_cast<ListDeviceWidgetItem*>(list_item);
|
||||||
|
|
||||||
if (item != nullptr)
|
if (item != nullptr)
|
||||||
emit deviceDoubleClicked(item->deviceNode);
|
Q_EMIT deviceDoubleClicked(item->deviceNode);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ListDevices::setSelectedDevice(const QString& device_node)
|
bool ListDevices::setSelectedDevice(const QString& device_node)
|
||||||
|
|
|
@ -1,19 +1,10 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2008-2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2009-2010 Volker Lanz <vl@fidra.de>
|
||||||
* *
|
SPDX-FileCopyrightText: 2014-2017 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-FileCopyrightText: 2019 Yuri Chornoivan <yurchor@ukr.net>
|
||||||
* modify it under the terms of the GNU General Public License as *
|
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* the License, or (at your option) any later version. *
|
*/
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#if !defined(LISTDEVICES_H)
|
#if !defined(LISTDEVICES_H)
|
||||||
|
|
||||||
|
@ -38,7 +29,7 @@ class ListDevices : public QWidget, public Ui::ListDevicesBase
|
||||||
Q_DISABLE_COPY(ListDevices)
|
Q_DISABLE_COPY(ListDevices)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
ListDevices(QWidget* parent = nullptr);
|
explicit ListDevices(QWidget* parent = nullptr);
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void selectionChanged(const QString& device_node);
|
void selectionChanged(const QString& device_node);
|
||||||
|
@ -48,6 +39,8 @@ public:
|
||||||
void setActionCollection(KActionCollection* coll) {
|
void setActionCollection(KActionCollection* coll) {
|
||||||
m_ActionCollection = coll;
|
m_ActionCollection = coll;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Selects the device specified by the device node, such as /dev/sda
|
||||||
bool setSelectedDevice(const QString& device_node);
|
bool setSelectedDevice(const QString& device_node);
|
||||||
|
|
||||||
void updateDevices(const OperationStack::Devices& devices);
|
void updateDevices(const OperationStack::Devices& devices);
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
|
<author>
|
||||||
|
SPDX-FileCopyrightText: 2009-2011 Volker Lanz <vl@fidra.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
</author>
|
||||||
<class>ListDevicesBase</class>
|
<class>ListDevicesBase</class>
|
||||||
<widget class="QWidget" name="ListDevicesBase">
|
<widget class="QWidget" name="ListDevicesBase">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
|
|
|
@ -1,20 +1,9 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2008, 2009 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2009-2010 Volker Lanz <vl@fidra.de>
|
||||||
* Copyright (C) 2016 by Andrius Štikonas <andrius@stikonas.eu> *
|
SPDX-FileCopyrightText: 2014-2020 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* modify it under the terms of the GNU General Public License as *
|
*/
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#include "gui/listoperations.h"
|
#include "gui/listoperations.h"
|
||||||
|
|
||||||
|
@ -23,8 +12,6 @@
|
||||||
#include <util/globallog.h>
|
#include <util/globallog.h>
|
||||||
#include <util/capacity.h>
|
#include <util/capacity.h>
|
||||||
|
|
||||||
#include <KIconLoader>
|
|
||||||
|
|
||||||
/** Creates a new ListOperations instance.
|
/** Creates a new ListOperations instance.
|
||||||
@param parent the parent widget
|
@param parent the parent widget
|
||||||
*/
|
*/
|
||||||
|
@ -41,7 +28,7 @@ void ListOperations::updateOperations(const OperationStack::Operations& ops)
|
||||||
listOperations().clear();
|
listOperations().clear();
|
||||||
|
|
||||||
for (const auto &op : ops) {
|
for (const auto &op : ops) {
|
||||||
QListWidgetItem* item = new QListWidgetItem(QIcon::fromTheme(op->iconName()).pixmap(IconSize(KIconLoader::Small)), op->description());
|
QListWidgetItem* item = new QListWidgetItem(QIcon::fromTheme(op->iconName()), op->description());
|
||||||
item->setToolTip(op->description());
|
item->setToolTip(op->description());
|
||||||
listOperations().addItem(item);
|
listOperations().addItem(item);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,19 +1,11 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2008, 2009 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2009-2010 Volker Lanz <vl@fidra.de>
|
||||||
* *
|
SPDX-FileCopyrightText: 2014-2017 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-FileCopyrightText: 2019 Yuri Chornoivan <yurchor@ukr.net>
|
||||||
* modify it under the terms of the GNU General Public License as *
|
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* the License, or (at your option) any later version. *
|
*/
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#if !defined(LISTOPERATIONS_H)
|
#if !defined(LISTOPERATIONS_H)
|
||||||
|
|
||||||
|
@ -38,7 +30,7 @@ class ListOperations : public QWidget, public Ui::ListOperationsBase
|
||||||
Q_DISABLE_COPY(ListOperations)
|
Q_DISABLE_COPY(ListOperations)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
ListOperations(QWidget* parent = nullptr);
|
explicit ListOperations(QWidget* parent = nullptr);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void setActionCollection(KActionCollection* coll) {
|
void setActionCollection(KActionCollection* coll) {
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
|
<author>
|
||||||
|
SPDX-FileCopyrightText: 2009-2011 Volker Lanz <vl@fidra.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
</author>
|
||||||
<class>ListOperationsBase</class>
|
<class>ListOperationsBase</class>
|
||||||
<widget class="QWidget" name="ListOperationsBase">
|
<widget class="QWidget" name="ListOperationsBase">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
|
|
|
@ -1,20 +1,9 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2016 by Chantara Tith <tith.chantara@gmail.com> *
|
SPDX-FileCopyrightText: 2016 Chantara Tith <tith.chantara@gmail.com>
|
||||||
* Copyright (C) 2016 by Andrius Štikonas <andrius@stikonas.eu> *
|
SPDX-FileCopyrightText: 2016 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* modify it under the terms of the GNU General Public License as *
|
*/
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#include "gui/listphysicalvolumes.h"
|
#include "gui/listphysicalvolumes.h"
|
||||||
|
|
||||||
|
|
|
@ -1,19 +1,10 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2016 by Chantara Tith <tith.chantara@gmail.com> *
|
SPDX-FileCopyrightText: 2016 Chantara Tith <tith.chantara@gmail.com>
|
||||||
* *
|
SPDX-FileCopyrightText: 2017 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-FileCopyrightText: 2019 Yuri Chornoivan <yurchor@ukr.net>
|
||||||
* modify it under the terms of the GNU General Public License as *
|
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* the License, or (at your option) any later version. *
|
*/
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#if !defined(LISTPHYSICALVOLUMES_H)
|
#if !defined(LISTPHYSICALVOLUMES_H)
|
||||||
|
|
||||||
|
@ -46,7 +37,7 @@ class ListPhysicalVolumes : public QWidget, public Ui::ListPhysicalVolumesBase
|
||||||
Q_DISABLE_COPY(ListPhysicalVolumes)
|
Q_DISABLE_COPY(ListPhysicalVolumes)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
ListPhysicalVolumes(QWidget* parent = nullptr);
|
explicit ListPhysicalVolumes(QWidget* parent = nullptr);
|
||||||
|
|
||||||
void addPartition(const Partition& p, bool checked);
|
void addPartition(const Partition& p, bool checked);
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
|
<author>
|
||||||
|
SPDX-FileCopyrightText: 2016 Chantara Tith <tith.chantara@gmail.com>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
</author>
|
||||||
<class>ListPhysicalVolumesBase</class>
|
<class>ListPhysicalVolumesBase</class>
|
||||||
<widget class="QWidget" name="ListPhysicalVolumesBase">
|
<widget class="QWidget" name="ListPhysicalVolumesBase">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
|
|
|
@ -1,21 +1,14 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2008, 2009, 2010, 2012 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2008-2012 Volker Lanz <vl@fidra.de>
|
||||||
* Copyright (C) 2015 by Teo Mrnjavac <teo@kde.org> *
|
SPDX-FileCopyrightText: 2014-2020 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* Copyright (C) 2016 by Andrius Štikonas <andrius@stikonas.eu> *
|
SPDX-FileCopyrightText: 2015 Teo Mrnjavac <teo@kde.org>
|
||||||
* *
|
SPDX-FileCopyrightText: 2016 Chantara Tith <tith.chantara@gmail.com>
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho <caiojcarvalho@gmail.com>
|
||||||
* modify it under the terms of the GNU General Public License as *
|
SPDX-FileCopyrightText: 2018 René J.V. Bertin <rjvbertin@gmail.com>
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
SPDX-FileCopyrightText: 2018 Huzaifa Faruqui <huzaifafaruqui@gmail.com>
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* This program is distributed in the hope that it will be useful, *
|
*/
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#include "gui/mainwindow.h"
|
#include "gui/mainwindow.h"
|
||||||
#include "gui/infopane.h"
|
#include "gui/infopane.h"
|
||||||
|
@ -50,6 +43,7 @@
|
||||||
#include <ops/backupoperation.h>
|
#include <ops/backupoperation.h>
|
||||||
#include <ops/restoreoperation.h>
|
#include <ops/restoreoperation.h>
|
||||||
#include <ops/checkoperation.h>
|
#include <ops/checkoperation.h>
|
||||||
|
#include <ops/setpartflagsoperation.h>
|
||||||
|
|
||||||
#include <fs/filesystem.h>
|
#include <fs/filesystem.h>
|
||||||
#include <fs/filesystemfactory.h>
|
#include <fs/filesystemfactory.h>
|
||||||
|
@ -60,6 +54,8 @@
|
||||||
#include <util/guihelpers.h>
|
#include <util/guihelpers.h>
|
||||||
#include <util/report.h>
|
#include <util/report.h>
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
|
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
#include <QCloseEvent>
|
#include <QCloseEvent>
|
||||||
#include <QCollator>
|
#include <QCollator>
|
||||||
|
@ -76,11 +72,13 @@
|
||||||
#include <QTemporaryFile>
|
#include <QTemporaryFile>
|
||||||
#include <QTextStream>
|
#include <QTextStream>
|
||||||
|
|
||||||
|
#include <PolkitQt1/Authority>
|
||||||
|
#include <polkitqt1-version.h>
|
||||||
|
|
||||||
#include <KAboutApplicationDialog>
|
#include <KAboutApplicationDialog>
|
||||||
#include <KActionCollection>
|
#include <KActionCollection>
|
||||||
#include <KMessageBox>
|
#include <KMessageBox>
|
||||||
#include <KAboutData>
|
#include <KAboutData>
|
||||||
#include <KIconLoader>
|
|
||||||
#include <KLocalizedString>
|
#include <KLocalizedString>
|
||||||
#include <KXMLGUIFactory>
|
#include <KXMLGUIFactory>
|
||||||
#include <KJobUiDelegate>
|
#include <KJobUiDelegate>
|
||||||
|
@ -102,11 +100,10 @@ MainWindow::MainWindow(QWidget* parent) :
|
||||||
m_ScanProgressDialog(new ScanProgressDialog(this)),
|
m_ScanProgressDialog(new ScanProgressDialog(this)),
|
||||||
m_StatusText(new QLabel(this))
|
m_StatusText(new QLabel(this))
|
||||||
{
|
{
|
||||||
|
CoreBackend::isPolkitInstalledCorrectly();
|
||||||
|
|
||||||
setupObjectNames();
|
setupObjectNames();
|
||||||
setupUi(this);
|
setupUi(this);
|
||||||
connect(&m_ListDevices->listDevices(), &QListWidget::customContextMenuRequested, this, &MainWindow::listDevicesContextMenuRequested);
|
|
||||||
connect(&m_TreeLog->treeLog(), &QTreeWidget::customContextMenuRequested, this, &MainWindow::treeLogContextMenuRequested);
|
|
||||||
connect(&m_ListOperations->listOperations(), &QListWidget::customContextMenuRequested, this, &MainWindow::listOperationsContextMenuRequested);
|
|
||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -119,12 +116,35 @@ void MainWindow::setupObjectNames()
|
||||||
m_ScanProgressDialog->setObjectName(QStringLiteral("m_ScanProgressDialog"));
|
m_ScanProgressDialog->setObjectName(QStringLiteral("m_ScanProgressDialog"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::setDisallowOtherDevices()
|
||||||
|
{
|
||||||
|
// We need to store that we are hiding this for this session only
|
||||||
|
// but only if it's currently visible (ie, the user didn't select
|
||||||
|
// that it should be hidden on purpose.
|
||||||
|
if (m_DockDevices->isVisible() == true) {
|
||||||
|
Config::self()->setHideDeviceDockWidgetByCmdArgs(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// because of how Qt works, the user still can enable the
|
||||||
|
// dock widget via a mouse click, so we need to also set it to disabled.
|
||||||
|
// so that the user doesn't select it by mistake.
|
||||||
|
|
||||||
|
m_DockDevices->setVisible(false);
|
||||||
|
m_DockDevices->setEnabled(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::showDevicePanelIfPreviouslyHiddenByDisallowOtherDevices()
|
||||||
|
{
|
||||||
|
if (Config::self()->hideDeviceDockWidgetByCmdArgs()) {
|
||||||
|
m_DockDevices->setVisible(true);
|
||||||
|
Config::self()->setHideDeviceDockWidgetByCmdArgs(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void MainWindow::init()
|
void MainWindow::init()
|
||||||
{
|
{
|
||||||
treeLog().init();
|
treeLog().init();
|
||||||
|
|
||||||
connect(GlobalLog::instance(), &GlobalLog::newMessage, &treeLog(), &TreeLog::onNewLogMessage);
|
|
||||||
|
|
||||||
setupActions();
|
setupActions();
|
||||||
setupStatusBar();
|
setupStatusBar();
|
||||||
setupConnections();
|
setupConnections();
|
||||||
|
@ -136,11 +156,67 @@ void MainWindow::init()
|
||||||
|
|
||||||
loadConfig();
|
loadConfig();
|
||||||
|
|
||||||
|
// this is done in order to hide the title bar of MessageWidget dock
|
||||||
|
findChild<QDockWidget*>(QStringLiteral("MessageWidgetDock"))->setTitleBarWidget(new QWidget());
|
||||||
|
|
||||||
|
MessageWidget().hide();
|
||||||
|
MessageWidget().setText(
|
||||||
|
i18nc("@info", "Partition Manager requires privileges in order to work. Please refresh the devices and authenticate when prompted."));
|
||||||
|
|
||||||
show();
|
show();
|
||||||
ExternalCommand::setParentWidget(this);
|
|
||||||
pmWidget().init(&operationStack());
|
pmWidget().init(&operationStack());
|
||||||
|
|
||||||
scanDevices();
|
scanProgressDialog().cancel();
|
||||||
|
setEnabled(false);
|
||||||
|
guiFactory()->container(QStringLiteral("selectedDevice"), this)->setEnabled(false);
|
||||||
|
|
||||||
|
askForPermissions();
|
||||||
|
|
||||||
|
if (m_permissionGranted) {
|
||||||
|
FileSystemFactory::init();
|
||||||
|
scanDevices();
|
||||||
|
} else
|
||||||
|
Q_EMIT showMessageWidget();
|
||||||
|
|
||||||
|
setEnabled(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::askForPermissions()
|
||||||
|
{
|
||||||
|
PolkitQt1::UnixProcessSubject subject(QApplication::applicationPid());
|
||||||
|
PolkitQt1::Authority *authority = PolkitQt1::Authority::instance();
|
||||||
|
|
||||||
|
PolkitQt1::Authority::Result result;
|
||||||
|
QEventLoop e;
|
||||||
|
connect(authority, &PolkitQt1::Authority::checkAuthorizationFinished, &e,
|
||||||
|
[&e, &result](PolkitQt1::Authority::Result _result) {
|
||||||
|
result = _result;
|
||||||
|
e.quit();
|
||||||
|
});
|
||||||
|
|
||||||
|
authority->checkAuthorization(QStringLiteral("org.kde.kpmcore.externalcommand.init"), subject, PolkitQt1::Authority::AllowUserInteraction);
|
||||||
|
e.exec();
|
||||||
|
|
||||||
|
if (authority->hasError()) {
|
||||||
|
qDebug() << "Encountered error while checking authorization, error code:"
|
||||||
|
<< authority->lastError() << authority->errorDetails();
|
||||||
|
authority->clearError();
|
||||||
|
}
|
||||||
|
|
||||||
|
m_permissionGranted = result == PolkitQt1::Authority::Yes;
|
||||||
|
}
|
||||||
|
|
||||||
|
QMenu *MainWindow::createPopupMenu()
|
||||||
|
{
|
||||||
|
auto menu = QMainWindow::createPopupMenu();
|
||||||
|
auto actions = menu->actions();
|
||||||
|
QAction *toRemove =
|
||||||
|
*std::find_if(actions.begin(), actions.end(),
|
||||||
|
[](QAction *x) { return x->text().isEmpty(); });
|
||||||
|
// this is done in order to hide the entry for the MessageWidget dock
|
||||||
|
menu->removeAction(toRemove);
|
||||||
|
|
||||||
|
return menu;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::closeEvent(QCloseEvent* event)
|
void MainWindow::closeEvent(QCloseEvent* event)
|
||||||
|
@ -165,7 +241,6 @@ void MainWindow::closeEvent(QCloseEvent* event)
|
||||||
saveConfig();
|
saveConfig();
|
||||||
|
|
||||||
KXmlGuiWindow::closeEvent(event);
|
KXmlGuiWindow::closeEvent(event);
|
||||||
ExternalCommand::stopHelper();
|
|
||||||
delete m_ApplyProgressDialog;
|
delete m_ApplyProgressDialog;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -201,8 +276,8 @@ void MainWindow::setupActions()
|
||||||
undoOperation->setText(xi18nc("@action:inmenu", "Undo"));
|
undoOperation->setText(xi18nc("@action:inmenu", "Undo"));
|
||||||
undoOperation->setToolTip(xi18nc("@info:tooltip", "Undo the last operation"));
|
undoOperation->setToolTip(xi18nc("@info:tooltip", "Undo the last operation"));
|
||||||
undoOperation->setStatusTip(xi18nc("@info:status", "Remove the last operation from the list."));
|
undoOperation->setStatusTip(xi18nc("@info:status", "Remove the last operation from the list."));
|
||||||
actionCollection()->setDefaultShortcut(undoOperation, QKeySequence(Qt::CTRL + Qt::Key_Z));
|
actionCollection()->setDefaultShortcut(undoOperation, QKeySequence(Qt::CTRL | Qt::Key_Z));
|
||||||
undoOperation->setIcon(QIcon::fromTheme(QStringLiteral("edit-undo")).pixmap(IconSize(KIconLoader::Toolbar)));
|
undoOperation->setIcon(QIcon::fromTheme(QStringLiteral("edit-undo")));
|
||||||
|
|
||||||
QAction* clearAllOperations = actionCollection()->addAction(QStringLiteral("clearAllOperations"));
|
QAction* clearAllOperations = actionCollection()->addAction(QStringLiteral("clearAllOperations"));
|
||||||
connect(clearAllOperations, &QAction::triggered, this, &MainWindow::onClearAllOperations);
|
connect(clearAllOperations, &QAction::triggered, this, &MainWindow::onClearAllOperations);
|
||||||
|
@ -210,7 +285,7 @@ void MainWindow::setupActions()
|
||||||
clearAllOperations->setText(xi18nc("@action:inmenu clear the list of operations", "Clear"));
|
clearAllOperations->setText(xi18nc("@action:inmenu clear the list of operations", "Clear"));
|
||||||
clearAllOperations->setToolTip(xi18nc("@info:tooltip", "Clear all operations"));
|
clearAllOperations->setToolTip(xi18nc("@info:tooltip", "Clear all operations"));
|
||||||
clearAllOperations->setStatusTip(xi18nc("@info:status", "Empty the list of pending operations."));
|
clearAllOperations->setStatusTip(xi18nc("@info:status", "Empty the list of pending operations."));
|
||||||
clearAllOperations->setIcon(QIcon::fromTheme(QStringLiteral("dialog-cancel")).pixmap(IconSize(KIconLoader::Toolbar)));
|
clearAllOperations->setIcon(QIcon::fromTheme(QStringLiteral("dialog-cancel")));
|
||||||
|
|
||||||
QAction* applyAllOperations = actionCollection()->addAction(QStringLiteral("applyAllOperations"));
|
QAction* applyAllOperations = actionCollection()->addAction(QStringLiteral("applyAllOperations"));
|
||||||
connect(applyAllOperations, &QAction::triggered, this, &MainWindow::onApplyAllOperations);
|
connect(applyAllOperations, &QAction::triggered, this, &MainWindow::onApplyAllOperations);
|
||||||
|
@ -218,7 +293,7 @@ void MainWindow::setupActions()
|
||||||
applyAllOperations->setText(xi18nc("@action:inmenu apply all operations", "Apply"));
|
applyAllOperations->setText(xi18nc("@action:inmenu apply all operations", "Apply"));
|
||||||
applyAllOperations->setToolTip(xi18nc("@info:tooltip", "Apply all operations"));
|
applyAllOperations->setToolTip(xi18nc("@info:tooltip", "Apply all operations"));
|
||||||
applyAllOperations->setStatusTip(xi18nc("@info:status", "Apply the pending operations in the list."));
|
applyAllOperations->setStatusTip(xi18nc("@info:status", "Apply the pending operations in the list."));
|
||||||
applyAllOperations->setIcon(QIcon::fromTheme(QStringLiteral("dialog-ok-apply")).pixmap(IconSize(KIconLoader::Toolbar)));
|
applyAllOperations->setIcon(QIcon::fromTheme(QStringLiteral("dialog-ok-apply")));
|
||||||
|
|
||||||
// Device actions
|
// Device actions
|
||||||
QAction* createNewPartitionTable = actionCollection()->addAction(QStringLiteral("createNewPartitionTable"));
|
QAction* createNewPartitionTable = actionCollection()->addAction(QStringLiteral("createNewPartitionTable"));
|
||||||
|
@ -227,8 +302,8 @@ void MainWindow::setupActions()
|
||||||
createNewPartitionTable->setText(xi18nc("@action:inmenu", "New Partition Table"));
|
createNewPartitionTable->setText(xi18nc("@action:inmenu", "New Partition Table"));
|
||||||
createNewPartitionTable->setToolTip(xi18nc("@info:tooltip", "Create a new partition table"));
|
createNewPartitionTable->setToolTip(xi18nc("@info:tooltip", "Create a new partition table"));
|
||||||
createNewPartitionTable->setStatusTip(xi18nc("@info:status", "Create a new and empty partition table on a device."));
|
createNewPartitionTable->setStatusTip(xi18nc("@info:status", "Create a new and empty partition table on a device."));
|
||||||
actionCollection()->setDefaultShortcut(createNewPartitionTable, QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_N));
|
actionCollection()->setDefaultShortcut(createNewPartitionTable, QKeySequence(Qt::CTRL | Qt::SHIFT | Qt::Key_N));
|
||||||
createNewPartitionTable->setIcon(QIcon::fromTheme(QStringLiteral("edit-clear")).pixmap(IconSize(KIconLoader::Toolbar)));
|
createNewPartitionTable->setIcon(QIcon::fromTheme(QStringLiteral("edit-clear")));
|
||||||
|
|
||||||
QAction* exportPartitionTable = actionCollection()->addAction(QStringLiteral("exportPartitionTable"));
|
QAction* exportPartitionTable = actionCollection()->addAction(QStringLiteral("exportPartitionTable"));
|
||||||
connect(exportPartitionTable, &QAction::triggered, this, &MainWindow::onExportPartitionTable);
|
connect(exportPartitionTable, &QAction::triggered, this, &MainWindow::onExportPartitionTable);
|
||||||
|
@ -236,7 +311,7 @@ void MainWindow::setupActions()
|
||||||
exportPartitionTable->setText(xi18nc("@action:inmenu", "Export Partition Table"));
|
exportPartitionTable->setText(xi18nc("@action:inmenu", "Export Partition Table"));
|
||||||
exportPartitionTable->setToolTip(xi18nc("@info:tooltip", "Export a partition table"));
|
exportPartitionTable->setToolTip(xi18nc("@info:tooltip", "Export a partition table"));
|
||||||
exportPartitionTable->setStatusTip(xi18nc("@info:status", "Export the device's partition table to a text file."));
|
exportPartitionTable->setStatusTip(xi18nc("@info:status", "Export the device's partition table to a text file."));
|
||||||
exportPartitionTable->setIcon(QIcon::fromTheme(QStringLiteral("document-export")).pixmap(IconSize(KIconLoader::Toolbar)));
|
exportPartitionTable->setIcon(QIcon::fromTheme(QStringLiteral("document-export")));
|
||||||
|
|
||||||
QAction* importPartitionTable = actionCollection()->addAction(QStringLiteral("importPartitionTable"));
|
QAction* importPartitionTable = actionCollection()->addAction(QStringLiteral("importPartitionTable"));
|
||||||
connect(importPartitionTable, &QAction::triggered, this, &MainWindow::onImportPartitionTable);
|
connect(importPartitionTable, &QAction::triggered, this, &MainWindow::onImportPartitionTable);
|
||||||
|
@ -244,7 +319,7 @@ void MainWindow::setupActions()
|
||||||
importPartitionTable->setText(xi18nc("@action:inmenu", "Import Partition Table"));
|
importPartitionTable->setText(xi18nc("@action:inmenu", "Import Partition Table"));
|
||||||
importPartitionTable->setToolTip(xi18nc("@info:tooltip", "Import a partition table"));
|
importPartitionTable->setToolTip(xi18nc("@info:tooltip", "Import a partition table"));
|
||||||
importPartitionTable->setStatusTip(xi18nc("@info:status", "Import a partition table from a text file."));
|
importPartitionTable->setStatusTip(xi18nc("@info:status", "Import a partition table from a text file."));
|
||||||
importPartitionTable->setIcon(QIcon::fromTheme(QStringLiteral("document-import")).pixmap(IconSize(KIconLoader::Toolbar)));
|
importPartitionTable->setIcon(QIcon::fromTheme(QStringLiteral("document-import")));
|
||||||
|
|
||||||
QAction* removeVolumeGroup = actionCollection()->addAction(QStringLiteral("removeVolumeGroup"));
|
QAction* removeVolumeGroup = actionCollection()->addAction(QStringLiteral("removeVolumeGroup"));
|
||||||
connect(removeVolumeGroup, &QAction::triggered, this, &MainWindow::onRemoveVolumeGroup);
|
connect(removeVolumeGroup, &QAction::triggered, this, &MainWindow::onRemoveVolumeGroup);
|
||||||
|
@ -254,7 +329,7 @@ void MainWindow::setupActions()
|
||||||
removeVolumeGroup->setToolTip(i18nc("@info:tooltip", "Remove selected Volume Group"));
|
removeVolumeGroup->setToolTip(i18nc("@info:tooltip", "Remove selected Volume Group"));
|
||||||
removeVolumeGroup->setStatusTip(i18nc("@info:status", "Remove selected Volume Group."));
|
removeVolumeGroup->setStatusTip(i18nc("@info:status", "Remove selected Volume Group."));
|
||||||
//actionCollection()->setDefaultShortcut(removeVolumeGroup, QKeySequence(/*SHORTCUT KEY HERE*/));
|
//actionCollection()->setDefaultShortcut(removeVolumeGroup, QKeySequence(/*SHORTCUT KEY HERE*/));
|
||||||
removeVolumeGroup->setIcon(QIcon::fromTheme(QStringLiteral("edit-delete")).pixmap(IconSize(KIconLoader::Toolbar)));
|
removeVolumeGroup->setIcon(QIcon::fromTheme(QStringLiteral("edit-delete")));
|
||||||
|
|
||||||
QAction* resizeVolumeGroup = actionCollection()->addAction(QStringLiteral("resizeVolumeGroup"));
|
QAction* resizeVolumeGroup = actionCollection()->addAction(QStringLiteral("resizeVolumeGroup"));
|
||||||
connect(resizeVolumeGroup, &QAction::triggered, this, &MainWindow::onResizeVolumeGroup);
|
connect(resizeVolumeGroup, &QAction::triggered, this, &MainWindow::onResizeVolumeGroup);
|
||||||
|
@ -264,7 +339,7 @@ void MainWindow::setupActions()
|
||||||
resizeVolumeGroup->setToolTip(i18nc("@info:tooltip", "Resize selected Volume Group"));
|
resizeVolumeGroup->setToolTip(i18nc("@info:tooltip", "Resize selected Volume Group"));
|
||||||
resizeVolumeGroup->setStatusTip(i18nc("@info:status", "Extend or reduce selected Volume Group."));
|
resizeVolumeGroup->setStatusTip(i18nc("@info:status", "Extend or reduce selected Volume Group."));
|
||||||
//actionCollection()->setDefaultShortcut(resizeVolumeGroup, QKeySequence(/*SHORTCUT KEY HERE*/));
|
//actionCollection()->setDefaultShortcut(resizeVolumeGroup, QKeySequence(/*SHORTCUT KEY HERE*/));
|
||||||
resizeVolumeGroup->setIcon(QIcon::fromTheme(QStringLiteral("arrow-right-double")).pixmap(IconSize(KIconLoader::Toolbar)));
|
resizeVolumeGroup->setIcon(QIcon::fromTheme(QStringLiteral("arrow-right-double")));
|
||||||
|
|
||||||
QAction* deactivateVolumeGroup = actionCollection()->addAction(QStringLiteral("deactivateVolumeGroup"));
|
QAction* deactivateVolumeGroup = actionCollection()->addAction(QStringLiteral("deactivateVolumeGroup"));
|
||||||
connect(deactivateVolumeGroup, &QAction::triggered, this, &MainWindow::onDeactivateVolumeGroup);
|
connect(deactivateVolumeGroup, &QAction::triggered, this, &MainWindow::onDeactivateVolumeGroup);
|
||||||
|
@ -273,7 +348,7 @@ void MainWindow::setupActions()
|
||||||
deactivateVolumeGroup->setText(i18nc("@action:inmenu", "Deactivate Volume Group"));
|
deactivateVolumeGroup->setText(i18nc("@action:inmenu", "Deactivate Volume Group"));
|
||||||
deactivateVolumeGroup->setToolTip(i18nc("@info:tooltip", "Deactivate selected Volume Group"));
|
deactivateVolumeGroup->setToolTip(i18nc("@info:tooltip", "Deactivate selected Volume Group"));
|
||||||
deactivateVolumeGroup->setStatusTip(i18nc("@info:status", "Deactivate selected Volume Group before unplugging removable devices."));
|
deactivateVolumeGroup->setStatusTip(i18nc("@info:status", "Deactivate selected Volume Group before unplugging removable devices."));
|
||||||
deactivateVolumeGroup->setIcon(QIcon::fromTheme(QStringLiteral("media-eject")).pixmap(IconSize(KIconLoader::Toolbar)));
|
deactivateVolumeGroup->setIcon(QIcon::fromTheme(QStringLiteral("media-eject")));
|
||||||
|
|
||||||
QAction* smartStatusDevice = actionCollection()->addAction(QStringLiteral("smartStatusDevice"));
|
QAction* smartStatusDevice = actionCollection()->addAction(QStringLiteral("smartStatusDevice"));
|
||||||
connect(smartStatusDevice, &QAction::triggered, this, &MainWindow::onSmartStatusDevice);
|
connect(smartStatusDevice, &QAction::triggered, this, &MainWindow::onSmartStatusDevice);
|
||||||
|
@ -288,7 +363,7 @@ void MainWindow::setupActions()
|
||||||
propertiesDevice->setText(xi18nc("@action:inmenu", "Properties"));
|
propertiesDevice->setText(xi18nc("@action:inmenu", "Properties"));
|
||||||
propertiesDevice->setToolTip(xi18nc("@info:tooltip", "Show device properties dialog"));
|
propertiesDevice->setToolTip(xi18nc("@info:tooltip", "Show device properties dialog"));
|
||||||
propertiesDevice->setStatusTip(xi18nc("@info:status", "View and modify device properties"));
|
propertiesDevice->setStatusTip(xi18nc("@info:status", "View and modify device properties"));
|
||||||
propertiesDevice->setIcon(QIcon::fromTheme(QStringLiteral("document-properties")).pixmap(IconSize(KIconLoader::Toolbar)));
|
propertiesDevice->setIcon(QIcon::fromTheme(QStringLiteral("document-properties")));
|
||||||
|
|
||||||
// Partition actions
|
// Partition actions
|
||||||
QAction* newPartition = actionCollection()->addAction(QStringLiteral("newPartition"));
|
QAction* newPartition = actionCollection()->addAction(QStringLiteral("newPartition"));
|
||||||
|
@ -297,8 +372,8 @@ void MainWindow::setupActions()
|
||||||
newPartition->setText(xi18nc("@action:inmenu create a new partition", "New"));
|
newPartition->setText(xi18nc("@action:inmenu create a new partition", "New"));
|
||||||
newPartition->setToolTip(xi18nc("@info:tooltip", "New partition"));
|
newPartition->setToolTip(xi18nc("@info:tooltip", "New partition"));
|
||||||
newPartition->setStatusTip(xi18nc("@info:status", "Create a new partition."));
|
newPartition->setStatusTip(xi18nc("@info:status", "Create a new partition."));
|
||||||
actionCollection()->setDefaultShortcut(newPartition, QKeySequence(Qt::CTRL + Qt::Key_N));
|
actionCollection()->setDefaultShortcut(newPartition, QKeySequence(Qt::CTRL | Qt::Key_N));
|
||||||
newPartition->setIcon(QIcon::fromTheme(QStringLiteral("document-new")).pixmap(IconSize(KIconLoader::Toolbar)));
|
newPartition->setIcon(QIcon::fromTheme(QStringLiteral("document-new")));
|
||||||
|
|
||||||
QAction* resizePartition = actionCollection()->addAction(QStringLiteral("resizePartition"));
|
QAction* resizePartition = actionCollection()->addAction(QStringLiteral("resizePartition"));
|
||||||
connect(resizePartition, &QAction::triggered, &pmWidget(), &PartitionManagerWidget::onResizePartition);
|
connect(resizePartition, &QAction::triggered, &pmWidget(), &PartitionManagerWidget::onResizePartition);
|
||||||
|
@ -306,8 +381,8 @@ void MainWindow::setupActions()
|
||||||
resizePartition->setText(xi18nc("@action:inmenu", "Resize/Move"));
|
resizePartition->setText(xi18nc("@action:inmenu", "Resize/Move"));
|
||||||
resizePartition->setToolTip(xi18nc("@info:tooltip", "Resize or move partition"));
|
resizePartition->setToolTip(xi18nc("@info:tooltip", "Resize or move partition"));
|
||||||
resizePartition->setStatusTip(xi18nc("@info:status", "Shrink, grow or move an existing partition."));
|
resizePartition->setStatusTip(xi18nc("@info:status", "Shrink, grow or move an existing partition."));
|
||||||
actionCollection()->setDefaultShortcut(resizePartition, QKeySequence(Qt::CTRL + Qt::Key_R));
|
actionCollection()->setDefaultShortcut(resizePartition, QKeySequence(Qt::CTRL | Qt::Key_R));
|
||||||
resizePartition->setIcon(QIcon::fromTheme(QStringLiteral("arrow-right-double")).pixmap(IconSize(KIconLoader::Toolbar)));
|
resizePartition->setIcon(QIcon::fromTheme(QStringLiteral("arrow-right-double")));
|
||||||
|
|
||||||
QAction* deletePartition = actionCollection()->addAction(QStringLiteral("deletePartition"));
|
QAction* deletePartition = actionCollection()->addAction(QStringLiteral("deletePartition"));
|
||||||
connect(deletePartition, &QAction::triggered, &pmWidget(), &PartitionManagerWidget::onDeletePartition);
|
connect(deletePartition, &QAction::triggered, &pmWidget(), &PartitionManagerWidget::onDeletePartition);
|
||||||
|
@ -316,7 +391,7 @@ void MainWindow::setupActions()
|
||||||
deletePartition->setToolTip(xi18nc("@info:tooltip", "Delete partition"));
|
deletePartition->setToolTip(xi18nc("@info:tooltip", "Delete partition"));
|
||||||
deletePartition->setStatusTip(xi18nc("@info:status", "Delete a partition."));
|
deletePartition->setStatusTip(xi18nc("@info:status", "Delete a partition."));
|
||||||
actionCollection()->setDefaultShortcut(deletePartition, QKeySequence::Delete);
|
actionCollection()->setDefaultShortcut(deletePartition, QKeySequence::Delete);
|
||||||
deletePartition->setIcon(QIcon::fromTheme(QStringLiteral("edit-delete")).pixmap(IconSize(KIconLoader::Toolbar)));
|
deletePartition->setIcon(QIcon::fromTheme(QStringLiteral("edit-delete")));
|
||||||
|
|
||||||
QAction* shredPartition = actionCollection()->addAction(QStringLiteral("shredPartition"));
|
QAction* shredPartition = actionCollection()->addAction(QStringLiteral("shredPartition"));
|
||||||
connect(shredPartition, &QAction::triggered, &pmWidget(), &PartitionManagerWidget::onShredPartition);
|
connect(shredPartition, &QAction::triggered, &pmWidget(), &PartitionManagerWidget::onShredPartition);
|
||||||
|
@ -324,8 +399,8 @@ void MainWindow::setupActions()
|
||||||
shredPartition->setText(xi18nc("@action:inmenu", "Shred"));
|
shredPartition->setText(xi18nc("@action:inmenu", "Shred"));
|
||||||
shredPartition->setToolTip(xi18nc("@info:tooltip", "Shred partition"));
|
shredPartition->setToolTip(xi18nc("@info:tooltip", "Shred partition"));
|
||||||
shredPartition->setStatusTip(xi18nc("@info:status", "Shred a partition so that its contents cannot be restored."));
|
shredPartition->setStatusTip(xi18nc("@info:status", "Shred a partition so that its contents cannot be restored."));
|
||||||
actionCollection()->setDefaultShortcut(shredPartition, QKeySequence(Qt::SHIFT + Qt::Key_Delete));
|
actionCollection()->setDefaultShortcut(shredPartition, QKeySequence(Qt::SHIFT | Qt::Key_Delete));
|
||||||
shredPartition->setIcon(QIcon::fromTheme(QStringLiteral("edit-delete-shred")).pixmap(IconSize(KIconLoader::Toolbar)));
|
shredPartition->setIcon(QIcon::fromTheme(QStringLiteral("edit-delete-shred")));
|
||||||
|
|
||||||
QAction* copyPartition = actionCollection()->addAction(QStringLiteral("copyPartition"));
|
QAction* copyPartition = actionCollection()->addAction(QStringLiteral("copyPartition"));
|
||||||
connect(copyPartition, &QAction::triggered, &pmWidget(), &PartitionManagerWidget::onCopyPartition);
|
connect(copyPartition, &QAction::triggered, &pmWidget(), &PartitionManagerWidget::onCopyPartition);
|
||||||
|
@ -333,8 +408,8 @@ void MainWindow::setupActions()
|
||||||
copyPartition->setText(xi18nc("@action:inmenu", "Copy"));
|
copyPartition->setText(xi18nc("@action:inmenu", "Copy"));
|
||||||
copyPartition->setToolTip(xi18nc("@info:tooltip", "Copy partition"));
|
copyPartition->setToolTip(xi18nc("@info:tooltip", "Copy partition"));
|
||||||
copyPartition->setStatusTip(xi18nc("@info:status", "Copy an existing partition."));
|
copyPartition->setStatusTip(xi18nc("@info:status", "Copy an existing partition."));
|
||||||
actionCollection()->setDefaultShortcut(copyPartition, QKeySequence(Qt::CTRL + Qt::Key_C));
|
actionCollection()->setDefaultShortcut(copyPartition, QKeySequence(Qt::CTRL | Qt::Key_C));
|
||||||
copyPartition->setIcon(QIcon::fromTheme(QStringLiteral("edit-copy")).pixmap(IconSize(KIconLoader::Toolbar)));
|
copyPartition->setIcon(QIcon::fromTheme(QStringLiteral("edit-copy")));
|
||||||
|
|
||||||
QAction* pastePartition = actionCollection()->addAction(QStringLiteral("pastePartition"));
|
QAction* pastePartition = actionCollection()->addAction(QStringLiteral("pastePartition"));
|
||||||
connect(pastePartition, &QAction::triggered, &pmWidget(), &PartitionManagerWidget::onPastePartition);
|
connect(pastePartition, &QAction::triggered, &pmWidget(), &PartitionManagerWidget::onPastePartition);
|
||||||
|
@ -342,8 +417,8 @@ void MainWindow::setupActions()
|
||||||
pastePartition->setText(xi18nc("@action:inmenu", "Paste"));
|
pastePartition->setText(xi18nc("@action:inmenu", "Paste"));
|
||||||
pastePartition->setToolTip(xi18nc("@info:tooltip", "Paste partition"));
|
pastePartition->setToolTip(xi18nc("@info:tooltip", "Paste partition"));
|
||||||
pastePartition->setStatusTip(xi18nc("@info:status", "Paste a copied partition."));
|
pastePartition->setStatusTip(xi18nc("@info:status", "Paste a copied partition."));
|
||||||
actionCollection()->setDefaultShortcut(pastePartition, QKeySequence(Qt::CTRL + Qt::Key_V));
|
actionCollection()->setDefaultShortcut(pastePartition, QKeySequence(Qt::CTRL | Qt::Key_V));
|
||||||
pastePartition->setIcon(QIcon::fromTheme(QStringLiteral("edit-paste")).pixmap(IconSize(KIconLoader::Toolbar)));
|
pastePartition->setIcon(QIcon::fromTheme(QStringLiteral("edit-paste")));
|
||||||
|
|
||||||
QAction* editMountPoint = actionCollection()->addAction(QStringLiteral("editMountPoint"));
|
QAction* editMountPoint = actionCollection()->addAction(QStringLiteral("editMountPoint"));
|
||||||
connect(editMountPoint, &QAction::triggered, &pmWidget(), &PartitionManagerWidget::onEditMountPoint);
|
connect(editMountPoint, &QAction::triggered, &pmWidget(), &PartitionManagerWidget::onEditMountPoint);
|
||||||
|
@ -372,7 +447,7 @@ void MainWindow::setupActions()
|
||||||
checkPartition->setText(xi18nc("@action:inmenu", "Check"));
|
checkPartition->setText(xi18nc("@action:inmenu", "Check"));
|
||||||
checkPartition->setToolTip(xi18nc("@info:tooltip", "Check partition"));
|
checkPartition->setToolTip(xi18nc("@info:tooltip", "Check partition"));
|
||||||
checkPartition->setStatusTip(xi18nc("@info:status", "Check a filesystem on a partition for errors."));
|
checkPartition->setStatusTip(xi18nc("@info:status", "Check a filesystem on a partition for errors."));
|
||||||
checkPartition->setIcon(QIcon::fromTheme(QStringLiteral("flag")).pixmap(IconSize(KIconLoader::Toolbar)));
|
checkPartition->setIcon(QIcon::fromTheme(QStringLiteral("flag")));
|
||||||
|
|
||||||
QAction* propertiesPartition = actionCollection()->addAction(QStringLiteral("propertiesPartition"));
|
QAction* propertiesPartition = actionCollection()->addAction(QStringLiteral("propertiesPartition"));
|
||||||
connect(propertiesPartition, &QAction::triggered, &pmWidget(), &PartitionManagerWidget::onPropertiesPartition);
|
connect(propertiesPartition, &QAction::triggered, &pmWidget(), &PartitionManagerWidget::onPropertiesPartition);
|
||||||
|
@ -380,7 +455,7 @@ void MainWindow::setupActions()
|
||||||
propertiesPartition->setText(xi18nc("@action:inmenu", "Properties"));
|
propertiesPartition->setText(xi18nc("@action:inmenu", "Properties"));
|
||||||
propertiesPartition->setToolTip(xi18nc("@info:tooltip", "Show partition properties dialog"));
|
propertiesPartition->setToolTip(xi18nc("@info:tooltip", "Show partition properties dialog"));
|
||||||
propertiesPartition->setStatusTip(xi18nc("@info:status", "View and modify partition properties (label, partition flags, etc.)"));
|
propertiesPartition->setStatusTip(xi18nc("@info:status", "View and modify partition properties (label, partition flags, etc.)"));
|
||||||
propertiesPartition->setIcon(QIcon::fromTheme(QStringLiteral("document-properties")).pixmap(IconSize(KIconLoader::Toolbar)));
|
propertiesPartition->setIcon(QIcon::fromTheme(QStringLiteral("document-properties")));
|
||||||
|
|
||||||
QAction* backup = actionCollection()->addAction(QStringLiteral("backupPartition"));
|
QAction* backup = actionCollection()->addAction(QStringLiteral("backupPartition"));
|
||||||
connect(backup, &QAction::triggered, &pmWidget(), &PartitionManagerWidget::onBackupPartition);
|
connect(backup, &QAction::triggered, &pmWidget(), &PartitionManagerWidget::onBackupPartition);
|
||||||
|
@ -388,7 +463,7 @@ void MainWindow::setupActions()
|
||||||
backup->setText(xi18nc("@action:inmenu", "Backup"));
|
backup->setText(xi18nc("@action:inmenu", "Backup"));
|
||||||
backup->setToolTip(xi18nc("@info:tooltip", "Backup partition"));
|
backup->setToolTip(xi18nc("@info:tooltip", "Backup partition"));
|
||||||
backup->setStatusTip(xi18nc("@info:status", "Backup a partition to an image file."));
|
backup->setStatusTip(xi18nc("@info:status", "Backup a partition to an image file."));
|
||||||
backup->setIcon(QIcon::fromTheme(QStringLiteral("document-export")).pixmap(IconSize(KIconLoader::Toolbar)));
|
backup->setIcon(QIcon::fromTheme(QStringLiteral("document-export")));
|
||||||
|
|
||||||
QAction* restore = actionCollection()->addAction(QStringLiteral("restorePartition"));
|
QAction* restore = actionCollection()->addAction(QStringLiteral("restorePartition"));
|
||||||
connect(restore, &QAction::triggered, &pmWidget(), &PartitionManagerWidget::onRestorePartition);
|
connect(restore, &QAction::triggered, &pmWidget(), &PartitionManagerWidget::onRestorePartition);
|
||||||
|
@ -396,7 +471,7 @@ void MainWindow::setupActions()
|
||||||
restore->setText(xi18nc("@action:inmenu", "Restore"));
|
restore->setText(xi18nc("@action:inmenu", "Restore"));
|
||||||
restore->setToolTip(xi18nc("@info:tooltip", "Restore partition"));
|
restore->setToolTip(xi18nc("@info:tooltip", "Restore partition"));
|
||||||
restore->setStatusTip(xi18nc("@info:status", "Restore a partition from an image file."));
|
restore->setStatusTip(xi18nc("@info:status", "Restore a partition from an image file."));
|
||||||
restore->setIcon(QIcon::fromTheme(QStringLiteral("document-import")).pixmap(IconSize(KIconLoader::Toolbar)));
|
restore->setIcon(QIcon::fromTheme(QStringLiteral("document-import")));
|
||||||
|
|
||||||
// Tools actions
|
// Tools actions
|
||||||
QAction* createVolumeGroup = actionCollection()->addAction(QStringLiteral("createVolumeGroup"));
|
QAction* createVolumeGroup = actionCollection()->addAction(QStringLiteral("createVolumeGroup"));
|
||||||
|
@ -405,8 +480,8 @@ void MainWindow::setupActions()
|
||||||
createVolumeGroup->setText(i18nc("@action:inmenu", "New Volume Group"));
|
createVolumeGroup->setText(i18nc("@action:inmenu", "New Volume Group"));
|
||||||
createVolumeGroup->setToolTip(i18nc("@info:tooltip", "Create a new LVM Volume Group"));
|
createVolumeGroup->setToolTip(i18nc("@info:tooltip", "Create a new LVM Volume Group"));
|
||||||
createVolumeGroup->setStatusTip(i18nc("@info:status", "Create a new LVM Volume Group as a device."));
|
createVolumeGroup->setStatusTip(i18nc("@info:status", "Create a new LVM Volume Group as a device."));
|
||||||
actionCollection()->setDefaultShortcut(createVolumeGroup, QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_L));
|
actionCollection()->setDefaultShortcut(createVolumeGroup, QKeySequence(Qt::CTRL | Qt::SHIFT | Qt::Key_L));
|
||||||
createVolumeGroup->setIcon(QIcon::fromTheme(QStringLiteral("document-new")).pixmap(IconSize(KIconLoader::Toolbar)));
|
createVolumeGroup->setIcon(QIcon::fromTheme(QStringLiteral("document-new")));
|
||||||
|
|
||||||
QAction* fileSystemSupport = actionCollection()->addAction(QStringLiteral("fileSystemSupport"));
|
QAction* fileSystemSupport = actionCollection()->addAction(QStringLiteral("fileSystemSupport"));
|
||||||
connect(fileSystemSupport, &QAction::triggered, this, &MainWindow::onFileSystemSupport);
|
connect(fileSystemSupport, &QAction::triggered, this, &MainWindow::onFileSystemSupport);
|
||||||
|
@ -420,7 +495,8 @@ void MainWindow::setupActions()
|
||||||
refreshDevices->setToolTip(xi18nc("@info:tooltip", "Refresh all devices"));
|
refreshDevices->setToolTip(xi18nc("@info:tooltip", "Refresh all devices"));
|
||||||
refreshDevices->setStatusTip(xi18nc("@info:status", "Renew the devices list."));
|
refreshDevices->setStatusTip(xi18nc("@info:status", "Renew the devices list."));
|
||||||
actionCollection()->setDefaultShortcut(refreshDevices, Qt::Key_F5);
|
actionCollection()->setDefaultShortcut(refreshDevices, Qt::Key_F5);
|
||||||
refreshDevices->setIcon(QIcon::fromTheme(QStringLiteral("view-refresh")).pixmap(IconSize(KIconLoader::Toolbar)));
|
refreshDevices->setIcon(QIcon::fromTheme(QStringLiteral("view-refresh")));
|
||||||
|
MessageWidget().addAction(refreshDevices);
|
||||||
|
|
||||||
// Settings Actions
|
// Settings Actions
|
||||||
actionCollection()->addAction(QStringLiteral("toggleDockDevices"), dockDevices().toggleViewAction());
|
actionCollection()->addAction(QStringLiteral("toggleDockDevices"), dockDevices().toggleViewAction());
|
||||||
|
@ -436,14 +512,14 @@ void MainWindow::setupActions()
|
||||||
clearLog->setText(xi18nc("@action:inmenu", "Clear Log"));
|
clearLog->setText(xi18nc("@action:inmenu", "Clear Log"));
|
||||||
clearLog->setToolTip(xi18nc("@info:tooltip", "Clear the log output"));
|
clearLog->setToolTip(xi18nc("@info:tooltip", "Clear the log output"));
|
||||||
clearLog->setStatusTip(xi18nc("@info:status", "Clear the log output panel."));
|
clearLog->setStatusTip(xi18nc("@info:status", "Clear the log output panel."));
|
||||||
clearLog->setIcon(QIcon::fromTheme(QStringLiteral("edit-clear-list")).pixmap(IconSize(KIconLoader::Toolbar)));
|
clearLog->setIcon(QIcon::fromTheme(QStringLiteral("edit-clear-list")));
|
||||||
|
|
||||||
QAction* saveLog = actionCollection()->addAction(QStringLiteral("saveLog"));
|
QAction* saveLog = actionCollection()->addAction(QStringLiteral("saveLog"));
|
||||||
connect(saveLog, &QAction::triggered, &treeLog(), &TreeLog::onSaveLog);
|
connect(saveLog, &QAction::triggered, &treeLog(), &TreeLog::onSaveLog);
|
||||||
saveLog->setText(xi18nc("@action:inmenu", "Save Log"));
|
saveLog->setText(xi18nc("@action:inmenu", "Save Log"));
|
||||||
saveLog->setToolTip(xi18nc("@info:tooltip", "Save the log output"));
|
saveLog->setToolTip(xi18nc("@info:tooltip", "Save the log output"));
|
||||||
saveLog->setStatusTip(xi18nc("@info:status", "Save the log output to a file."));
|
saveLog->setStatusTip(xi18nc("@info:status", "Save the log output to a file."));
|
||||||
saveLog->setIcon(QIcon::fromTheme(QStringLiteral("document-save")).pixmap(IconSize(KIconLoader::Toolbar)));
|
saveLog->setIcon(QIcon::fromTheme(QStringLiteral("document-save")));
|
||||||
|
|
||||||
// Help Actions
|
// Help Actions
|
||||||
QAction* aboutKPMcore = actionCollection()->addAction(QStringLiteral("aboutKPMcore"));
|
QAction* aboutKPMcore = actionCollection()->addAction(QStringLiteral("aboutKPMcore"));
|
||||||
|
@ -451,13 +527,31 @@ void MainWindow::setupActions()
|
||||||
aboutKPMcore->setText(xi18nc("@action:inmenu", "About KPMcore Library"));
|
aboutKPMcore->setText(xi18nc("@action:inmenu", "About KPMcore Library"));
|
||||||
aboutKPMcore->setToolTip(xi18nc("@info:tooltip", "Show About KPMcore dialog"));
|
aboutKPMcore->setToolTip(xi18nc("@info:tooltip", "Show About KPMcore dialog"));
|
||||||
aboutKPMcore->setStatusTip(xi18nc("@info:status", "Show About KPMcore dialog."));
|
aboutKPMcore->setStatusTip(xi18nc("@info:status", "Show About KPMcore dialog."));
|
||||||
aboutKPMcore->setIcon(QIcon::fromTheme(QStringLiteral("partitionmanager")).pixmap(IconSize(KIconLoader::Toolbar)));
|
aboutKPMcore->setIcon(QIcon::fromTheme(QStringLiteral("partitionmanager")));
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::setupConnections()
|
void MainWindow::setupConnections()
|
||||||
{
|
{
|
||||||
connect(&listDevices(), &ListDevices::selectionChanged, &pmWidget(), qOverload<const QString&>(&PartitionManagerWidget::setSelectedDevice));
|
connect(&listDevices(), &ListDevices::selectionChanged,
|
||||||
connect(&listDevices(), &ListDevices::deviceDoubleClicked, this, &MainWindow::onPropertiesDevice);
|
&pmWidget(), qOverload<const QString&>(&PartitionManagerWidget::setSelectedDevice));
|
||||||
|
|
||||||
|
connect(&listDevices(), &ListDevices::deviceDoubleClicked,
|
||||||
|
this, &MainWindow::onPropertiesDevice);
|
||||||
|
|
||||||
|
connect(&m_ListDevices->listDevices(), &QListWidget::customContextMenuRequested,
|
||||||
|
this, &MainWindow::listDevicesContextMenuRequested);
|
||||||
|
connect(&m_TreeLog->treeLog(), &QTreeWidget::customContextMenuRequested,
|
||||||
|
this, &MainWindow::treeLogContextMenuRequested);
|
||||||
|
connect(&m_ListOperations->listOperations(), &QListWidget::customContextMenuRequested,
|
||||||
|
this, &MainWindow::listOperationsContextMenuRequested);
|
||||||
|
|
||||||
|
connect(GlobalLog::instance(), &GlobalLog::newMessage,
|
||||||
|
&treeLog(), &TreeLog::onNewLogMessage);
|
||||||
|
|
||||||
|
connect(this, &MainWindow::showMessageWidget, &MessageWidget(),
|
||||||
|
&KMessageWidget::animatedShow);
|
||||||
|
connect(this, &MainWindow::hideMessageWidget, &MessageWidget(),
|
||||||
|
&KMessageWidget::animatedHide);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::setupStatusBar()
|
void MainWindow::setupStatusBar()
|
||||||
|
@ -740,7 +834,13 @@ void MainWindow::on_m_DeviceScanner_finished()
|
||||||
|
|
||||||
scanProgressDialog().setProgress(100);
|
scanProgressDialog().setProgress(100);
|
||||||
|
|
||||||
if (!operationStack().previewDevices().isEmpty())
|
bool foundDevices = !operationStack().previewDevices().isEmpty();
|
||||||
|
|
||||||
|
guiFactory()
|
||||||
|
->container(QStringLiteral("selectedDevice"), this)
|
||||||
|
->setEnabled(foundDevices);
|
||||||
|
|
||||||
|
if (foundDevices)
|
||||||
pmWidget().setSelectedDevice(operationStack().previewDevices()[0]);
|
pmWidget().setSelectedDevice(operationStack().previewDevices()[0]);
|
||||||
|
|
||||||
pmWidget().updatePartitions();
|
pmWidget().updatePartitions();
|
||||||
|
@ -750,11 +850,12 @@ void MainWindow::on_m_DeviceScanner_finished()
|
||||||
|
|
||||||
// try to set the seleted device, either from the saved one or just select the
|
// try to set the seleted device, either from the saved one or just select the
|
||||||
// first device
|
// first device
|
||||||
if (!listDevices().setSelectedDevice(savedSelectedDeviceNode()) && !operationStack().previewDevices().isEmpty())
|
if (!listDevices().setSelectedDevice(savedSelectedDeviceNode()) && foundDevices)
|
||||||
listDevices().setSelectedDevice(operationStack().previewDevices()[0]->deviceNode());
|
listDevices().setSelectedDevice(operationStack().previewDevices()[0]->deviceNode());
|
||||||
|
|
||||||
updateSeletedDeviceMenu();
|
updateSeletedDeviceMenu();
|
||||||
checkFileSystemSupport();
|
checkFileSystemSupport();
|
||||||
|
Q_EMIT scanFinished();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::updateSeletedDeviceMenu()
|
void MainWindow::updateSeletedDeviceMenu()
|
||||||
|
@ -813,7 +914,17 @@ void MainWindow::onRefreshDevices()
|
||||||
xi18nc("@title:window", "Really Rescan the Devices?"),
|
xi18nc("@title:window", "Really Rescan the Devices?"),
|
||||||
KGuiItem(xi18nc("@action:button", "Rescan Devices"), QStringLiteral("arrow-right")),
|
KGuiItem(xi18nc("@action:button", "Rescan Devices"), QStringLiteral("arrow-right")),
|
||||||
KStandardGuiItem::cancel(), QStringLiteral("reallyRescanDevices")) == KMessageBox::Continue) {
|
KStandardGuiItem::cancel(), QStringLiteral("reallyRescanDevices")) == KMessageBox::Continue) {
|
||||||
scanDevices();
|
|
||||||
|
if (m_permissionGranted) {
|
||||||
|
scanDevices();
|
||||||
|
} else {
|
||||||
|
askForPermissions();
|
||||||
|
if (m_permissionGranted) {
|
||||||
|
Q_EMIT hideMessageWidget();
|
||||||
|
FileSystemFactory::init();
|
||||||
|
scanDevices();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -906,6 +1017,8 @@ void MainWindow::onImportPartitionTable()
|
||||||
{
|
{
|
||||||
Q_ASSERT(pmWidget().selectedDevice());
|
Q_ASSERT(pmWidget().selectedDevice());
|
||||||
|
|
||||||
|
// TODO: This method looks like should live somewhere completely different.
|
||||||
|
// It's importing the partition table, why it's not on the partition table source?
|
||||||
const QUrl url = QFileDialog::getOpenFileUrl(this, QStringLiteral("Import Partition Table"));
|
const QUrl url = QFileDialog::getOpenFileUrl(this, QStringLiteral("Import Partition Table"));
|
||||||
|
|
||||||
if (url.isEmpty())
|
if (url.isEmpty())
|
||||||
|
@ -992,7 +1105,7 @@ void MainWindow::onImportPartitionTable()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tableType != PartitionTable::msdos && tableType != PartitionTable::gpt) {
|
if (tableType != PartitionTable::msdos && tableType != PartitionTable::gpt && tableType != PartitionTable::none) {
|
||||||
KMessageBox::error(this, xi18nc("@info", "Partition table type \"%1\" is not supported for import (line %2).", reType.captured(1), lineNo), xi18nc("@title:window", "Error While Importing Partition Table"));
|
KMessageBox::error(this, xi18nc("@info", "Partition table type \"%1\" is not supported for import (line %2).", reType.captured(1), lineNo), xi18nc("@title:window", "Error While Importing Partition Table"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1064,9 +1177,13 @@ void MainWindow::onImportPartitionTable()
|
||||||
if (fs->supportSetLabel() != FileSystem::cmdSupportNone && !volumeLabel.isEmpty())
|
if (fs->supportSetLabel() != FileSystem::cmdSupportNone && !volumeLabel.isEmpty())
|
||||||
fs->setLabel(volumeLabel);
|
fs->setLabel(volumeLabel);
|
||||||
|
|
||||||
Partition* p = new Partition(parent, device, role, fs, firstSector, lastSector, QString(), PartitionTable::flagsFromList(flags), QString(), false, PartitionTable::flagsFromList(flags), Partition::State::New);
|
Partition* p = new Partition(parent, device, role, fs, firstSector, lastSector, QString(), PartitionTable::Flag::None, QString(), false, PartitionTable::Flag::None, Partition::State::New);
|
||||||
|
|
||||||
operationStack().push(new NewOperation(device, p));
|
operationStack().push(new NewOperation(device, p));
|
||||||
|
|
||||||
|
auto newFlags = PartitionTable::flagsFromList(flags);
|
||||||
|
if (newFlags != PartitionTable::Flag::None)
|
||||||
|
operationStack().push(new SetPartFlagsOperation(device, *p, newFlags));
|
||||||
} else
|
} else
|
||||||
Log(Log::Level::warning) << xi18nc("@info:status", "Could not parse line %1 from import file. Ignoring it.", lineNo);
|
Log(Log::Level::warning) << xi18nc("@info:status", "Could not parse line %1 from import file. Ignoring it.", lineNo);
|
||||||
}
|
}
|
||||||
|
@ -1192,7 +1309,7 @@ void MainWindow::onSettingsChanged()
|
||||||
|
|
||||||
PartitionAlignment::setSectorAlignment(Config::sectorAlignment());
|
PartitionAlignment::setSectorAlignment(Config::sectorAlignment());
|
||||||
|
|
||||||
emit settingsChanged();
|
Q_EMIT settingsChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::onConfigureOptions()
|
void MainWindow::onConfigureOptions()
|
||||||
|
@ -1262,6 +1379,7 @@ static KLocalizedString checkSupportInNode(const PartitionNode* parent)
|
||||||
else
|
else
|
||||||
rval = checkSupportInNode(node);
|
rval = checkSupportInNode(node);
|
||||||
|
|
||||||
|
// TODO: Don't create HTML tables manually.
|
||||||
if ((!p->fileSystem().supportToolFound() && !p->fileSystem().supportToolName().name.isEmpty()) && !rval.isEmpty())
|
if ((!p->fileSystem().supportToolFound() && !p->fileSystem().supportToolName().name.isEmpty()) && !rval.isEmpty())
|
||||||
rval = kxi18n("%1%2").subs(rval).subs(kxi18n("<tr>"
|
rval = kxi18n("%1%2").subs(rval).subs(kxi18n("<tr>"
|
||||||
"<td>%1</td>"
|
"<td>%1</td>"
|
||||||
|
@ -1308,6 +1426,7 @@ void MainWindow::checkFileSystemSupport()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (missingSupportTools)
|
if (missingSupportTools)
|
||||||
|
// TODO: Don't create HTML manually.
|
||||||
KMessageBox::information(this,
|
KMessageBox::information(this,
|
||||||
xi18nc("@info",
|
xi18nc("@info",
|
||||||
"<para>No support tools were found for file systems currently present on hard disks in this computer:</para>"
|
"<para>No support tools were found for file systems currently present on hard disks in this computer:</para>"
|
||||||
|
@ -1326,3 +1445,24 @@ void MainWindow::checkFileSystemSupport()
|
||||||
xi18nc("@title:window", "Missing File System Support Packages"),
|
xi18nc("@title:window", "Missing File System Support Packages"),
|
||||||
QStringLiteral("showInformationOnMissingFileSystemSupport"), KMessageBox::Notify | KMessageBox::AllowLink);
|
QStringLiteral("showInformationOnMissingFileSystemSupport"), KMessageBox::Notify | KMessageBox::AllowLink);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::setCurrentDeviceByName(const QString& name)
|
||||||
|
{
|
||||||
|
// TODO: Port KPartitionManager away from KMessageBox into KMessageWidget.
|
||||||
|
// TODO: setSelectedDevice from m_ListDevices is not using a device name, but
|
||||||
|
// just issuing a match query on a string list, this will produce false results.
|
||||||
|
if (!m_ListDevices->setSelectedDevice(name)) {
|
||||||
|
KMessageBox::error(this,
|
||||||
|
xi18nc("@info device should be inside of /dev", "Unrecognized device \"%1\" ", name),
|
||||||
|
xi18nc("@title:window", "Error While Importing Partition Table"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::setCurrentPartitionByName(const QString& partitionName)
|
||||||
|
{
|
||||||
|
if (!pmWidget().setCurrentPartitionByName(partitionName)) {
|
||||||
|
KMessageBox::error(this,
|
||||||
|
xi18nc("@info device should be inside of /dev", "Unrecognized partition \"%1\" ", partitionName),
|
||||||
|
xi18nc("@title:window", "Error opening partition"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -1,20 +1,11 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2008, 2009, 2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2008-2012 Volker Lanz <vl@fidra.de>
|
||||||
* Copyright (C) 2016 by Andrius Štikonas <andrius@stikonas.eu> *
|
SPDX-FileCopyrightText: 2014-2019 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* *
|
SPDX-FileCopyrightText: 2015 Teo Mrnjavac <teo@kde.org>
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-FileCopyrightText: 2016 Chantara Tith <tith.chantara@gmail.com>
|
||||||
* modify it under the terms of the GNU General Public License as *
|
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* the License, or (at your option) any later version. *
|
*/
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#if !defined(MAINWINDOW_H)
|
#if !defined(MAINWINDOW_H)
|
||||||
|
|
||||||
|
@ -26,6 +17,7 @@
|
||||||
|
|
||||||
#include "ui_mainwindowbase.h"
|
#include "ui_mainwindowbase.h"
|
||||||
|
|
||||||
|
#include <KMessageWidget>
|
||||||
#include <KXmlGuiWindow>
|
#include <KXmlGuiWindow>
|
||||||
|
|
||||||
class ApplyProgressDialog;
|
class ApplyProgressDialog;
|
||||||
|
@ -53,8 +45,28 @@ class MainWindow : public KXmlGuiWindow, public Ui::MainWindowBase
|
||||||
public:
|
public:
|
||||||
explicit MainWindow(QWidget* parent = nullptr);
|
explicit MainWindow(QWidget* parent = nullptr);
|
||||||
|
|
||||||
|
// for instance `/dev/sda`
|
||||||
|
void setCurrentDeviceByName(const QString& name);
|
||||||
|
|
||||||
|
void setCurrentPartitionByName(const QString& partitionNumber);
|
||||||
|
|
||||||
|
// forbids the user to select another device.
|
||||||
|
// this is used in conjunction with --device
|
||||||
|
// rationale is that if the user specifies a device,
|
||||||
|
// we can't allow him to select another one by mistake while
|
||||||
|
// clicking in the UI.
|
||||||
|
void setDisallowOtherDevices();
|
||||||
|
|
||||||
|
// disallowOtherDevices hides the DockWidget, but unfortunately
|
||||||
|
// this is saved by the Window State when restored, even if we
|
||||||
|
// are not disallowing it this time. At the same time the user
|
||||||
|
// could have hidden it, so we need to restore only if hidden
|
||||||
|
// just by the call to disallowOtherDevices().
|
||||||
|
void showDevicePanelIfPreviouslyHiddenByDisallowOtherDevices();
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void settingsChanged();
|
void settingsChanged();
|
||||||
|
void scanFinished();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void init();
|
void init();
|
||||||
|
@ -211,6 +223,15 @@ protected:
|
||||||
return *m_ScanProgressDialog;
|
return *m_ScanProgressDialog;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
KMessageWidget &MessageWidget() {
|
||||||
|
Q_ASSERT(m_MessageWidget);
|
||||||
|
return *m_MessageWidget;
|
||||||
|
}
|
||||||
|
const KMessageWidget &MessageWidget() const {
|
||||||
|
Q_ASSERT(m_MessageWidget);
|
||||||
|
return *m_MessageWidget;
|
||||||
|
}
|
||||||
|
|
||||||
void onSelectedDeviceMenuTriggered(bool);
|
void onSelectedDeviceMenuTriggered(bool);
|
||||||
|
|
||||||
protected Q_SLOTS:
|
protected Q_SLOTS:
|
||||||
|
@ -260,6 +281,15 @@ protected:
|
||||||
void onSmartStatusDevice();
|
void onSmartStatusDevice();
|
||||||
void onPropertiesDevice(const QString& deviceNode = {});
|
void onPropertiesDevice(const QString& deviceNode = {});
|
||||||
|
|
||||||
|
private:
|
||||||
|
QMenu* createPopupMenu() override;
|
||||||
|
|
||||||
|
void askForPermissions();
|
||||||
|
|
||||||
|
Q_SIGNALS:
|
||||||
|
void showMessageWidget();
|
||||||
|
void hideMessageWidget();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
OperationStack* m_OperationStack;
|
OperationStack* m_OperationStack;
|
||||||
OperationRunner* m_OperationRunner;
|
OperationRunner* m_OperationRunner;
|
||||||
|
@ -268,6 +298,8 @@ private:
|
||||||
ScanProgressDialog* m_ScanProgressDialog;
|
ScanProgressDialog* m_ScanProgressDialog;
|
||||||
QLabel* m_StatusText;
|
QLabel* m_StatusText;
|
||||||
QString m_SavedSelectedDeviceNode;
|
QString m_SavedSelectedDeviceNode;
|
||||||
|
|
||||||
|
bool m_permissionGranted;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
|
<author>
|
||||||
|
SPDX-FileCopyrightText: 2008-2011 Volker Lanz <vl@fidra.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
</author>
|
||||||
<class>MainWindowBase</class>
|
<class>MainWindowBase</class>
|
||||||
<widget class="QMainWindow" name="MainWindowBase">
|
<widget class="QMainWindow" name="MainWindowBase">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
|
@ -13,8 +17,7 @@
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string comment="@title:window">KDE Partition Manager</string>
|
<string comment="@title:window">KDE Partition Manager</string>
|
||||||
</property>
|
</property>
|
||||||
<widget class="PartitionManagerWidget" name="m_PartitionManagerWidget">
|
<widget class="PartitionManagerWidget" name="m_PartitionManagerWidget"/>
|
||||||
</widget>
|
|
||||||
<widget class="QDockWidget" name="m_DockDevices">
|
<widget class="QDockWidget" name="m_DockDevices">
|
||||||
<property name="allowedAreas">
|
<property name="allowedAreas">
|
||||||
<set>Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea</set>
|
<set>Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea</set>
|
||||||
|
@ -25,8 +28,7 @@
|
||||||
<attribute name="dockWidgetArea">
|
<attribute name="dockWidgetArea">
|
||||||
<number>1</number>
|
<number>1</number>
|
||||||
</attribute>
|
</attribute>
|
||||||
<widget class="ListDevices" name="m_ListDevices">
|
<widget class="ListDevices" name="m_ListDevices"/>
|
||||||
</widget>
|
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QDockWidget" name="m_DockOperations">
|
<widget class="QDockWidget" name="m_DockOperations">
|
||||||
<property name="allowedAreas">
|
<property name="allowedAreas">
|
||||||
|
@ -38,8 +40,7 @@
|
||||||
<attribute name="dockWidgetArea">
|
<attribute name="dockWidgetArea">
|
||||||
<number>8</number>
|
<number>8</number>
|
||||||
</attribute>
|
</attribute>
|
||||||
<widget class="ListOperations" name="m_ListOperations">
|
<widget class="ListOperations" name="m_ListOperations"/>
|
||||||
</widget>
|
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QDockWidget" name="m_DockInformation">
|
<widget class="QDockWidget" name="m_DockInformation">
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
|
@ -48,8 +49,7 @@
|
||||||
<attribute name="dockWidgetArea">
|
<attribute name="dockWidgetArea">
|
||||||
<number>1</number>
|
<number>1</number>
|
||||||
</attribute>
|
</attribute>
|
||||||
<widget class="InfoPane" name="m_InfoPane">
|
<widget class="InfoPane" name="m_InfoPane"/>
|
||||||
</widget>
|
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QDockWidget" name="m_DockLog">
|
<widget class="QDockWidget" name="m_DockLog">
|
||||||
<property name="allowedAreas">
|
<property name="allowedAreas">
|
||||||
|
@ -61,11 +61,34 @@
|
||||||
<attribute name="dockWidgetArea">
|
<attribute name="dockWidgetArea">
|
||||||
<number>8</number>
|
<number>8</number>
|
||||||
</attribute>
|
</attribute>
|
||||||
<widget class="TreeLog" name="m_TreeLog">
|
<widget class="TreeLog" name="m_TreeLog"/>
|
||||||
|
</widget>
|
||||||
|
<widget class="QDockWidget" name="MessageWidgetDock">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="features">
|
||||||
|
<set>QDockWidget::NoDockWidgetFeatures</set>
|
||||||
|
</property>
|
||||||
|
<attribute name="dockWidgetArea">
|
||||||
|
<number>4</number>
|
||||||
|
</attribute>
|
||||||
|
<widget class="KMessageWidget" name="m_MessageWidget">
|
||||||
|
<property name="messageType">
|
||||||
|
<enum>KMessageWidget::Warning</enum>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
<customwidgets>
|
<customwidgets>
|
||||||
|
<customwidget>
|
||||||
|
<class>KMessageWidget</class>
|
||||||
|
<extends>QFrame</extends>
|
||||||
|
<header>kmessagewidget.h</header>
|
||||||
|
</customwidget>
|
||||||
<customwidget>
|
<customwidget>
|
||||||
<class>PartitionManagerWidget</class>
|
<class>PartitionManagerWidget</class>
|
||||||
<extends>QWidget</extends>
|
<extends>QWidget</extends>
|
||||||
|
|
|
@ -1,21 +1,12 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2008, 2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2008-2012 Volker Lanz <vl@fidra.de>
|
||||||
* Copyright (C) 2016 by Andrius Štikonas <andrius@stikonas.eu> *
|
SPDX-FileCopyrightText: 2013-2020 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* Copyright (C) 2016 by Teo Mrnjavac <teo@kde.org> *
|
SPDX-FileCopyrightText: 2015 Teo Mrnjavac <teo@kde.org>
|
||||||
* *
|
SPDX-FileCopyrightText: 2016 Chantara Tith <tith.chantara@gmail.com>
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho <caiojcarvalho@gmail.com>
|
||||||
* modify it under the terms of the GNU General Public License as *
|
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* the License, or (at your option) any later version. *
|
*/
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#include "gui/newdialog.h"
|
#include "gui/newdialog.h"
|
||||||
#include "gui/sizedialogwidget.h"
|
#include "gui/sizedialogwidget.h"
|
||||||
|
@ -31,8 +22,11 @@
|
||||||
#include <util/helpers.h>
|
#include <util/helpers.h>
|
||||||
#include "util/guihelpers.h"
|
#include "util/guihelpers.h"
|
||||||
|
|
||||||
|
#include <utility>
|
||||||
|
|
||||||
#include <QtGlobal>
|
#include <QtGlobal>
|
||||||
#include <QFontDatabase>
|
#include <QFontDatabase>
|
||||||
|
#include <QPalette>
|
||||||
|
|
||||||
#include <KColorScheme>
|
#include <KColorScheme>
|
||||||
#include <KConfigGroup>
|
#include <KConfigGroup>
|
||||||
|
@ -81,7 +75,7 @@ void NewDialog::setupDialog()
|
||||||
|
|
||||||
std::sort(fsNames.begin(), fsNames.end(), caseInsensitiveLessThan);
|
std::sort(fsNames.begin(), fsNames.end(), caseInsensitiveLessThan);
|
||||||
|
|
||||||
for (const auto &fsName : qAsConst(fsNames))
|
for (const auto &fsName : std::as_const(fsNames))
|
||||||
dialogWidget().comboFileSystem().addItem(createFileSystemColor(FileSystem::typeForName(fsName), 8), fsName);
|
dialogWidget().comboFileSystem().addItem(createFileSystemColor(FileSystem::typeForName(fsName), 8), fsName);
|
||||||
|
|
||||||
QString selected = FileSystem::nameForType(GuiHelpers::defaultFileSystem());
|
QString selected = FileSystem::nameForType(GuiHelpers::defaultFileSystem());
|
||||||
|
@ -119,6 +113,34 @@ void NewDialog::setupDialog()
|
||||||
// run there is a valid partition set in the part resizer widget and they will need that.
|
// run there is a valid partition set in the part resizer widget and they will need that.
|
||||||
onRoleChanged(false);
|
onRoleChanged(false);
|
||||||
onFilesystemChanged(dialogWidget().comboFileSystem().currentIndex());
|
onFilesystemChanged(dialogWidget().comboFileSystem().currentIndex());
|
||||||
|
|
||||||
|
auto showPermissionsGroup = [this] {
|
||||||
|
const QString currText = dialogWidget().comboFileSystem().currentText();
|
||||||
|
const bool enablePosixPermission = QList<QString>({
|
||||||
|
QStringLiteral("btrfs"),
|
||||||
|
QStringLiteral("ext2"),
|
||||||
|
QStringLiteral("ext3"),
|
||||||
|
QStringLiteral("ext4"),
|
||||||
|
QStringLiteral("f2fs"),
|
||||||
|
QStringLiteral("hfsplus"),
|
||||||
|
QStringLiteral("jfs"),
|
||||||
|
QStringLiteral("minix"),
|
||||||
|
QStringLiteral("ocfs2"),
|
||||||
|
QStringLiteral("reiserfs"),
|
||||||
|
QStringLiteral("reiser4"),
|
||||||
|
QStringLiteral("udf"),
|
||||||
|
QStringLiteral("xfs"),
|
||||||
|
QStringLiteral("zfs"),}
|
||||||
|
).contains(currText);
|
||||||
|
if (enablePosixPermission) {
|
||||||
|
dialogWidget().showPosixPermissions();
|
||||||
|
} else {
|
||||||
|
dialogWidget().hidePosixPermissions();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
connect(&dialogWidget().comboFileSystem(), QOverload<int>::of(&QComboBox::currentIndexChanged), this, showPermissionsGroup);
|
||||||
|
showPermissionsGroup();
|
||||||
|
dialogWidget().radioRootPermissions().setChecked(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void NewDialog::setupConnections()
|
void NewDialog::setupConnections()
|
||||||
|
@ -259,9 +281,9 @@ void NewDialog::updateHideAndShow()
|
||||||
dialogWidget().noSetLabel().setFont(QFontDatabase::systemFont(QFontDatabase::SmallestReadableFont));
|
dialogWidget().noSetLabel().setFont(QFontDatabase::systemFont(QFontDatabase::SmallestReadableFont));
|
||||||
|
|
||||||
QPalette palette = dialogWidget().noSetLabel().palette();
|
QPalette palette = dialogWidget().noSetLabel().palette();
|
||||||
QColor f = palette.color(QPalette::Foreground);
|
QColor f = palette.color(QPalette::WindowText);
|
||||||
f.setAlpha(128);
|
f.setAlpha(128);
|
||||||
palette.setColor(QPalette::Foreground, f);
|
palette.setColor(QPalette::WindowText, f);
|
||||||
dialogWidget().noSetLabel().setPalette(palette);
|
dialogWidget().noSetLabel().setPalette(palette);
|
||||||
dialogWidget().checkBoxEncrypt().hide();
|
dialogWidget().checkBoxEncrypt().hide();
|
||||||
dialogWidget().editPassphrase().hide();
|
dialogWidget().editPassphrase().hide();
|
||||||
|
@ -290,3 +312,8 @@ void NewDialog::updateOkButtonStatus()
|
||||||
{
|
{
|
||||||
okButton->setEnabled(isValidPassword() && isValidLVName());
|
okButton->setEnabled(isValidPassword() && isValidLVName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool NewDialog::useUnsecuredPartition() const
|
||||||
|
{
|
||||||
|
return !dialogWidget().isPermissionOnlyRoot();
|
||||||
|
}
|
||||||
|
|
|
@ -1,19 +1,10 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2008, 2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2008-2012 Volker Lanz <vl@fidra.de>
|
||||||
* *
|
SPDX-FileCopyrightText: 2014-2017 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-FileCopyrightText: 2016 Chantara Tith <tith.chantara@gmail.com>
|
||||||
* modify it under the terms of the GNU General Public License as *
|
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* the License, or (at your option) any later version. *
|
*/
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#if !defined(NEWDIALOG_H)
|
#if !defined(NEWDIALOG_H)
|
||||||
|
|
||||||
|
@ -39,6 +30,9 @@ public:
|
||||||
NewDialog(QWidget* parent, Device& device, Partition& unallocatedPartition, PartitionRole::Roles r);
|
NewDialog(QWidget* parent, Device& device, Partition& unallocatedPartition, PartitionRole::Roles r);
|
||||||
~NewDialog();
|
~NewDialog();
|
||||||
|
|
||||||
|
// returns true if any user can write on the partition.
|
||||||
|
// has the same effect as running `chmod 777` on it.
|
||||||
|
bool useUnsecuredPartition() const;
|
||||||
protected:
|
protected:
|
||||||
void accept() override;
|
void accept() override;
|
||||||
void onRoleChanged(bool);
|
void onRoleChanged(bool);
|
||||||
|
|
|
@ -1,21 +1,20 @@
|
||||||
<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
|
<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: 2008-2010 Volker Lanz <vl@fidra.de>
|
||||||
|
SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac <teo@kde.org>
|
||||||
|
SPDX-FileCopyrightText: 2016 Chantara Tith <tith.chantara@gmail.com>
|
||||||
|
SPDX-FileCopyrightText: 2016-2019 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
<gui name="KDE Partition Manager" version="11">
|
<gui name="KDE Partition Manager" version="11">
|
||||||
<ToolBar name="editToolBar">
|
<ToolBar name="partitionToolBar">
|
||||||
<text context="@title:menu turn on and off edit toolbar">Edit Toolbar</text>
|
<text context="@title:menu">Partition Manager Toolbar</text>
|
||||||
<Action name="applyAllOperations"/>
|
<Action name="applyAllOperations"/>
|
||||||
<Action name="undoOperation"/>
|
<Action name="undoOperation"/>
|
||||||
</ToolBar>
|
|
||||||
|
|
||||||
<ToolBar name="partitionToolBar">
|
|
||||||
<text context="@title:menu">Partition Toolbar</text>
|
|
||||||
<Action name="newPartition"/>
|
<Action name="newPartition"/>
|
||||||
<Action name="resizePartition"/>
|
<Action name="resizePartition"/>
|
||||||
<Action name="deletePartition"/>
|
<Action name="deletePartition"/>
|
||||||
</ToolBar>
|
|
||||||
|
|
||||||
<ToolBar name="deviceToolBar">
|
|
||||||
<text context="@title:menu">Device Toolbar</text>
|
|
||||||
<Action name="createNewPartitionTable"/>
|
<Action name="createNewPartitionTable"/>
|
||||||
</ToolBar>
|
</ToolBar>
|
||||||
|
|
||||||
|
|
|
@ -1,21 +1,12 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2008-2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2008-2012 Volker Lanz <vl@fidra.de>
|
||||||
* Copyright (C) 2015 by Teo Mrnjavac <teo@kde.org> *
|
SPDX-FileCopyrightText: 2014-2020 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* Copyright (C) 2016 by Andrius Štikonas <andrius@stikonas.eu> *
|
SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac <teo@kde.org>
|
||||||
* *
|
SPDX-FileCopyrightText: 2016 Chantara Tith <tith.chantara@gmail.com>
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-FileCopyrightText: 2018 Abhijeet Sharma <sharma.abhijeet2096@gmail.com>
|
||||||
* modify it under the terms of the GNU General Public License as *
|
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* the License, or (at your option) any later version. *
|
*/
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#include "gui/partitionmanagerwidget.h"
|
#include "gui/partitionmanagerwidget.h"
|
||||||
#include "gui/partpropsdialog.h"
|
#include "gui/partpropsdialog.h"
|
||||||
|
@ -57,7 +48,6 @@
|
||||||
#include <QPointer>
|
#include <QPointer>
|
||||||
#include <QReadLocker>
|
#include <QReadLocker>
|
||||||
|
|
||||||
#include <KIconLoader>
|
|
||||||
#include <KLocalizedString>
|
#include <KLocalizedString>
|
||||||
#include <KMessageBox>
|
#include <KMessageBox>
|
||||||
|
|
||||||
|
@ -104,9 +94,6 @@ void PartitionManagerWidget::init(OperationStack* ostack)
|
||||||
{
|
{
|
||||||
m_OperationStack = ostack;
|
m_OperationStack = ostack;
|
||||||
|
|
||||||
// TODO: shouldn't this also go to the main window class?
|
|
||||||
FileSystemFactory::init();
|
|
||||||
|
|
||||||
loadConfig();
|
loadConfig();
|
||||||
setupConnections();
|
setupConnections();
|
||||||
}
|
}
|
||||||
|
@ -166,7 +153,7 @@ void PartitionManagerWidget::setSelectedPartition(const Partition* p)
|
||||||
{
|
{
|
||||||
if (p == nullptr) {
|
if (p == nullptr) {
|
||||||
treePartitions().setCurrentItem(nullptr);
|
treePartitions().setCurrentItem(nullptr);
|
||||||
emit selectedPartitionChanged(nullptr);
|
Q_EMIT selectedPartitionChanged(nullptr);
|
||||||
updatePartitions();
|
updatePartitions();
|
||||||
} else
|
} else
|
||||||
partTableWidget().setActivePartition(p);
|
partTableWidget().setActivePartition(p);
|
||||||
|
@ -217,7 +204,7 @@ static QTreeWidgetItem* createTreeWidgetItem(const Partition& p)
|
||||||
|
|
||||||
item->setText(i, p.mountPoint());
|
item->setText(i, p.mountPoint());
|
||||||
if (p.isMounted())
|
if (p.isMounted())
|
||||||
item->setIcon(i, QIcon::fromTheme(QStringLiteral("object-locked")).pixmap(IconSize(KIconLoader::Panel)));
|
item->setIcon(i, QIcon::fromTheme(QStringLiteral("object-locked")));
|
||||||
i++;
|
i++;
|
||||||
|
|
||||||
item->setText(i++, p.fileSystem().label());
|
item->setText(i++, p.fileSystem().label());
|
||||||
|
@ -254,11 +241,11 @@ void PartitionManagerWidget::updatePartitions()
|
||||||
|
|
||||||
QFont font;
|
QFont font;
|
||||||
font.setBold(true);
|
font.setBold(true);
|
||||||
font.setWeight(75);
|
font.setWeight(QFont::Bold);
|
||||||
deviceItem->setFont(0, font);
|
deviceItem->setFont(0, font);
|
||||||
|
|
||||||
deviceItem->setText(0, selectedDevice()->prettyName());
|
deviceItem->setText(0, selectedDevice()->prettyName());
|
||||||
deviceItem->setIcon(0, QIcon::fromTheme(selectedDevice()->iconName()).pixmap(IconSize(KIconLoader::Desktop)));
|
deviceItem->setIcon(0, QIcon::fromTheme(selectedDevice()->iconName()));
|
||||||
|
|
||||||
deviceItem->setSizeHint(0, QSize(0, 32));
|
deviceItem->setSizeHint(0, QSize(0, 32));
|
||||||
|
|
||||||
|
@ -279,7 +266,7 @@ void PartitionManagerWidget::updatePartitions()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
treePartitions().setFirstItemColumnSpanned(deviceItem, true);
|
deviceItem->setFirstColumnSpanned(true);
|
||||||
deviceItem->setExpanded(true);
|
deviceItem->setExpanded(true);
|
||||||
deviceItem->setFlags(Qt::ItemIsEnabled);
|
deviceItem->setFlags(Qt::ItemIsEnabled);
|
||||||
|
|
||||||
|
@ -295,14 +282,33 @@ void PartitionManagerWidget::on_m_TreePartitions_currentItemChanged(QTreeWidgetI
|
||||||
partTableWidget().setActiveWidget(nullptr);
|
partTableWidget().setActiveWidget(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool PartitionManagerWidget::setCurrentPartitionByName(const QString& name)
|
||||||
|
{
|
||||||
|
auto rootNode = treePartitions().invisibleRootItem();
|
||||||
|
for (int i = 0; i < rootNode->childCount(); i++) {
|
||||||
|
auto driveNode = rootNode->child(i);
|
||||||
|
for (int e = 0; e < driveNode->childCount(); e++) {
|
||||||
|
auto partitionNode = driveNode->child(e);
|
||||||
|
const QString text = partitionNode->data(0, Qt::DisplayRole).toString();
|
||||||
|
if (text.endsWith(name)) {
|
||||||
|
partitionNode->setSelected(true);
|
||||||
|
treePartitions().setCurrentItem(partitionNode);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
void PartitionManagerWidget::on_m_TreePartitions_itemDoubleClicked(QTreeWidgetItem* item, int)
|
void PartitionManagerWidget::on_m_TreePartitions_itemDoubleClicked(QTreeWidgetItem* item, int)
|
||||||
{
|
{
|
||||||
if (item == treePartitions().topLevelItem(0)) {
|
if (item == treePartitions().topLevelItem(0)) {
|
||||||
if (selectedDevice() != nullptr)
|
if (selectedDevice() != nullptr)
|
||||||
emit deviceDoubleClicked(selectedDevice());
|
Q_EMIT deviceDoubleClicked(selectedDevice());
|
||||||
} else {
|
} else {
|
||||||
if (selectedPartition() != nullptr)
|
if (selectedPartition() != nullptr)
|
||||||
emit partitionDoubleClicked(selectedPartition());
|
Q_EMIT partitionDoubleClicked(selectedPartition());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -315,7 +321,7 @@ void PartitionManagerWidget::on_m_PartTableWidget_itemSelectionChanged(PartWidge
|
||||||
{
|
{
|
||||||
if (item == nullptr) {
|
if (item == nullptr) {
|
||||||
treePartitions().setCurrentItem(nullptr);
|
treePartitions().setCurrentItem(nullptr);
|
||||||
emit selectedPartitionChanged(nullptr);
|
Q_EMIT selectedPartitionChanged(nullptr);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -336,23 +342,23 @@ void PartitionManagerWidget::on_m_PartTableWidget_itemSelectionChanged(PartWidge
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
emit selectedPartitionChanged(p);
|
Q_EMIT selectedPartitionChanged(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PartitionManagerWidget::on_m_PartTableWidget_customContextMenuRequested(const QPoint& pos)
|
void PartitionManagerWidget::on_m_PartTableWidget_customContextMenuRequested(const QPoint& pos)
|
||||||
{
|
{
|
||||||
emit contextMenuRequested(partTableWidget().mapToGlobal(pos));
|
Q_EMIT contextMenuRequested(partTableWidget().mapToGlobal(pos));
|
||||||
}
|
}
|
||||||
|
|
||||||
void PartitionManagerWidget::on_m_PartTableWidget_itemDoubleClicked()
|
void PartitionManagerWidget::on_m_PartTableWidget_itemDoubleClicked()
|
||||||
{
|
{
|
||||||
if (selectedPartition())
|
if (selectedPartition())
|
||||||
emit partitionDoubleClicked(selectedPartition());
|
Q_EMIT partitionDoubleClicked(selectedPartition());
|
||||||
}
|
}
|
||||||
|
|
||||||
void PartitionManagerWidget::on_m_TreePartitions_customContextMenuRequested(const QPoint& pos)
|
void PartitionManagerWidget::on_m_TreePartitions_customContextMenuRequested(const QPoint& pos)
|
||||||
{
|
{
|
||||||
emit contextMenuRequested(treePartitions().viewport()->mapToGlobal(pos));
|
Q_EMIT contextMenuRequested(treePartitions().viewport()->mapToGlobal(pos));
|
||||||
}
|
}
|
||||||
|
|
||||||
void PartitionManagerWidget::onPropertiesPartition()
|
void PartitionManagerWidget::onPropertiesPartition()
|
||||||
|
@ -517,10 +523,14 @@ void PartitionManagerWidget::onNewPartition()
|
||||||
Partition* newPartition = NewOperation::createNew(*selectedPartition(), static_cast<FileSystem::Type>(Config::defaultFileSystem()));
|
Partition* newPartition = NewOperation::createNew(*selectedPartition(), static_cast<FileSystem::Type>(Config::defaultFileSystem()));
|
||||||
|
|
||||||
QPointer<NewDialog> dlg = new NewDialog(this, *selectedDevice(), *newPartition, selectedDevice()->partitionTable()->childRoles(*selectedPartition()));
|
QPointer<NewDialog> dlg = new NewDialog(this, *selectedDevice(), *newPartition, selectedDevice()->partitionTable()->childRoles(*selectedPartition()));
|
||||||
if (dlg->exec() == QDialog::Accepted)
|
if (dlg->exec() == QDialog::Accepted) {
|
||||||
|
if (dlg->useUnsecuredPartition()) {
|
||||||
|
newPartition->fileSystem().setPosixPermissions(QStringLiteral("777"));
|
||||||
|
}
|
||||||
operationStack().push(new NewOperation(*selectedDevice(), newPartition));
|
operationStack().push(new NewOperation(*selectedDevice(), newPartition));
|
||||||
else
|
} else {
|
||||||
delete newPartition;
|
delete newPartition;
|
||||||
|
}
|
||||||
|
|
||||||
delete dlg;
|
delete dlg;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,20 +1,11 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2008-2010 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2009-2011 Volker Lanz <vl@fidra.de>
|
||||||
* Copyright (C) 2015 by Teo Mrnjavac <teo@kde.org> *
|
SPDX-FileCopyrightText: 2014-2017 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* *
|
SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac <teo@kde.org>
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-FileCopyrightText: 2019 Yuri Chornoivan <yurchor@ukr.net>
|
||||||
* modify it under the terms of the GNU General Public License as *
|
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* the License, or (at your option) any later version. *
|
*/
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#if !defined(PARTITIONMANAGERWIDGET_H)
|
#if !defined(PARTITIONMANAGERWIDGET_H)
|
||||||
|
|
||||||
|
@ -45,7 +36,7 @@ class PartitionManagerWidget : public QWidget, Ui::PartitionManagerWidgetBase
|
||||||
Q_DISABLE_COPY(PartitionManagerWidget)
|
Q_DISABLE_COPY(PartitionManagerWidget)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
PartitionManagerWidget(QWidget* parent = nullptr);
|
explicit PartitionManagerWidget(QWidget* parent = nullptr);
|
||||||
virtual ~PartitionManagerWidget();
|
virtual ~PartitionManagerWidget();
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
|
@ -103,6 +94,9 @@ public:
|
||||||
|
|
||||||
void updatePartitions();
|
void updatePartitions();
|
||||||
|
|
||||||
|
// here we expect the full "sda1" or "nvme1n1p1"
|
||||||
|
bool setCurrentPartitionByName(const QString& partitionName);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
OperationStack& operationStack() {
|
OperationStack& operationStack() {
|
||||||
return *m_OperationStack;
|
return *m_OperationStack;
|
||||||
|
@ -134,6 +128,7 @@ protected:
|
||||||
return *m_TreePartitions;
|
return *m_TreePartitions;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void onHeaderContextMenu(const QPoint& p);
|
void onHeaderContextMenu(const QPoint& p);
|
||||||
|
|
||||||
protected Q_SLOTS:
|
protected Q_SLOTS:
|
||||||
|
|
|
@ -1,5 +1,11 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
|
<author>
|
||||||
|
SPDX-FileCopyrightText: 2009-2010 Volker Lanz <vl@fidra.de>
|
||||||
|
SPDX-FileCopyrightText: 2010 Hugo Pereira Da Costa <hugo@oxygen-icons.org>
|
||||||
|
SPDX-FileCopyrightText: 2018 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
</author>
|
||||||
<class>PartitionManagerWidgetBase</class>
|
<class>PartitionManagerWidgetBase</class>
|
||||||
<widget class="QWidget" name="PartitionManagerWidgetBase">
|
<widget class="QWidget" name="PartitionManagerWidgetBase">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
|
|
|
@ -1,20 +1,11 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2008, 2009 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2008-2010 Volker Lanz <vl@fidra.de>
|
||||||
* Copyright (C) 2016 by Andrius Štikonas <andrius@stikonas.eu> *
|
SPDX-FileCopyrightText: 2014-2020 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* *
|
SPDX-FileCopyrightText: 2014 Yuri Chornoivan <yurchor@ukr.net>
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-FileCopyrightText: 2018 Abhijeet Sharma <sharma.abhijeet2096@gmail.com>
|
||||||
* modify it under the terms of the GNU General Public License as *
|
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* the License, or (at your option) any later version. *
|
*/
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#include "gui/partpropsdialog.h"
|
#include "gui/partpropsdialog.h"
|
||||||
#include "gui/partpropswidget.h"
|
#include "gui/partpropswidget.h"
|
||||||
|
@ -28,11 +19,14 @@
|
||||||
#include <util/helpers.h>
|
#include <util/helpers.h>
|
||||||
#include "util/guihelpers.h"
|
#include "util/guihelpers.h"
|
||||||
|
|
||||||
|
#include <utility>
|
||||||
|
|
||||||
#include <QComboBox>
|
#include <QComboBox>
|
||||||
#include <QFontDatabase>
|
#include <QFontDatabase>
|
||||||
#include <QtGlobal>
|
#include <QtGlobal>
|
||||||
#include <QLineEdit>
|
#include <QLineEdit>
|
||||||
#include <QLocale>
|
#include <QLocale>
|
||||||
|
#include <QPalette>
|
||||||
#include <QPushButton>
|
#include <QPushButton>
|
||||||
|
|
||||||
#include <KConfigGroup>
|
#include <KConfigGroup>
|
||||||
|
@ -209,9 +203,9 @@ void PartPropsDialog::updateHideAndShow()
|
||||||
dialogWidget().noSetLabel().setFont(QFontDatabase::systemFont(QFontDatabase::SmallestReadableFont));
|
dialogWidget().noSetLabel().setFont(QFontDatabase::systemFont(QFontDatabase::SmallestReadableFont));
|
||||||
|
|
||||||
QPalette palette = dialogWidget().noSetLabel().palette();
|
QPalette palette = dialogWidget().noSetLabel().palette();
|
||||||
QColor f = palette.color(QPalette::Foreground);
|
QColor f = palette.color(QPalette::WindowText);
|
||||||
f.setAlpha(128);
|
f.setAlpha(128);
|
||||||
palette.setColor(QPalette::Foreground, f);
|
palette.setColor(QPalette::WindowText, f);
|
||||||
dialogWidget().noSetLabel().setPalette(palette);
|
dialogWidget().noSetLabel().setPalette(palette);
|
||||||
} else {
|
} else {
|
||||||
dialogWidget().label().setReadOnly(isReadOnly() && !partition().fileSystem().supportSetLabelOnline());
|
dialogWidget().label().setReadOnly(isReadOnly() && !partition().fileSystem().supportSetLabelOnline());
|
||||||
|
@ -221,7 +215,7 @@ void PartPropsDialog::updateHideAndShow()
|
||||||
// when do we show the uuid?
|
// when do we show the uuid?
|
||||||
const bool showUuid =
|
const bool showUuid =
|
||||||
partition().state() != Partition::State::New && // not for new partitions
|
partition().state() != Partition::State::New && // not for new partitions
|
||||||
!(fs == nullptr || fs->supportGetUUID() == FileSystem::cmdSupportNone); // not if the FS doesn't support it
|
!(fs == nullptr || fs->supportGetUUID() == FileSystem::cmdSupportNone); // not if the FS doesn't support it
|
||||||
|
|
||||||
dialogWidget().showUuid(showUuid);
|
dialogWidget().showUuid(showUuid);
|
||||||
|
|
||||||
|
@ -229,19 +223,19 @@ void PartPropsDialog::updateHideAndShow()
|
||||||
|
|
||||||
// when do we show available and used capacity?
|
// when do we show available and used capacity?
|
||||||
const bool showAvailableAndUsed =
|
const bool showAvailableAndUsed =
|
||||||
partition().state() != Partition::State::New && // not for new partitions
|
partition().state() != Partition::State::New && // not for new partitions
|
||||||
!partition().roles().has(PartitionRole::Extended) && // neither for extended
|
!partition().roles().has(PartitionRole::Extended) && // neither for extended
|
||||||
!partition().roles().has(PartitionRole::Unallocated) && // or for unallocated
|
!partition().roles().has(PartitionRole::Unallocated) && // or for unallocated
|
||||||
newFileSystemType() != FileSystem::Type::Unformatted; // and not for unformatted file systems
|
newFileSystemType() != FileSystem::Type::Unformatted; // and not for unformatted file systems
|
||||||
|
|
||||||
dialogWidget().showAvailable(showAvailableAndUsed);
|
dialogWidget().showAvailable(showAvailableAndUsed);
|
||||||
dialogWidget().showUsed(showAvailableAndUsed);
|
dialogWidget().showUsed(showAvailableAndUsed);
|
||||||
|
|
||||||
// when do we show the file system combo box?
|
// when do we show the file system combo box?
|
||||||
const bool showFileSystem =
|
const bool showFileSystem =
|
||||||
!partition().roles().has(PartitionRole::Extended) && // not for extended, they have no file system
|
!partition().roles().has(PartitionRole::Extended) && // not for extended, they have no file system
|
||||||
!partition().roles().has(PartitionRole::Unallocated) && // and not for unallocated: no choice there
|
!partition().roles().has(PartitionRole::Unallocated) && // and not for unallocated: no choice there
|
||||||
// do now show file system comboBox for open luks volumes.
|
// do not show file system comboBox for open luks volumes.
|
||||||
!(partition().roles().has(PartitionRole::Luks) && partition().fileSystem().type() != FileSystem::Type::Luks);
|
!(partition().roles().has(PartitionRole::Luks) && partition().fileSystem().type() != FileSystem::Type::Luks);
|
||||||
dialogWidget().showFileSystem(showFileSystem);
|
dialogWidget().showFileSystem(showFileSystem);
|
||||||
|
|
||||||
|
@ -250,14 +244,14 @@ void PartPropsDialog::updateHideAndShow()
|
||||||
showFileSystem && // only if we also show the file system
|
showFileSystem && // only if we also show the file system
|
||||||
partition().fileSystem().supportCreate() != FileSystem::cmdSupportNone && // and support creating this file system
|
partition().fileSystem().supportCreate() != FileSystem::cmdSupportNone && // and support creating this file system
|
||||||
partition().fileSystem().type() != FileSystem::Type::Unknown && // and not for unknown file systems
|
partition().fileSystem().type() != FileSystem::Type::Unknown && // and not for unknown file systems
|
||||||
partition().state() != Partition::State::New && // or new partitions
|
partition().state() != Partition::State::New && // or new partitions
|
||||||
!partition().roles().has(PartitionRole::Luks); // or encrypted filesystems
|
!partition().roles().has(PartitionRole::Luks); // or encrypted filesystems
|
||||||
|
|
||||||
dialogWidget().showCheckRecreate(showCheckRecreate);
|
dialogWidget().showCheckRecreate(showCheckRecreate);
|
||||||
|
|
||||||
// when do we show the list of partition flags?
|
// when do we show the list of partition flags?
|
||||||
const bool showListFlags =
|
const bool showListFlags =
|
||||||
partition().state() != Partition::State::New && // not for new partitions
|
partition().state() != Partition::State::New && // not for new partitions
|
||||||
!partition().roles().has(PartitionRole::Unallocated); // and not for unallocated space
|
!partition().roles().has(PartitionRole::Unallocated); // and not for unallocated space
|
||||||
|
|
||||||
dialogWidget().showListFlags(showListFlags);
|
dialogWidget().showListFlags(showListFlags);
|
||||||
|
@ -299,6 +293,8 @@ void PartPropsDialog::setupFileSystemComboBox()
|
||||||
// If the partition isn't encrypted, skip the luks FS
|
// If the partition isn't encrypted, skip the luks FS
|
||||||
if (fs->type() == FileSystem::Type::Luks && partition().fileSystem().type() != FileSystem::Type::Luks)
|
if (fs->type() == FileSystem::Type::Luks && partition().fileSystem().type() != FileSystem::Type::Luks)
|
||||||
continue;
|
continue;
|
||||||
|
if (fs->type() == FileSystem::Type::Luks2 && partition().fileSystem().type() != FileSystem::Type::Luks2)
|
||||||
|
continue;
|
||||||
if (partition().fileSystem().type() == fs->type() || (fs->supportCreate() != FileSystem::cmdSupportNone &&
|
if (partition().fileSystem().type() == fs->type() || (fs->supportCreate() != FileSystem::cmdSupportNone &&
|
||||||
partition().capacity() >= fs->minCapacity() && partition().capacity() <= fs->maxCapacity())) {
|
partition().capacity() >= fs->minCapacity() && partition().capacity() <= fs->maxCapacity())) {
|
||||||
QString name = fs->name();
|
QString name = fs->name();
|
||||||
|
@ -326,7 +322,7 @@ void PartPropsDialog::setupFileSystemComboBox()
|
||||||
|
|
||||||
std::sort(fsNames.begin(), fsNames.end(), caseInsensitiveLessThan);
|
std::sort(fsNames.begin(), fsNames.end(), caseInsensitiveLessThan);
|
||||||
|
|
||||||
for (const auto &fsName : qAsConst(fsNames))
|
for (const auto &fsName : std::as_const(fsNames))
|
||||||
dialogWidget().fileSystem().addItem(createFileSystemColor(FileSystem::typeForName(fsName), 8), fsName);
|
dialogWidget().fileSystem().addItem(createFileSystemColor(FileSystem::typeForName(fsName), 8), fsName);
|
||||||
|
|
||||||
dialogWidget().fileSystem().setCurrentIndex(dialogWidget().fileSystem().findText(selected));
|
dialogWidget().fileSystem().setCurrentIndex(dialogWidget().fileSystem().findText(selected));
|
||||||
|
|
|
@ -1,20 +1,9 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2008 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2008-2010 Volker Lanz <vl@fidra.de>
|
||||||
* Copyright (C) 2016 by Andrius Štikonas <andrius@stikonas.eu> *
|
SPDX-FileCopyrightText: 2014-2017 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* modify it under the terms of the GNU General Public License as *
|
*/
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
|
||||||
* the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#if !defined(PARTPROPSDIALOG_H)
|
#if !defined(PARTPROPSDIALOG_H)
|
||||||
|
|
||||||
|
|
|
@ -1,19 +1,11 @@
|
||||||
/*************************************************************************
|
/*
|
||||||
* Copyright (C) 2008, 2009 by Volker Lanz <vl@fidra.de> *
|
SPDX-FileCopyrightText: 2008-2010 Volker Lanz <vl@fidra.de>
|
||||||
* *
|
SPDX-FileCopyrightText: 2014-2017 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
* This program is free software; you can redistribute it and/or *
|
SPDX-FileCopyrightText: 2018 Abhijeet Sharma <sharma.abhijeet2096@gmail.com>
|
||||||
* modify it under the terms of the GNU General Public License as *
|
SPDX-FileCopyrightText: 2019 Yuri Chornoivan <yurchor@ukr.net>
|
||||||
* published by the Free Software Foundation; either version 3 of *
|
|
||||||
* the License, or (at your option) any later version. *
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
* *
|
*/
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
#if !defined(PARTPROPSWIDGET_H)
|
#if !defined(PARTPROPSWIDGET_H)
|
||||||
|
|
||||||
|
@ -30,7 +22,7 @@
|
||||||
class PartPropsWidget : public QWidget, public Ui::PartPropsWidgetBase
|
class PartPropsWidget : public QWidget, public Ui::PartPropsWidgetBase
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
PartPropsWidget(QWidget* parent) : QWidget(parent) {
|
explicit PartPropsWidget(QWidget* parent) : QWidget(parent) {
|
||||||
setupUi(this);
|
setupUi(this);
|
||||||
|
|
||||||
m_PartWidget->setFileSystemColorCode(GuiHelpers::fileSystemColorCodesFromSettings());
|
m_PartWidget->setFileSystemColorCode(GuiHelpers::fileSystemColorCodesFromSettings());
|
||||||
|
|
|
@ -1,5 +1,11 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
|
<author>
|
||||||
|
SPDX-FileCopyrightText: 2008-2010 Volker Lanz <vl@fidra.de>
|
||||||
|
SPDX-FileCopyrightText: 2013-2020 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
|
SPDX-FileCopyrightText: 2018 Abhijeet Sharma <sharma.abhijeet2096@gmail.com>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
</author>
|
||||||
<class>PartPropsWidgetBase</class>
|
<class>PartPropsWidgetBase</class>
|
||||||
<widget class="QWidget" name="PartPropsWidgetBase">
|
<widget class="QWidget" name="PartPropsWidgetBase">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
|
@ -7,7 +13,7 @@
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>506</width>
|
<width>506</width>
|
||||||
<height>600</height>
|
<height>669</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
|
@ -375,6 +381,9 @@
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string/>
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="textInteractionFlags">
|
||||||
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="11" column="1">
|
<item row="11" column="1">
|
||||||
|
@ -382,6 +391,9 @@
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string/>
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="textInteractionFlags">
|
||||||
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue