Change the way the button is created / fix crash
This commit is contained in:
parent
2bcd994bf1
commit
1edb947525
|
@ -55,14 +55,6 @@ NewDialog::NewDialog(QWidget* parent, Device& device, Partition& unallocatedPart
|
|||
|
||||
KConfigGroup kcg(KSharedConfig::openConfig(), "newDialog");
|
||||
restoreGeometry(kcg.readEntry<QByteArray>("Geometry", QByteArray()));
|
||||
|
||||
// Hack on top of hack. The dialog is created via two inheritances.
|
||||
auto *allowEveryone = new QCheckBox(i18n("Allow everyone to use this partition"));
|
||||
allowEveryone->setToolTip(i18n("If you are creating a partition on a usb stick, leave this on"));
|
||||
|
||||
QBoxLayout *l = qobject_cast<QBoxLayout*>(layout());
|
||||
int lCount = l->count();
|
||||
l->insertWidget(lCount-1, allowEveryone);
|
||||
}
|
||||
|
||||
NewDialog::~NewDialog()
|
||||
|
@ -122,6 +114,20 @@ void NewDialog::setupDialog()
|
|||
// run there is a valid partition set in the part resizer widget and they will need that.
|
||||
onRoleChanged(false);
|
||||
onFilesystemChanged(dialogWidget().comboFileSystem().currentIndex());
|
||||
|
||||
connect(&dialogWidget().comboFileSystem(), QOverload<int>::of(&QComboBox::currentIndexChanged), this, [this]{
|
||||
const QString currText = dialogWidget().comboFileSystem().currentText();
|
||||
const bool enablePosixPermission = QList<QString>({
|
||||
QStringLiteral("ext2"),
|
||||
QStringLiteral("ext3"),
|
||||
QStringLiteral("ext4")}
|
||||
).contains(currText);
|
||||
if (enablePosixPermission) {
|
||||
dialogWidget().showPosixPermissions();
|
||||
} else {
|
||||
dialogWidget().hidePosixPermissions();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
void NewDialog::setupConnections()
|
||||
|
@ -296,5 +302,5 @@ void NewDialog::updateOkButtonStatus()
|
|||
|
||||
bool NewDialog::useUnsecuredPartition() const
|
||||
{
|
||||
return m_unsecuredPartition->checkState() == Qt::CheckState::Checked;
|
||||
return !dialogWidget().isPermissionOnlyRoot();
|
||||
}
|
||||
|
|
|
@ -506,7 +506,7 @@ void PartitionManagerWidget::onNewPartition()
|
|||
QPointer<NewDialog> dlg = new NewDialog(this, *selectedDevice(), *newPartition, selectedDevice()->partitionTable()->childRoles(*selectedPartition()));
|
||||
if (dlg->exec() == QDialog::Accepted) {
|
||||
if (dlg->useUnsecuredPartition()) {
|
||||
newPartition->setPermissions(QStringLiteral("777"));
|
||||
newPartition->fileSystem().setPosixPermissions(QStringLiteral("777"));
|
||||
}
|
||||
operationStack().push(new NewOperation(*selectedDevice(), newPartition));
|
||||
} else {
|
||||
|
|
|
@ -22,6 +22,7 @@ class SizeDialogWidget : public QWidget, public Ui::SizeDialogWidgetBase
|
|||
public:
|
||||
SizeDialogWidget(QWidget* parent) : QWidget(parent), Ui::SizeDialogWidgetBase() {
|
||||
setupUi(this);
|
||||
hidePosixPermissions();
|
||||
}
|
||||
|
||||
public:
|
||||
|
@ -141,6 +142,23 @@ public:
|
|||
delete m_LabelTextNoSetLabel;
|
||||
m_LabelTextNoSetLabel = nullptr;
|
||||
}
|
||||
|
||||
void hidePosixPermissions() {
|
||||
m_permissionEveryone->hide();
|
||||
m_permissionOnlyRoot->hide();
|
||||
m_labelPermission->hide();
|
||||
}
|
||||
|
||||
void showPosixPermissions() {
|
||||
m_permissionEveryone->show();
|
||||
m_permissionOnlyRoot->show();
|
||||
m_labelPermission->show();
|
||||
}
|
||||
|
||||
bool isPermissionOnlyRoot() const {
|
||||
return m_permissionOnlyRoot->isVisible() && m_permissionOnlyRoot->isChecked();
|
||||
}
|
||||
|
||||
void hideBeforeAndAfter() {
|
||||
labelFreeBefore().hide();
|
||||
spinFreeBefore().hide();
|
||||
|
|
|
@ -18,22 +18,19 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="11" column="0">
|
||||
<widget class="QLabel" name="m_LabelFreeBefore">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
|
||||
<horstretch>3</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
<item row="0" column="0" colspan="2">
|
||||
<widget class="PartResizerWidget" name="m_PartResizerWidget" native="true">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>400</width>
|
||||
<height>60</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string comment="@label:listbox">F&ree space before:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>m_SpinFreeBefore</cstring>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>60</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -53,18 +50,8 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="12" column="1">
|
||||
<widget class="FormattedSpinBox" name="m_SpinCapacity">
|
||||
<property name="minimum">
|
||||
<double>0.000000000000000</double>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<double>999999999.000000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="m_LabelFileSystem">
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="m_LabelRole">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
|
@ -72,46 +59,13 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string comment="@label:listbox">File system:</string>
|
||||
<string comment="@label:listbox">Partition &type:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>m_ComboFileSystem</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QCheckBox" name="m_CheckBoxEncrypt">
|
||||
<property name="toolTip">
|
||||
<string>Set up encryption for this filesystem with LUKS. You will be asked to provide a passphrase.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Encrypt with LUKS</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="0">
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string comment="@label">Maximum size:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="1">
|
||||
<widget class="QLabel" name="m_LabelMaxSize">
|
||||
<property name="textInteractionFlags">
|
||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||
<cstring>m_RadioPrimary</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -140,7 +94,76 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="8" column="1">
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="m_LabelFileSystem">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string comment="@label:listbox">File system:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>m_ComboFileSystem</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
<widget class="QComboBox" name="m_ComboFileSystem"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QCheckBox" name="m_CheckBoxEncrypt">
|
||||
<property name="toolTip">
|
||||
<string>Set up encryption for this filesystem with LUKS. You will be asked to provide a passphrase.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Encrypt with LUKS</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0" colspan="2">
|
||||
<widget class="KNewPasswordWidget" name="m_EditPassphrase"/>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<widget class="QLabel" name="m_LabelTextLVName">
|
||||
<property name="text">
|
||||
<string>Logical Volume Name:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="1">
|
||||
<widget class="QLineEdit" name="m_EditLVName">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="0">
|
||||
<widget class="QLabel" name="m_LabelTextLabel">
|
||||
<property name="text">
|
||||
<string comment="@label">Label:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>m_EditLabel</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="1">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="m_EditLabel"/>
|
||||
|
@ -157,62 +180,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="0" column="0" colspan="2">
|
||||
<widget class="PartResizerWidget" name="m_PartResizerWidget" native="true">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>400</width>
|
||||
<height>60</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>60</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
<widget class="QComboBox" name="m_ComboFileSystem"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="m_LabelRole">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string comment="@label:listbox">Partition &type:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>m_RadioPrimary</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="0">
|
||||
<widget class="QLabel" name="m_LabelTextLabel">
|
||||
<property name="text">
|
||||
<string comment="@label">Label:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>m_EditLabel</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="0">
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
|
||||
|
@ -228,7 +196,56 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="11" column="1">
|
||||
<item row="8" column="1">
|
||||
<widget class="QLabel" name="m_LabelMinSize">
|
||||
<property name="textInteractionFlags">
|
||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="0">
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string comment="@label">Maximum size:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="1">
|
||||
<widget class="QLabel" name="m_LabelMaxSize">
|
||||
<property name="textInteractionFlags">
|
||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="0">
|
||||
<widget class="QLabel" name="m_LabelFreeBefore">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
|
||||
<horstretch>3</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string comment="@label:listbox">F&ree space before:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>m_SpinFreeBefore</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="1">
|
||||
<widget class="FormattedSpinBox" name="m_SpinFreeBefore">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
|
@ -244,7 +261,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="12" column="0">
|
||||
<item row="11" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
|
||||
|
@ -263,7 +280,17 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="13" column="0">
|
||||
<item row="11" column="1">
|
||||
<widget class="FormattedSpinBox" name="m_SpinCapacity">
|
||||
<property name="minimum">
|
||||
<double>0.000000000000000</double>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<double>999999999.000000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="12" column="0">
|
||||
<widget class="QLabel" name="m_LabelFreeAfter">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
|
||||
|
@ -282,7 +309,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="13" column="1">
|
||||
<item row="12" column="1">
|
||||
<widget class="FormattedSpinBox" name="m_SpinFreeAfter">
|
||||
<property name="minimum">
|
||||
<double>0.000000000000000</double>
|
||||
|
@ -292,6 +319,40 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="13" column="0">
|
||||
<widget class="QLabel" name="m_labelPermission">
|
||||
<property name="text">
|
||||
<string>Permissions</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="13" column="1">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<item>
|
||||
<widget class="QRadioButton" name="m_permissionEveryone">
|
||||
<property name="toolTip">
|
||||
<string>Allow everyone to write and read on this device</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Everyone</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="m_permissionOnlyRoot">
|
||||
<property name="toolTip">
|
||||
<string>Allow only root to write and read on this device, you will need to setup per-folder permissions</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Only Root</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="14" column="0" colspan="2">
|
||||
<spacer name="verticalSpacer_2">
|
||||
<property name="orientation">
|
||||
|
@ -308,33 +369,6 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="5" column="0" colspan="2">
|
||||
<widget class="KNewPasswordWidget" name="m_EditPassphrase"/>
|
||||
</item>
|
||||
<item row="9" column="1">
|
||||
<widget class="QLabel" name="m_LabelMinSize">
|
||||
<property name="textInteractionFlags">
|
||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<widget class="QLabel" name="m_LabelTextLVName">
|
||||
<property name="text">
|
||||
<string>Logical Volume Name:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="1">
|
||||
<widget class="QLineEdit" name="m_EditLVName">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
|
|
Loading…
Reference in New Issue