/************************************************************************* * Copyright (C) 2008-2010 by Volker Lanz * * Copyright (C) 2015 by Teo Mrnjavac * * * * 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 .* *************************************************************************/ #if !defined(PARTITIONMANAGERWIDGET_H) #define PARTITIONMANAGERWIDGET_H #include #include #include "ui_partitionmanagerwidgetbase.h" #include class Partition; class PartWidget; class Device; class QWidget; class QLabel; class QPoint; /** The central widget for the application. @author Volker Lanz */ class PartitionManagerWidget : public QWidget, Ui::PartitionManagerWidgetBase { Q_OBJECT Q_DISABLE_COPY(PartitionManagerWidget) public: explicit PartitionManagerWidget(QWidget* parent = nullptr); virtual ~PartitionManagerWidget(); Q_SIGNALS: void selectedPartitionChanged(const Partition*); void contextMenuRequested(const QPoint&); void deviceDoubleClicked(const Device*); void partitionDoubleClicked(const Partition* p); public: void setSelectedDevice(Device* d); void setSelectedDevice(const QString& deviceNode); void onNewPartition(); void onResizePartition(); void onDeletePartition(bool shred = false); void onShredPartition(); void onCopyPartition(); void onPastePartition(); void onEditMountPoint(); void onMountPartition(); void onDecryptPartition(); void onCheckPartition(); void onBackupPartition(); void onRestorePartition(); void onPropertiesPartition(); void init(OperationStack* ostack); void clear(); Device* selectedDevice() { return m_SelectedDevice; } const Device* selectedDevice() const { return m_SelectedDevice; } Partition* selectedPartition(); void setSelectedPartition(const Partition* p); Partition* clipboardPartition() { return m_ClipboardPartition; } const Partition* clipboardPartition() const { return m_ClipboardPartition; } void setClipboardPartition(Partition* p) { m_ClipboardPartition = p; } void updatePartitions(); protected: OperationStack& operationStack() { return *m_OperationStack; } const OperationStack& operationStack() const { return *m_OperationStack; } void setupConnections(); void loadConfig(); void saveConfig() const; bool showInsertDialog(Partition& insertPartition, qint64 sourceLength); PartTableWidget& partTableWidget() { Q_ASSERT(m_PartTableWidget); return *m_PartTableWidget; } const PartTableWidget& partTableWidget() const { Q_ASSERT(m_PartTableWidget); return *m_PartTableWidget; } QTreeWidget& treePartitions() { Q_ASSERT(m_TreePartitions); return *m_TreePartitions; } const QTreeWidget& treePartitions() const { Q_ASSERT(m_TreePartitions); return *m_TreePartitions; } void onHeaderContextMenu(const QPoint& p); protected Q_SLOTS: void on_m_TreePartitions_currentItemChanged(QTreeWidgetItem* current, QTreeWidgetItem* previous); void on_m_TreePartitions_customContextMenuRequested(const QPoint& pos); void on_m_TreePartitions_itemDoubleClicked(QTreeWidgetItem* item, int); void on_m_PartTableWidget_itemSelectionChanged(PartWidget* item); void on_m_PartTableWidget_customContextMenuRequested(const QPoint& pos); void on_m_PartTableWidget_itemDoubleClicked(); private: OperationStack* m_OperationStack; Device* m_SelectedDevice; Partition* m_ClipboardPartition; }; #endif