Add option to save album cover in album directory
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -43,6 +43,11 @@ public:
|
||||
|
||||
static const char *kSettingsGroup;
|
||||
|
||||
enum SaveCover {
|
||||
SaveCover_Hash = 1,
|
||||
SaveCover_Pattern = 2
|
||||
};
|
||||
|
||||
void Load();
|
||||
void Save();
|
||||
|
||||
@@ -51,6 +56,7 @@ private slots:
|
||||
void Remove();
|
||||
|
||||
void CurrentRowChanged(const QModelIndex &index);
|
||||
void CoverSaveInAlbumDirChanged();
|
||||
|
||||
private:
|
||||
Ui_CollectionSettingsPage *ui_;
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>509</width>
|
||||
<height>452</height>
|
||||
<height>695</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
@@ -15,14 +15,14 @@
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<widget class="QLabel" name="label_collection_folders">
|
||||
<property name="text">
|
||||
<string>These folders will be scanned for music to make up your collection</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<layout class="QHBoxLayout" name="layout_collection_folders">
|
||||
<item>
|
||||
<widget class="QListView" name="list">
|
||||
<property name="iconSize">
|
||||
@@ -37,7 +37,7 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<layout class="QVBoxLayout" name="layout_collection_folder_buttons">
|
||||
<item>
|
||||
<widget class="QPushButton" name="add">
|
||||
<property name="text">
|
||||
@@ -56,7 +56,7 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<spacer name="spacer_collection_buttons">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
@@ -73,7 +73,7 @@
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<widget class="QGroupBox" name="groupbox_updating">
|
||||
<property name="title">
|
||||
<string>Automatic updating</string>
|
||||
</property>
|
||||
@@ -93,7 +93,7 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<widget class="QLabel" name="label_preferred_cover_filenames">
|
||||
<property name="text">
|
||||
<string>Preferred album art filenames (comma separated)</string>
|
||||
</property>
|
||||
@@ -111,7 +111,7 @@ If there are no matches then it will use the largest image in the directory.</st
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_1">
|
||||
<widget class="QGroupBox" name="groupbox_display">
|
||||
<property name="title">
|
||||
<string>Display options</string>
|
||||
</property>
|
||||
@@ -140,6 +140,92 @@ If there are no matches then it will use the largest image in the directory.</st
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupbox_albumcovers">
|
||||
<property name="title">
|
||||
<string>Saving album covers</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_5">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="checkbox_cover_album_dir">
|
||||
<property name="text">
|
||||
<string>Save album covers in album directory</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupbox_cover_filename">
|
||||
<property name="title">
|
||||
<string>Filename:</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_6">
|
||||
<item>
|
||||
<widget class="QWidget" name="groupbox_buttons" native="true">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<widget class="QRadioButton" name="radiobutton_cover_hash">
|
||||
<property name="text">
|
||||
<string>Use hash</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="radiobutton_cover_pattern">
|
||||
<property name="text">
|
||||
<string>Use pattern</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="spacer_cover_filename_bttons">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="lineedit_cover_pattern">
|
||||
<property name="text">
|
||||
<string>%albumartist-%album</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="checkbox_cover_overwrite">
|
||||
<property name="text">
|
||||
<string>Overwrite existing file</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="checkbox_cover_lowercase">
|
||||
<property name="text">
|
||||
<string>Lowercase filename</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="checkbox_cover_replace_spaces">
|
||||
<property name="text">
|
||||
<string>Replace spaces with dashes</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<tabstops>
|
||||
|
||||
Reference in New Issue
Block a user