Update CreateVolumeDialog OK button status.

This commit is contained in:
Chantara Tith 2016-07-02 15:27:20 +07:00 committed by Andrius Štikonas
parent 8e4d9fc849
commit 7a5f8fb1a8
4 changed files with 87 additions and 7 deletions

View File

@ -38,8 +38,8 @@
@param parent pointer to the parent widget
@param d the Device to show properties for
*/
CreateVolumeDialog::CreateVolumeDialog(QWidget* parent) :
VolumeDialog(parent)
CreateVolumeDialog::CreateVolumeDialog(QWidget* parent, QString& vgname, QList<Partition*>& pvlist) :
VolumeDialog(parent, vgname, pvlist)
{
setWindowTitle(xi18nc("@title:window", "Cretae new Volume Group"));
@ -60,7 +60,31 @@ void CreateVolumeDialog::setupDialog()
VolumeDialog::setupDialog();
}
void CreateVolumeDialog::setupConstraints()
{
VolumeDialog::setupConstraints();
}
void CreateVolumeDialog::setupConnections()
{
VolumeDialog::setupConnections();
connect(&dialogWidget().vgName(), &QLineEdit::textChanged, this, &CreateVolumeDialog::onVGNameChanged);
connect(&dialogWidget().spinPESize(), static_cast<void(QSpinBox::*)(int)>(&QSpinBox::valueChanged), this, &CreateVolumeDialog::onSpinPESizeChanged);
}
void CreateVolumeDialog::accept()
{
QDialog::accept();
}
void CreateVolumeDialog::onVGNameChanged(const QString& vgname)
{
Q_UNUSED(vgname);
updateOkButtonStatus();
}
void CreateVolumeDialog::onSpinPESizeChanged(int newsize)
{
Q_UNUSED(newsize);
updateOkButtonStatus();
}

View File

@ -26,12 +26,18 @@ class CreateVolumeDialog : public VolumeDialog
Q_DISABLE_COPY(CreateVolumeDialog)
public:
CreateVolumeDialog(QWidget* parent);
CreateVolumeDialog(QWidget* parent, QString& vgname, QList<Partition*>& pvlist);
~CreateVolumeDialog();
protected:
void accept() override;
void setupDialog() override;
void setupConstraints() override;
void setupConnections() override;
protected:
void onVGNameChanged(const QString& vgname);
void onSpinPESizeChanged(int newsize);
};
#endif

View File

@ -37,25 +37,30 @@
@param parent pointer to the parent widget
@param d the Device to show properties for
*/
VolumeDialog::VolumeDialog(QWidget* parent) :
VolumeDialog::VolumeDialog(QWidget* parent, QString& vgname, QList<Partition*>& pvlist) :
QDialog(parent),
m_DialogWidget(new VolumeWidget(this))
m_DialogWidget(new VolumeWidget(this)),
m_OriginalName(vgname)
{
Q_UNUSED(pvlist);
mainLayout = new QVBoxLayout(this);
setLayout(mainLayout);
mainLayout->addWidget(&dialogWidget());
dialogWidget().listPV().addItem(QStringLiteral("TESTING ITEM"));
dialogButtonBox = new QDialogButtonBox;
okButton = dialogButtonBox->addButton(QDialogButtonBox::Ok);
cancelButton = dialogButtonBox->addButton(QDialogButtonBox::Cancel);
mainLayout->addWidget(dialogButtonBox);
okButton->setEnabled(false);
updateOkButtonStatus();
cancelButton->setFocus();
cancelButton->setDefault(true);
connect(dialogButtonBox, &QDialogButtonBox::accepted, this, &VolumeDialog::accept);
connect(dialogButtonBox, &QDialogButtonBox::rejected, this, &VolumeDialog::reject);
setupDialog();
setupConstraints();
setupConnections();
}
@ -68,6 +73,7 @@ VolumeDialog::~VolumeDialog()
void VolumeDialog::setupDialog()
{
dialogWidget().vgName().text() = originalName();
setMinimumSize(dialogWidget().size());
resize(dialogWidget().size());
}
@ -75,3 +81,33 @@ void VolumeDialog::setupDialog()
void VolumeDialog::setupConnections()
{
}
void VolumeDialog::setupConstraints()
{
}
void VolumeDialog::updateOkButtonStatus()
{
bool enable = true;
if (dialogWidget().vgName().text().isEmpty()) {
enable = false;
}
if (dialogWidget().spinPESize().value() <= 0) {
enable = false;
}
okButton->setEnabled(enable);
}
void VolumeDialog::updatePartTable()
{
}
void VolumeDialog::updateSizeInfos()
{
}
void VolumeDialog::onPartitionListChanged()
{
}

View File

@ -22,6 +22,7 @@
#include <QDialog>
class VolumeWidget;
class Partition;
class QDialogButtonBox;
class QPushButton;
@ -34,13 +35,18 @@ class VolumeDialog : public QDialog
Q_DISABLE_COPY(VolumeDialog)
public:
VolumeDialog(QWidget* parent);
VolumeDialog(QWidget* parent, QString& vgname, QList<Partition*>& pvlist);
~VolumeDialog();
protected:
virtual void setupDialog();
virtual void setupConstraints();
virtual void setupConnections();
virtual void updateOkButtonStatus();
virtual void updatePartTable();
virtual void updateSizeInfos();
VolumeWidget& dialogWidget() {
Q_ASSERT(m_DialogWidget);
return *m_DialogWidget;
@ -50,8 +56,16 @@ protected:
return *m_DialogWidget;
}
const QString originalName() const {
return m_OriginalName;
}
protected:
virtual void onPartitionListChanged();
protected:
VolumeWidget* m_DialogWidget;
QString m_OriginalName;
QDialogButtonBox* dialogButtonBox;
QPushButton* okButton;