Merge pull request #561 from leo78913/iconpicker-stuff
closes https://github.com/PrismLauncher/PrismLauncher/issues/494
This commit is contained in:
commit
d193ed9eeb
@ -354,15 +354,18 @@ const MMCIcon *IconList::icon(const QString &key) const
|
||||
|
||||
bool IconList::deleteIcon(const QString &key)
|
||||
{
|
||||
int iconIdx = getIconIndex(key);
|
||||
if (iconIdx == -1)
|
||||
if (!iconFileExists(key))
|
||||
return false;
|
||||
auto &iconEntry = icons[iconIdx];
|
||||
if (iconEntry.has(IconType::FileBased))
|
||||
{
|
||||
return QFile::remove(iconEntry.m_images[IconType::FileBased].filename);
|
||||
}
|
||||
return false;
|
||||
|
||||
return QFile::remove(icon(key)->getFilePath());
|
||||
}
|
||||
|
||||
bool IconList::trashIcon(const QString &key)
|
||||
{
|
||||
if (!iconFileExists(key))
|
||||
return false;
|
||||
|
||||
return FS::trash(icon(key)->getFilePath(), nullptr);
|
||||
}
|
||||
|
||||
bool IconList::addThemeIcon(const QString& key)
|
||||
|
@ -52,6 +52,7 @@ public:
|
||||
bool addIcon(const QString &key, const QString &name, const QString &path, const IconType type);
|
||||
void saveIcon(const QString &key, const QString &path, const char * format) const;
|
||||
bool deleteIcon(const QString &key);
|
||||
bool trashIcon(const QString &key);
|
||||
bool iconFileExists(const QString &key) const;
|
||||
|
||||
void installIcons(const QStringList &iconFiles);
|
||||
|
@ -63,7 +63,7 @@ IconPickerDialog::IconPickerDialog(QWidget *parent)
|
||||
|
||||
// NOTE: ResetRole forces the button to be on the left, while the OK/Cancel ones are on the right. We win.
|
||||
auto buttonAdd = ui->buttonBox->addButton(tr("Add Icon"), QDialogButtonBox::ResetRole);
|
||||
auto buttonRemove = ui->buttonBox->addButton(tr("Remove Icon"), QDialogButtonBox::ResetRole);
|
||||
buttonRemove = ui->buttonBox->addButton(tr("Remove Icon"), QDialogButtonBox::ResetRole);
|
||||
|
||||
connect(buttonAdd, SIGNAL(clicked(bool)), SLOT(addNewIcon()));
|
||||
connect(buttonRemove, SIGNAL(clicked(bool)), SLOT(removeSelectedIcon()));
|
||||
@ -111,6 +111,9 @@ void IconPickerDialog::addNewIcon()
|
||||
|
||||
void IconPickerDialog::removeSelectedIcon()
|
||||
{
|
||||
if (APPLICATION->icons()->trashIcon(selectedIconKey))
|
||||
return;
|
||||
|
||||
APPLICATION->icons()->deleteIcon(selectedIconKey);
|
||||
}
|
||||
|
||||
@ -129,6 +132,7 @@ void IconPickerDialog::selectionChanged(QItemSelection selected, QItemSelection
|
||||
if (!key.isEmpty()) {
|
||||
selectedIconKey = key;
|
||||
}
|
||||
buttonRemove->setEnabled(APPLICATION->icons()->iconFileExists(selectedIconKey));
|
||||
}
|
||||
|
||||
int IconPickerDialog::execWithSelection(QString selection)
|
||||
|
@ -37,6 +37,7 @@ protected:
|
||||
|
||||
private:
|
||||
Ui::IconPickerDialog *ui;
|
||||
QPushButton *buttonRemove;
|
||||
|
||||
private
|
||||
slots:
|
||||
|
Loading…
Reference in New Issue
Block a user