Add option to save album cover in album directory

This commit is contained in:
Jonas Kvinge
2019-03-11 23:07:11 +01:00
parent 242137a50c
commit 2211716d04
9 changed files with 308 additions and 55 deletions

View File

@@ -43,10 +43,12 @@
const char *CollectionSettingsPage::kSettingsGroup = "Collection";
CollectionSettingsPage::CollectionSettingsPage(SettingsDialog* dialog)
CollectionSettingsPage::CollectionSettingsPage(SettingsDialog *dialog)
: SettingsPage(dialog),
ui_(new Ui_CollectionSettingsPage),
initialised_model_(false) {
initialised_model_(false)
{
ui_->setupUi(this);
ui_->list->setItemDelegate(new NativeSeparatorsDelegate(this));
@@ -56,6 +58,11 @@ CollectionSettingsPage::CollectionSettingsPage(SettingsDialog* dialog)
connect(ui_->add, SIGNAL(clicked()), SLOT(Add()));
connect(ui_->remove, SIGNAL(clicked()), SLOT(Remove()));
connect(ui_->checkbox_cover_album_dir, SIGNAL(toggled(bool)), SLOT(CoverSaveInAlbumDirChanged()));
connect(ui_->radiobutton_cover_hash, SIGNAL(toggled(bool)), SLOT(CoverSaveInAlbumDirChanged()));
connect(ui_->radiobutton_cover_pattern, SIGNAL(toggled(bool)), SLOT(CoverSaveInAlbumDirChanged()));
}
CollectionSettingsPage::~CollectionSettingsPage() { delete ui_; }
@@ -83,25 +90,6 @@ void CollectionSettingsPage::CurrentRowChanged(const QModelIndex& index) {
ui_->remove->setEnabled(index.isValid());
}
void CollectionSettingsPage::Save() {
QSettings s;
s.beginGroup(kSettingsGroup);
s.setValue("auto_open", ui_->auto_open->isChecked());
s.setValue("pretty_covers", ui_->pretty_covers->isChecked());
s.setValue("show_dividers", ui_->show_dividers->isChecked());
s.setValue("startup_scan", ui_->startup_scan->isChecked());
s.setValue("monitor", ui_->monitor->isChecked());
QString filter_text = ui_->cover_art_patterns->text();
QStringList filters = filter_text.split(',', QString::SkipEmptyParts);
s.setValue("cover_art_patterns", filters);
s.endGroup();
}
void CollectionSettingsPage::Load() {
if (!initialised_model_) {
@@ -127,5 +115,74 @@ void CollectionSettingsPage::Load() {
QStringList filters = s.value("cover_art_patterns", QStringList() << "front" << "cover").toStringList();
ui_->cover_art_patterns->setText(filters.join(","));
ui_->checkbox_cover_album_dir->setChecked(s.value("cover_album_dir", false).toBool());
SaveCover save_cover = SaveCover(s.value("cover_filename", SaveCover_Hash).toInt());
switch (save_cover) {
case SaveCover_Hash: ui_->radiobutton_cover_hash->setChecked(true); break;
case SaveCover_Pattern: ui_->radiobutton_cover_pattern->setChecked(true); break;
}
QString cover_pattern = s.value("cover_pattern").toString();
if (!cover_pattern.isEmpty()) ui_->lineedit_cover_pattern->setText(cover_pattern);
ui_->checkbox_cover_overwrite->setChecked(s.value("cover_overwrite", false).toBool());
ui_->checkbox_cover_lowercase->setChecked(s.value("cover_lowercase", true).toBool());
ui_->checkbox_cover_replace_spaces->setChecked(s.value("cover_replace_spaces", true).toBool());
s.endGroup();
}
void CollectionSettingsPage::Save() {
QSettings s;
s.beginGroup(kSettingsGroup);
s.setValue("auto_open", ui_->auto_open->isChecked());
s.setValue("pretty_covers", ui_->pretty_covers->isChecked());
s.setValue("show_dividers", ui_->show_dividers->isChecked());
s.setValue("startup_scan", ui_->startup_scan->isChecked());
s.setValue("monitor", ui_->monitor->isChecked());
QString filter_text = ui_->cover_art_patterns->text();
QStringList filters = filter_text.split(',', QString::SkipEmptyParts);
s.setValue("cover_art_patterns", filters);
s.setValue("cover_album_dir", ui_->checkbox_cover_album_dir->isChecked());
SaveCover save_cover = SaveCover_Hash;
if (ui_->radiobutton_cover_hash->isChecked()) save_cover = SaveCover_Hash;
if (ui_->radiobutton_cover_pattern->isChecked()) save_cover = SaveCover_Pattern;
s.setValue("cover_filename", int(save_cover));
s.setValue("cover_pattern", ui_->lineedit_cover_pattern->text());
s.setValue("cover_overwrite", ui_->checkbox_cover_overwrite->isChecked());
s.setValue("cover_lowercase", ui_->checkbox_cover_lowercase->isChecked());
s.setValue("cover_replace_spaces", ui_->checkbox_cover_replace_spaces->isChecked());
s.endGroup();
}
void CollectionSettingsPage::CoverSaveInAlbumDirChanged() {
if (ui_->checkbox_cover_album_dir->isChecked()) {
if (!ui_->groupbox_cover_filename->isEnabled()) {
ui_->groupbox_cover_filename->setEnabled(true);
}
if (ui_->radiobutton_cover_pattern->isChecked()) {
if (!ui_->lineedit_cover_pattern->isEnabled()) ui_->lineedit_cover_pattern->setEnabled(true);
if (!ui_->checkbox_cover_overwrite->isEnabled()) ui_->checkbox_cover_overwrite->setEnabled(true);
if (!ui_->checkbox_cover_lowercase->isEnabled()) ui_->checkbox_cover_lowercase->setEnabled(true);
if (!ui_->checkbox_cover_replace_spaces->isEnabled()) ui_->checkbox_cover_replace_spaces->setEnabled(true);
}
else {
if (ui_->lineedit_cover_pattern->isEnabled()) ui_->lineedit_cover_pattern->setEnabled(false);
if (ui_->checkbox_cover_overwrite->isEnabled()) ui_->checkbox_cover_overwrite->setEnabled(false);
if (ui_->checkbox_cover_lowercase->isEnabled()) ui_->checkbox_cover_lowercase->setEnabled(false);
if (ui_->checkbox_cover_replace_spaces->isEnabled()) ui_->checkbox_cover_replace_spaces->setEnabled(false);
}
}
else {
if (ui_->groupbox_cover_filename->isEnabled()) {
ui_->groupbox_cover_filename->setEnabled(false);
}
}
}