From ff59e242123ae6395c731633d59790e2cdb550ad Mon Sep 17 00:00:00 2001 From: Victor Tran Date: Tue, 15 Aug 2023 22:49:02 +1000 Subject: [PATCH] Implement VG Creation --- application/diskPanes/lvmdiskpane.cpp | 2 + application/lvm/lvmpage.cpp | 4 +- application/translations/ar_SA.ts | 4 +- application/translations/da.ts | 4 +- application/translations/en_US.ts | 4 +- application/translations/he_IL.ts | 4 +- application/translations/ja.ts | 4 +- application/translations/pt_BR.ts | 4 +- application/translations/tr.ts | 4 +- application/translations/vi.ts | 4 +- libthefrisbee/CMakeLists.txt | 1 + libthefrisbee/diskoperationmanager.cpp | 21 +- libthefrisbee/diskoperationmanager.h | 6 +- libthefrisbee/driveobjectmanager.cpp | 16 ++ libthefrisbee/driveobjectmanager.h | 1 + libthefrisbee/operations/attachpvpopover.cpp | 60 ++++++ libthefrisbee/operations/attachpvpopover.h | 36 ++++ libthefrisbee/operations/attachpvpopover.ui | 193 +++++++++++++++++++ libthefrisbee/translations/cs.ts | 94 ++++++--- libthefrisbee/translations/cs_CZ.ts | 94 ++++++--- libthefrisbee/translations/da.ts | 94 ++++++--- libthefrisbee/translations/de.ts | 94 ++++++--- libthefrisbee/translations/en_US.ts | 94 ++++++--- libthefrisbee/translations/he_IL.ts | 94 ++++++--- libthefrisbee/translations/ru.ts | 94 ++++++--- libthefrisbee/translations/vi_VN.ts | 94 ++++++--- 26 files changed, 901 insertions(+), 223 deletions(-) create mode 100644 libthefrisbee/operations/attachpvpopover.cpp create mode 100644 libthefrisbee/operations/attachpvpopover.h create mode 100644 libthefrisbee/operations/attachpvpopover.ui diff --git a/application/diskPanes/lvmdiskpane.cpp b/application/diskPanes/lvmdiskpane.cpp index bc1a9d3..a1bb1be 100644 --- a/application/diskPanes/lvmdiskpane.cpp +++ b/application/diskPanes/lvmdiskpane.cpp @@ -6,6 +6,7 @@ #include #include #include +#include #include struct LvmDiskPanePrivate { @@ -65,4 +66,5 @@ int LvmDiskPane::order() const { } void LvmDiskPane::on_attachVgButton_clicked() { + DiskOperationManager::showDiskOperationUi(this->window(), DiskOperationManager::AttachPv, d->disk); } diff --git a/application/lvm/lvmpage.cpp b/application/lvm/lvmpage.cpp index c739da6..7df39ef 100644 --- a/application/lvm/lvmpage.cpp +++ b/application/lvm/lvmpage.cpp @@ -17,7 +17,7 @@ LvmPage::LvmPage(QWidget* parent) : d = new LvmPagePrivate(); d->vgModel = new VolumeGroupModel(this); - d->vgModel->setShowAddButton(true); + d->vgModel->setShowAddButton(false); ui->listView->setModel(d->vgModel); ui->stackedWidget->setCurrentAnimation(tStackedWidget::Fade); @@ -44,7 +44,5 @@ void LvmPage::on_listView_clicked(const QModelIndex& index) { }); ui->stackedWidget_2->addWidget(vgPage); ui->stackedWidget_2->setCurrentWidget(vgPage); - } else { - // Create a new VG } } diff --git a/application/translations/ar_SA.ts b/application/translations/ar_SA.ts index 9f55713..ffead11 100644 --- a/application/translations/ar_SA.ts +++ b/application/translations/ar_SA.ts @@ -143,12 +143,12 @@ - + This block is part of the %1 volume group. - + This block is not part of a volume group. diff --git a/application/translations/da.ts b/application/translations/da.ts index 51fb16e..eb3db8d 100644 --- a/application/translations/da.ts +++ b/application/translations/da.ts @@ -143,12 +143,12 @@ - + This block is part of the %1 volume group. - + This block is not part of a volume group. diff --git a/application/translations/en_US.ts b/application/translations/en_US.ts index 4fe23b2..357999c 100644 --- a/application/translations/en_US.ts +++ b/application/translations/en_US.ts @@ -143,12 +143,12 @@ - + This block is part of the %1 volume group. - + This block is not part of a volume group. diff --git a/application/translations/he_IL.ts b/application/translations/he_IL.ts index 9a977fa..06ddee9 100644 --- a/application/translations/he_IL.ts +++ b/application/translations/he_IL.ts @@ -143,12 +143,12 @@ - + This block is part of the %1 volume group. - + This block is not part of a volume group. diff --git a/application/translations/ja.ts b/application/translations/ja.ts index 1a3a6fc..96a0535 100644 --- a/application/translations/ja.ts +++ b/application/translations/ja.ts @@ -143,12 +143,12 @@ - + This block is part of the %1 volume group. - + This block is not part of a volume group. diff --git a/application/translations/pt_BR.ts b/application/translations/pt_BR.ts index 4d1bdc7..c8551f0 100644 --- a/application/translations/pt_BR.ts +++ b/application/translations/pt_BR.ts @@ -143,12 +143,12 @@ - + This block is part of the %1 volume group. - + This block is not part of a volume group. diff --git a/application/translations/tr.ts b/application/translations/tr.ts index 7fcd9bf..d44abcc 100644 --- a/application/translations/tr.ts +++ b/application/translations/tr.ts @@ -143,12 +143,12 @@ - + This block is part of the %1 volume group. - + This block is not part of a volume group. diff --git a/application/translations/vi.ts b/application/translations/vi.ts index 03d0c37..0d707cd 100644 --- a/application/translations/vi.ts +++ b/application/translations/vi.ts @@ -143,12 +143,12 @@ - + This block is part of the %1 volume group. - + This block is not part of a volume group. diff --git a/libthefrisbee/CMakeLists.txt b/libthefrisbee/CMakeLists.txt index 8625d91..2740f07 100644 --- a/libthefrisbee/CMakeLists.txt +++ b/libthefrisbee/CMakeLists.txt @@ -53,6 +53,7 @@ set(SOURCES volumegroupmodel.h volumegroupmodel.cpp volumegrouplvmodel.h volumegrouplvmodel.cpp volumegrouppvmodel.h volumegrouppvmodel.cpp + operations/attachpvpopover.h operations/attachpvpopover.cpp operations/attachpvpopover.ui ) set(STRUCTURES_HEADERS diff --git a/libthefrisbee/diskoperationmanager.cpp b/libthefrisbee/diskoperationmanager.cpp index a7e0bb0..2c5a900 100644 --- a/libthefrisbee/diskoperationmanager.cpp +++ b/libthefrisbee/diskoperationmanager.cpp @@ -32,6 +32,7 @@ #include #include +#include #include #include #include @@ -48,14 +49,16 @@ QMap OperationManagerPrivate::oper {DiskOperationManager::Erase, "erase" }, {DiskOperationManager::Image, "image" }, {DiskOperationManager::Restore, "restore" }, - {DiskOperationManager::Partition, "partition"} + {DiskOperationManager::Partition, "partition"}, + {DiskOperationManager::AttachPv, "attachPv" } }; QMap OperationManagerPrivate::operationDescriptions = { {DiskOperationManager::Erase, DiskOperationManager::tr("Erase a block device") }, {DiskOperationManager::Image, DiskOperationManager::tr("Create an image of a block device") }, {DiskOperationManager::Restore, DiskOperationManager::tr("Restore an image back to a block device or disc")}, - {DiskOperationManager::Partition, DiskOperationManager::tr("Edit partitions on a filesystem") } + {DiskOperationManager::Partition, DiskOperationManager::tr("Edit partitions on a filesystem") }, + {DiskOperationManager::AttachPv, DiskOperationManager::tr("Attach a Physical Volume to a Volume Group") } }; DiskOperationManager::DiskOperation DiskOperationManager::operationForString(QString operationString) { @@ -87,6 +90,9 @@ void DiskOperationManager::showDiskOperationUi(QWidget* parent, DiskOperation op break; case DiskOperationManager::Partition: showPartitionOperationUi(parent, disk); + break; + case DiskOperationManager::AttachPv: + showAttachPvOperationUi(parent, disk); } } @@ -270,6 +276,17 @@ void DiskOperationManager::showPartitionOperationUi(QWidget* parent, DiskObject* popover->show(parent->window()); } +void DiskOperationManager::showAttachPvOperationUi(QWidget* parent, DiskObject* disk) { + auto* jp = new AttachPvPopover(disk); + tPopover* popover = new tPopover(jp); + popover->setPopoverWidth(-200); + popover->setPopoverSide(tPopover::Bottom); + connect(jp, &AttachPvPopover::done, popover, &tPopover::dismiss); + connect(popover, &tPopover::dismissed, popover, &tPopover::deleteLater); + connect(popover, &tPopover::dismissed, jp, &AttachPvPopover::deleteLater); + popover->show(parent->window()); +} + bool DiskOperationManager::ensureOpticalUtilitiesInstalled(QWidget* parent) { if (QStandardPaths::findExecutable("cdrecord").isEmpty()) { QMessageBox* box = new QMessageBox(); diff --git a/libthefrisbee/diskoperationmanager.h b/libthefrisbee/diskoperationmanager.h index 30ff9bf..66c507b 100644 --- a/libthefrisbee/diskoperationmanager.h +++ b/libthefrisbee/diskoperationmanager.h @@ -20,9 +20,9 @@ #ifndef DISKOPERATIONMANAGER_H #define DISKOPERATIONMANAGER_H -#include -#include #include "libthefrisbee_global.h" +#include +#include class LIBTHEFRISBEE_EXPORT DiskOperationManager : public QObject { Q_OBJECT @@ -34,6 +34,7 @@ class LIBTHEFRISBEE_EXPORT DiskOperationManager : public QObject { Restore, Image, Partition, + AttachPv, LastOperation = Partition }; @@ -51,6 +52,7 @@ class LIBTHEFRISBEE_EXPORT DiskOperationManager : public QObject { static void showRestoreOperationUi(QWidget* parent, DiskObject* disk); static void showImageOperationUi(QWidget* parent, DiskObject* disk); static void showPartitionOperationUi(QWidget* parent, DiskObject* disk); + static void showAttachPvOperationUi(QWidget* parent, DiskObject* disk); }; #endif // DISKOPERATIONMANAGER_H diff --git a/libthefrisbee/driveobjectmanager.cpp b/libthefrisbee/driveobjectmanager.cpp index 4b05133..96c151d 100644 --- a/libthefrisbee/driveobjectmanager.cpp +++ b/libthefrisbee/driveobjectmanager.cpp @@ -237,6 +237,22 @@ QCoro::Task DriveObjectManager::loopSetup(QDBusUnixFileDescript } } +QCoro::Task DriveObjectManager::volumeGroupCreate(QString name, QList blocks, QVariantMap options) { + QDBusMessage vgCreate = QDBusMessage::createMethodCall("org.freedesktop.UDisks2", "/org/freedesktop/UDisks2/Manager", "org.freedesktop.UDisks2.Manager.LVM2", "VolumeGroupCreate"); + vgCreate.setArguments({name, QVariant::fromValue(tRange(blocks).map([](DiskObject* obj) { + return obj->path(); + }) + .toList()), + options}); + auto call = QDBusConnection::systemBus().asyncCall(vgCreate); + auto reply = co_await call; + if (call.isError()) { + throw FrisbeeException(call.error().message()); + } else { + co_return reply.arguments().first().value(); + } +} + void DriveObjectManager::updateInterfaces() { d->rootDisks.clear(); d->filesystemDisks.clear(); diff --git a/libthefrisbee/driveobjectmanager.h b/libthefrisbee/driveobjectmanager.h index 66d34f5..91b6f52 100644 --- a/libthefrisbee/driveobjectmanager.h +++ b/libthefrisbee/driveobjectmanager.h @@ -59,6 +59,7 @@ class LIBTHEFRISBEE_EXPORT DriveObjectManager : public QObject { static QStringList supportedFilesystems(); static QCoro::Task loopSetup(QDBusUnixFileDescriptor fd, QVariantMap options); + static QCoro::Task volumeGroupCreate(QString name, QList blocks, QVariantMap options); public slots: void updateInterfaces(); diff --git a/libthefrisbee/operations/attachpvpopover.cpp b/libthefrisbee/operations/attachpvpopover.cpp new file mode 100644 index 0000000..d582837 --- /dev/null +++ b/libthefrisbee/operations/attachpvpopover.cpp @@ -0,0 +1,60 @@ +#include "attachpvpopover.h" +#include "ui_attachpvpopover.h" + +#include +#include +#include +#include +#include + +struct AttachPvPopoverPrivate { + DiskObject* disk; + VolumeGroupModel* vgModel; +}; + +AttachPvPopover::AttachPvPopover(DiskObject* disk, QWidget* parent) : + QWidget(parent), + ui(new Ui::AttachPvPopover) { + ui->setupUi(this); + d = new AttachPvPopoverPrivate(); + d->disk = disk; + + new tContentSizer(ui->optionsWidget); + new tContentSizer(ui->newVgOptionsWidget); + ui->stackedWidget->setCurrentAnimation(tStackedWidget::SlideHorizontal); + + d->vgModel = new VolumeGroupModel(this); + d->vgModel->setShowAddButton(true); + ui->vgList->setModel(d->vgModel); +} + +AttachPvPopover::~AttachPvPopover() { + delete d; + delete ui; +} + +void AttachPvPopover::on_titleLabel_backButtonClicked() { + emit done(); +} + +void AttachPvPopover::on_vgList_activated(const QModelIndex& index) { + auto vg = index.data(VolumeGroupModel::VolumeGroupRole).value(); + if (!vg) { + ui->stackedWidget->setCurrentWidget(ui->addVgPage); + } +} + +void AttachPvPopover::on_titleLabel_2_backButtonClicked() { + ui->stackedWidget->setCurrentWidget(ui->selectVgPage); +} + +void AttachPvPopover::on_attachToNewVgButton_clicked() { + auto vgName = ui->newVgName->text(); + if (vgName.isEmpty()) { + tErrorFlash::flashError(ui->newVgName); + return; + } + + DriveObjectManager::volumeGroupCreate(ui->newVgName->text(), {d->disk}, {}); + emit done(); +} diff --git a/libthefrisbee/operations/attachpvpopover.h b/libthefrisbee/operations/attachpvpopover.h new file mode 100644 index 0000000..931bcd3 --- /dev/null +++ b/libthefrisbee/operations/attachpvpopover.h @@ -0,0 +1,36 @@ +#ifndef ATTACHPVPOPOVER_H +#define ATTACHPVPOPOVER_H + +#include + +namespace Ui { + class AttachPvPopover; +} + +class DiskObject; +struct AttachPvPopoverPrivate; +class AttachPvPopover : public QWidget { + Q_OBJECT + + public: + explicit AttachPvPopover(DiskObject* disk, QWidget* parent = nullptr); + ~AttachPvPopover(); + + signals: + void done(); + + private slots: + void on_titleLabel_backButtonClicked(); + + void on_vgList_activated(const QModelIndex& index); + + void on_titleLabel_2_backButtonClicked(); + + void on_attachToNewVgButton_clicked(); + + private: + Ui::AttachPvPopover* ui; + AttachPvPopoverPrivate* d; +}; + +#endif // ATTACHPVPOPOVER_H diff --git a/libthefrisbee/operations/attachpvpopover.ui b/libthefrisbee/operations/attachpvpopover.ui new file mode 100644 index 0000000..b94d33d --- /dev/null +++ b/libthefrisbee/operations/attachpvpopover.ui @@ -0,0 +1,193 @@ + + + AttachPvPopover + + + + 0 + 0 + 824 + 492 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 0 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Attach Physical Volume + + + + + + + + + + Volume Group + + + + + + + Which Volume Group do you want to attach this Physical Volume to? + + + + + + + QFrame::NoFrame + + + + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Attach Physical Volume + + + + + + + + + + New Volume Group + + + + + + + Volume Group Name + + + + + + + Attach Physical Volume to New Volume Group + + + + .. + + + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + + tStackedWidget + QStackedWidget +
tstackedwidget.h
+ 1 + + switchingFrame(int) + +
+ + tTitleLabel + QLabel +
ttitlelabel.h
+ + backButtonClicked() + +
+ + tSubtitleLabel + QLabel +
tsubtitlelabel.h
+
+
+ + +
diff --git a/libthefrisbee/translations/cs.ts b/libthefrisbee/translations/cs.ts index 4eb86f0..03e9246 100644 --- a/libthefrisbee/translations/cs.ts +++ b/libthefrisbee/translations/cs.ts @@ -1,6 +1,45 @@ + + AttachPvPopover + + + Form + + + + + + Attach Physical Volume + + + + + Volume Group + + + + + Which Volume Group do you want to attach this Physical Volume to? + + + + + New Volume Group + + + + + Volume Group Name + + + + + Attach Physical Volume to New Volume Group + + + DiskObject @@ -17,123 +56,128 @@ DiskOperationManager - + Erase a block device - + Create an image of a block device - + Restore an image back to a block device or disc - + Edit partitions on a filesystem - - + + Attach a Physical Volume to a Volume Group + + + + + No Media - + There is no media in the drive to erase. - + Disc already blank - + The disc in the drive is already blank. Do you still want to erase it? - + Disc not rewritable - + The disc in the drive is not rewritable. - + Only rewritable discs can be erased. If you need to destroy the data on this disc, you should physically break it in half. - + System Disk - + This is a system disk. Erasing it may cause your device to stop working altogether. Do you still want to erase it? - + LVM - + This is a physical volume attached to an activated volume group. Erasing it may cause one or more logical volumes on the volume group to become unavailable permanently. Do you still want to erase it? - + There is no media in the drive to restore to. - + Disc not writable - + The disc in the drive is not writable. - + No Partition Table - + Erase the disk to create a partition table. - + Optical tools unavailable - + theFrisbee can't write to optical discs when installed as a Flatpak. - + Your system does not have the necessary tools installed to write to optical discs. - + You'll need to install either cdrtools or cdrkit using your system's package manager. diff --git a/libthefrisbee/translations/cs_CZ.ts b/libthefrisbee/translations/cs_CZ.ts index 4eb86f0..03e9246 100644 --- a/libthefrisbee/translations/cs_CZ.ts +++ b/libthefrisbee/translations/cs_CZ.ts @@ -1,6 +1,45 @@ + + AttachPvPopover + + + Form + + + + + + Attach Physical Volume + + + + + Volume Group + + + + + Which Volume Group do you want to attach this Physical Volume to? + + + + + New Volume Group + + + + + Volume Group Name + + + + + Attach Physical Volume to New Volume Group + + + DiskObject @@ -17,123 +56,128 @@ DiskOperationManager - + Erase a block device - + Create an image of a block device - + Restore an image back to a block device or disc - + Edit partitions on a filesystem - - + + Attach a Physical Volume to a Volume Group + + + + + No Media - + There is no media in the drive to erase. - + Disc already blank - + The disc in the drive is already blank. Do you still want to erase it? - + Disc not rewritable - + The disc in the drive is not rewritable. - + Only rewritable discs can be erased. If you need to destroy the data on this disc, you should physically break it in half. - + System Disk - + This is a system disk. Erasing it may cause your device to stop working altogether. Do you still want to erase it? - + LVM - + This is a physical volume attached to an activated volume group. Erasing it may cause one or more logical volumes on the volume group to become unavailable permanently. Do you still want to erase it? - + There is no media in the drive to restore to. - + Disc not writable - + The disc in the drive is not writable. - + No Partition Table - + Erase the disk to create a partition table. - + Optical tools unavailable - + theFrisbee can't write to optical discs when installed as a Flatpak. - + Your system does not have the necessary tools installed to write to optical discs. - + You'll need to install either cdrtools or cdrkit using your system's package manager. diff --git a/libthefrisbee/translations/da.ts b/libthefrisbee/translations/da.ts index 371f979..64f7cec 100644 --- a/libthefrisbee/translations/da.ts +++ b/libthefrisbee/translations/da.ts @@ -1,6 +1,45 @@ + + AttachPvPopover + + + Form + + + + + + Attach Physical Volume + + + + + Volume Group + + + + + Which Volume Group do you want to attach this Physical Volume to? + + + + + New Volume Group + + + + + Volume Group Name + + + + + Attach Physical Volume to New Volume Group + + + DiskObject @@ -17,123 +56,128 @@ DiskOperationManager - + Erase a block device Formater en blokenhed - + Create an image of a block device Lav et snapshot af en blokenhed - + Restore an image back to a block device or disc Gendan et snapshot til en blokenhed eller disk - + Edit partitions on a filesystem Rediger partitioner på et filsystem - - + + Attach a Physical Volume to a Volume Group + + + + + No Media Ingen disk - + There is no media in the drive to erase. Der er ikke nogen disk i drevet at formatere. - + Disc already blank Disk allerede blank - + The disc in the drive is already blank. Do you still want to erase it? Disken i drevet er allerede blank. Ønsker du stadig at formatere den? - + Disc not rewritable Disk ikke skrivbar - + The disc in the drive is not rewritable. Disken i drevet er ikke skrivbar. - + Only rewritable discs can be erased. If you need to destroy the data on this disc, you should physically break it in half. Kun skrivbare diske kan formateres. Hvis du er nødt til at ødelægge dataene på disken, så burde du fysisk rive den i to. - + System Disk Systemdisk - + This is a system disk. Erasing it may cause your device to stop working altogether. Do you still want to erase it? Dette er en systemdisk. Formatering af den kan forhindre din enhed i at fungere. Ønsker du stadig at formatere den? - + LVM - + This is a physical volume attached to an activated volume group. Erasing it may cause one or more logical volumes on the volume group to become unavailable permanently. Do you still want to erase it? - + There is no media in the drive to restore to. Der er ingen disk i drevet at gendanne til. - + Disc not writable Disk ikke skrivbar - + The disc in the drive is not writable. Disken i drevet er ikke skrivbar. - + No Partition Table Ingen partitionstabel - + Erase the disk to create a partition table. Formater disken for at lave en partitionstabel. - + Optical tools unavailable Optiske værktøjer utilgængelige - + theFrisbee can't write to optical discs when installed as a Flatpak. theFrisbee kan ikke skrive til optiske diske, da den er installeret med Flatpak. - + Your system does not have the necessary tools installed to write to optical discs. Dit system har ikke de nødvendige programmer installeret til at skrive til optiske diske. - + You'll need to install either cdrtools or cdrkit using your system's package manager. Du er nødt til at installere enten cdrtools eller cdrkit med dit system's package manager. diff --git a/libthefrisbee/translations/de.ts b/libthefrisbee/translations/de.ts index bcf6d46..d9d18a1 100644 --- a/libthefrisbee/translations/de.ts +++ b/libthefrisbee/translations/de.ts @@ -1,6 +1,45 @@ + + AttachPvPopover + + + Form + + + + + + Attach Physical Volume + + + + + Volume Group + + + + + Which Volume Group do you want to attach this Physical Volume to? + + + + + New Volume Group + + + + + Volume Group Name + + + + + Attach Physical Volume to New Volume Group + + + DiskObject @@ -17,123 +56,128 @@ DiskOperationManager - + Erase a block device Ein Loopgerät löschen - + Create an image of a block device Image eines Blöckgerätes erstellen - + Restore an image back to a block device or disc Image auf einem Blockgerät wiederherstellen - + Edit partitions on a filesystem Partitionen auf einem Dateisystem bearbeiten - - + + Attach a Physical Volume to a Volume Group + + + + + No Media Keine Medien - + There is no media in the drive to erase. Es gibt keine zu löschenden Medien auf dem Gerät. - + Disc already blank - + The disc in the drive is already blank. Do you still want to erase it? - + Disc not rewritable - + The disc in the drive is not rewritable. - + Only rewritable discs can be erased. If you need to destroy the data on this disc, you should physically break it in half. - + System Disk - + This is a system disk. Erasing it may cause your device to stop working altogether. Do you still want to erase it? - + LVM - + This is a physical volume attached to an activated volume group. Erasing it may cause one or more logical volumes on the volume group to become unavailable permanently. Do you still want to erase it? - + There is no media in the drive to restore to. - + Disc not writable - + The disc in the drive is not writable. - + No Partition Table - + Erase the disk to create a partition table. - + Optical tools unavailable - + theFrisbee can't write to optical discs when installed as a Flatpak. - + Your system does not have the necessary tools installed to write to optical discs. - + You'll need to install either cdrtools or cdrkit using your system's package manager. diff --git a/libthefrisbee/translations/en_US.ts b/libthefrisbee/translations/en_US.ts index 16b4d52..718d9b0 100644 --- a/libthefrisbee/translations/en_US.ts +++ b/libthefrisbee/translations/en_US.ts @@ -1,6 +1,45 @@ + + AttachPvPopover + + + Form + + + + + + Attach Physical Volume + + + + + Volume Group + + + + + Which Volume Group do you want to attach this Physical Volume to? + + + + + New Volume Group + + + + + Volume Group Name + + + + + Attach Physical Volume to New Volume Group + + + DiskObject @@ -17,123 +56,128 @@ DiskOperationManager - + Erase a block device - + Create an image of a block device - + Restore an image back to a block device or disc - + Edit partitions on a filesystem - - + + Attach a Physical Volume to a Volume Group + + + + + No Media - + There is no media in the drive to erase. - + Disc already blank - + The disc in the drive is already blank. Do you still want to erase it? - + Disc not rewritable - + The disc in the drive is not rewritable. - + Only rewritable discs can be erased. If you need to destroy the data on this disc, you should physically break it in half. - + System Disk - + This is a system disk. Erasing it may cause your device to stop working altogether. Do you still want to erase it? - + LVM - + This is a physical volume attached to an activated volume group. Erasing it may cause one or more logical volumes on the volume group to become unavailable permanently. Do you still want to erase it? - + There is no media in the drive to restore to. - + Disc not writable - + The disc in the drive is not writable. - + No Partition Table - + Erase the disk to create a partition table. - + Optical tools unavailable - + theFrisbee can't write to optical discs when installed as a Flatpak. - + Your system does not have the necessary tools installed to write to optical discs. - + You'll need to install either cdrtools or cdrkit using your system's package manager. diff --git a/libthefrisbee/translations/he_IL.ts b/libthefrisbee/translations/he_IL.ts index 9442383..bcdb181 100644 --- a/libthefrisbee/translations/he_IL.ts +++ b/libthefrisbee/translations/he_IL.ts @@ -1,6 +1,45 @@ + + AttachPvPopover + + + Form + + + + + + Attach Physical Volume + + + + + Volume Group + + + + + Which Volume Group do you want to attach this Physical Volume to? + + + + + New Volume Group + + + + + Volume Group Name + + + + + Attach Physical Volume to New Volume Group + + + DiskObject @@ -17,123 +56,128 @@ DiskOperationManager - + Erase a block device מחק התקן בלוק - + Create an image of a block device צור תמונה של התקן בלוק - + Restore an image back to a block device or disc שחזר תמונה חזרה להתקן בלוק או דיסק - + Edit partitions on a filesystem ערוך מחיצות במערכת קבצים - - + + Attach a Physical Volume to a Volume Group + + + + + No Media אין מדיה - + There is no media in the drive to erase. אין מדיה בכונן כדי למחוק - + Disc already blank דיסק כבר ריק - + The disc in the drive is already blank. Do you still want to erase it? הדיסק בכונן כבר ריק. עדיין למחוק אותו? - + Disc not rewritable דיסק לא ניתן לכתיבה מחדש - + The disc in the drive is not rewritable. הדיסק בכונן לא ניתן לכתיבה מחדש - + Only rewritable discs can be erased. If you need to destroy the data on this disc, you should physically break it in half. ניתן למחוק רק דיסקים שניתנים לכתיבה מחדש. אם עליכם להשמיד את המידע על הדיסק, שברו אותו לשניים. - + System Disk דיסק מערכת - + This is a system disk. Erasing it may cause your device to stop working altogether. Do you still want to erase it? זהו דיסק מערכת. מחיקת דיסק זה יכול לגרום למכשיר זה להפסיק לעבוד. עדיין למחוק אותו? - + LVM - + This is a physical volume attached to an activated volume group. Erasing it may cause one or more logical volumes on the volume group to become unavailable permanently. Do you still want to erase it? - + There is no media in the drive to restore to. אין מדיה בכונן כדי לשחזר - + Disc not writable דיסק לא ניתן לכתיבה - + The disc in the drive is not writable. הדיסק בכונן לא ניתן לכתיבה - + No Partition Table אין טבלת מחיצות - + Erase the disk to create a partition table. מחק דיסק כדי ליצור טבלת מחיצות - + Optical tools unavailable כלים אופטיים אינם זמינים - + theFrisbee can't write to optical discs when installed as a Flatpak. theFrisbee לא יכול לכתוב בדיסקים אופטיים כאשר הוא מותקן כ-Flatpak - + Your system does not have the necessary tools installed to write to optical discs. למערכת שלך אין את הכלים הדרושים כדי לכתוב בדיסקים אופטיים. - + You'll need to install either cdrtools or cdrkit using your system's package manager. עליך להתקין cdrtools או cdrkit עם מנהל החבילות של המערכת שלך. diff --git a/libthefrisbee/translations/ru.ts b/libthefrisbee/translations/ru.ts index 1b4d031..bc5e256 100644 --- a/libthefrisbee/translations/ru.ts +++ b/libthefrisbee/translations/ru.ts @@ -1,6 +1,45 @@ + + AttachPvPopover + + + Form + + + + + + Attach Physical Volume + + + + + Volume Group + + + + + Which Volume Group do you want to attach this Physical Volume to? + + + + + New Volume Group + + + + + Volume Group Name + + + + + Attach Physical Volume to New Volume Group + + + DiskObject @@ -17,123 +56,128 @@ DiskOperationManager - + Erase a block device - + Create an image of a block device - + Restore an image back to a block device or disc - + Edit partitions on a filesystem - - + + Attach a Physical Volume to a Volume Group + + + + + No Media - + There is no media in the drive to erase. - + Disc already blank - + The disc in the drive is already blank. Do you still want to erase it? - + Disc not rewritable - + The disc in the drive is not rewritable. - + Only rewritable discs can be erased. If you need to destroy the data on this disc, you should physically break it in half. - + System Disk - + This is a system disk. Erasing it may cause your device to stop working altogether. Do you still want to erase it? - + LVM - + This is a physical volume attached to an activated volume group. Erasing it may cause one or more logical volumes on the volume group to become unavailable permanently. Do you still want to erase it? - + There is no media in the drive to restore to. - + Disc not writable - + The disc in the drive is not writable. - + No Partition Table - + Erase the disk to create a partition table. - + Optical tools unavailable - + theFrisbee can't write to optical discs when installed as a Flatpak. - + Your system does not have the necessary tools installed to write to optical discs. - + You'll need to install either cdrtools or cdrkit using your system's package manager. diff --git a/libthefrisbee/translations/vi_VN.ts b/libthefrisbee/translations/vi_VN.ts index bb57e45..988b723 100644 --- a/libthefrisbee/translations/vi_VN.ts +++ b/libthefrisbee/translations/vi_VN.ts @@ -1,6 +1,45 @@ + + AttachPvPopover + + + Form + + + + + + Attach Physical Volume + + + + + Volume Group + + + + + Which Volume Group do you want to attach this Physical Volume to? + + + + + New Volume Group + + + + + Volume Group Name + + + + + Attach Physical Volume to New Volume Group + + + DiskObject @@ -17,123 +56,128 @@ DiskOperationManager - + Erase a block device Xóa thiết bị khối - + Create an image of a block device Tạo ảnh đĩa cho thiết bị khối - + Restore an image back to a block device or disc Khôi phục ảnh đĩa vào thiết bị khối - + Edit partitions on a filesystem Sửa phân vùng - - + + Attach a Physical Volume to a Volume Group + + + + + No Media Không có phương tiện - + There is no media in the drive to erase. Không có phương tiện trong ổ để xóa. - + Disc already blank Đĩa đã tróng - + The disc in the drive is already blank. Do you still want to erase it? Đĩa trong ổ đã tróng. Bạn vấn còn muốn xóa nó không? - + Disc not rewritable Đĩa không thể ghi lại - + The disc in the drive is not rewritable. Đĩa trong ổ không có thể ghi lại được. - + Only rewritable discs can be erased. If you need to destroy the data on this disc, you should physically break it in half. Chúng tôi chỉ xóa được đĩa có thể ghi lại. Nếu bạn cần hủy dữ liệu trên đĩa, bạn mong muốn bẻ đôi. - + System Disk Đĩa hệ thống - + This is a system disk. Erasing it may cause your device to stop working altogether. Do you still want to erase it? Đĩa này là một đĩa hệ thống. Nếu bạn xóa nó, thiết bị này có thể bị hỏng. Bạn vẫn còn muốn xóa nó không? - + LVM - + This is a physical volume attached to an activated volume group. Erasing it may cause one or more logical volumes on the volume group to become unavailable permanently. Do you still want to erase it? - + There is no media in the drive to restore to. Không có phương tiện trong ổ để khôi phục vào. - + Disc not writable Đĩa không thể ghi - + The disc in the drive is not writable. Đĩa trong ổ không có thể ghi vào được. - + No Partition Table Không có bảng phân vùng - + Erase the disk to create a partition table. Xóa đĩa này để tạo ra một bảng phân vùng. - + Optical tools unavailable Tiện ích đĩa quang không có sẵn - + theFrisbee can't write to optical discs when installed as a Flatpak. theFrisbee không thể ghi vào đĩa quang khi cài như Flatpak. - + Your system does not have the necessary tools installed to write to optical discs. Hệ thống của bạn không có tiện ích cần để ghi đĩa quang. - + You'll need to install either cdrtools or cdrkit using your system's package manager. Bạn cần cài đặt cdrtools hoặc cdrkit sử dụng tiện ích quản lý gói của hệ thống của bạn.