UI: ProgramEditDialog: Simplify initialize()

This commit is contained in:
Nodir Temirkhodjaev 2024-01-01 15:10:09 +03:00
parent 8e30a7107c
commit 801db43505
2 changed files with 40 additions and 22 deletions

View File

@ -74,25 +74,7 @@ void ProgramEditDialog::initialize(const AppRow &appRow, const QVector<qint64> &
m_appRow = appRow; m_appRow = appRow;
m_appIdList = appIdList; m_appIdList = appIdList;
const bool isSingleSelection = (appIdList.size() <= 1); initializePathNameFields();
const bool isPathEditable = isSingleSelection && (appRow.appId == 0 || appRow.isWildcard);
m_editPath->setText(isSingleSelection && !isWildcard() ? appRow.appOriginPath : QString());
m_editPath->setReadOnly(!isPathEditable);
m_editPath->setClearButtonEnabled(isPathEditable);
m_editPath->setEnabled(isSingleSelection);
m_editPath->setVisible(!isWildcard());
m_editWildcard->setText(isSingleSelection && isWildcard() ? appRow.appOriginPath : QString());
m_editWildcard->setReadOnly(!isPathEditable);
m_editWildcard->setEnabled(isSingleSelection);
m_editWildcard->setVisible(isWildcard());
m_btSelectFile->setEnabled(isPathEditable);
m_editName->setText(isSingleSelection ? appRow.appName : QString());
m_editName->setEnabled(isSingleSelection);
m_editName->setClearButtonEnabled(isSingleSelection);
m_btGetName->setEnabled(isSingleSelection);
m_comboAppGroup->setCurrentIndex(appRow.groupIndex); m_comboAppGroup->setCurrentIndex(appRow.groupIndex);
m_cbUseGroupPerm->setChecked(appRow.useGroupPerm); m_cbUseGroupPerm->setChecked(appRow.useGroupPerm);
@ -116,11 +98,43 @@ void ProgramEditDialog::initialize(const AppRow &appRow, const QVector<qint64> &
m_dteBlockAppAt->setMinimumDateTime(QDateTime::currentDateTime()); m_dteBlockAppAt->setMinimumDateTime(QDateTime::currentDateTime());
m_cbBlockAppNone->setChecked(appRow.endTime.isNull()); m_cbBlockAppNone->setChecked(appRow.endTime.isNull());
if (isSingleSelection && appRow.appName.isEmpty()) { retranslateUi();
}
void ProgramEditDialog::initializePathNameFields()
{
const bool isSingleSelection = (m_appIdList.size() <= 1);
const bool isPathEditable = isSingleSelection && (m_appRow.appId == 0 || isWildcard());
initializePathField(isSingleSelection, isPathEditable);
initializeNameField(isSingleSelection, isPathEditable);
if (isSingleSelection && m_appRow.appName.isEmpty()) {
fillEditName(); // Auto-fill the name fillEditName(); // Auto-fill the name
} }
}
retranslateUi(); void ProgramEditDialog::initializePathField(bool isSingleSelection, bool isPathEditable)
{
m_editPath->setText(isSingleSelection && !isWildcard() ? m_appRow.appOriginPath : QString());
m_editPath->setReadOnly(!isPathEditable);
m_editPath->setClearButtonEnabled(isPathEditable);
m_editPath->setEnabled(isSingleSelection);
m_editPath->setVisible(!isWildcard());
m_editWildcard->setText(isSingleSelection && isWildcard() ? m_appRow.appOriginPath : QString());
m_editWildcard->setReadOnly(!isPathEditable);
m_editWildcard->setEnabled(isSingleSelection);
m_editWildcard->setVisible(isWildcard());
}
void ProgramEditDialog::initializeNameField(bool isSingleSelection, bool isPathEditable)
{
m_btSelectFile->setEnabled(isPathEditable);
m_editName->setText(isSingleSelection ? m_appRow.appName : QString());
m_editName->setEnabled(isSingleSelection);
m_editName->setClearButtonEnabled(isSingleSelection);
m_btGetName->setEnabled(isSingleSelection);
} }
void ProgramEditDialog::activate() void ProgramEditDialog::activate()
@ -180,7 +194,7 @@ void ProgramEditDialog::retranslateUi()
void ProgramEditDialog::retranslatePathPlaceholderText() void ProgramEditDialog::retranslatePathPlaceholderText()
{ {
if (!isWildcard()) if (!(isWildcard() && m_editWildcard->isEnabled()))
return; return;
const auto placeholderText = tr("# Examples:") + '\n' const auto placeholderText = tr("# Examples:") + '\n'

View File

@ -42,6 +42,10 @@ public:
void activate(); void activate();
private: private:
void initializePathNameFields();
void initializePathField(bool isSingleSelection, bool isPathEditable);
void initializeNameField(bool isSingleSelection, bool isPathEditable);
void setupController(); void setupController();
void retranslateUi(); void retranslateUi();