Fix saving playlist columns
This commit is contained in:
parent
1072dc0a41
commit
42de7de21d
@ -2200,8 +2200,8 @@ void MainWindow::Exit() {
|
||||
SaveGeometry();
|
||||
SavePlaybackStatus();
|
||||
ui_->tabs->SaveSettings(kSettingsGroup);
|
||||
ui_->playlist->view()->SaveSettings();
|
||||
ui_->playlist->view()->SaveGeometry();
|
||||
ui_->playlist->view()->SaveSettings();
|
||||
app_->scrobbler()->WriteCache();
|
||||
|
||||
if (app_->player()->engine()->is_fadeout_enabled()) {
|
||||
|
@ -143,6 +143,7 @@ PlaylistView::PlaylistView(QWidget *parent)
|
||||
background_initialized_(false),
|
||||
setting_initial_header_layout_(false),
|
||||
read_only_settings_(true),
|
||||
state_loaded_(false),
|
||||
previous_background_image_opacity_(0.0),
|
||||
fade_animation_(new QTimeLine(1000, this)),
|
||||
force_background_redraw_(false),
|
||||
@ -170,10 +171,14 @@ PlaylistView::PlaylistView(QWidget *parent)
|
||||
setStyle(style_);
|
||||
setMouseTracking(true);
|
||||
|
||||
connect(header_, SIGNAL(sectionResized(int,int,int)), SLOT(SaveGeometry()));
|
||||
connect(header_, SIGNAL(sectionMoved(int,int,int)), SLOT(SaveGeometry()));
|
||||
connect(header_, SIGNAL(sortIndicatorChanged(int,Qt::SortOrder)), SLOT(SaveGeometry()));
|
||||
connect(header_, SIGNAL(SectionVisibilityChanged(int,bool)), SLOT(SaveGeometry()));
|
||||
|
||||
connect(header_, SIGNAL(sectionResized(int,int,int)), SLOT(InvalidateCachedCurrentPixmap()));
|
||||
connect(header_, SIGNAL(sectionMoved(int,int,int)), SLOT(InvalidateCachedCurrentPixmap()));
|
||||
connect(header_, SIGNAL(SectionVisibilityChanged(int,bool)), SLOT(InvalidateCachedCurrentPixmap()));
|
||||
connect(header_, SIGNAL(StretchEnabledChanged(bool)), SLOT(SaveSettings()));
|
||||
connect(header_, SIGNAL(StretchEnabledChanged(bool)), SLOT(StretchChanged(bool)));
|
||||
|
||||
inhibit_autoscroll_timer_->setInterval(kAutoscrollGraceTimeout * 1000);
|
||||
@ -287,14 +292,17 @@ void PlaylistView::setModel(QAbstractItemModel *m) {
|
||||
|
||||
void PlaylistView::LoadGeometry() {
|
||||
|
||||
QSettings s;
|
||||
s.beginGroup(Playlist::kSettingsGroup);
|
||||
QByteArray state(s.value("state").toByteArray());
|
||||
s.endGroup();
|
||||
if (!state_loaded_) {
|
||||
QSettings s;
|
||||
s.beginGroup(Playlist::kSettingsGroup);
|
||||
state_ = s.value("state").toByteArray();
|
||||
state_loaded_ = true;
|
||||
s.endGroup();
|
||||
}
|
||||
|
||||
if (!header_->RestoreState(state)) {
|
||||
if (!header_->RestoreState(state_)) {
|
||||
// Maybe we're upgrading from a version that persisted the state with QHeaderView.
|
||||
if (!header_->restoreState(state)) {
|
||||
if (!header_->restoreState(state_)) {
|
||||
header_->HideSection(Playlist::Column_AlbumArtist);
|
||||
header_->HideSection(Playlist::Column_Performer);
|
||||
header_->HideSection(Playlist::Column_Composer);
|
||||
@ -338,12 +346,8 @@ void PlaylistView::LoadGeometry() {
|
||||
|
||||
void PlaylistView::SaveGeometry() {
|
||||
|
||||
if (!initialized_ || read_only_settings_) return;
|
||||
|
||||
QSettings settings;
|
||||
settings.beginGroup(Playlist::kSettingsGroup);
|
||||
settings.setValue("state", header_->SaveState());
|
||||
settings.endGroup();
|
||||
if (!initialized_ || !state_loaded_) return;
|
||||
state_ = header_->SaveState();
|
||||
|
||||
}
|
||||
|
||||
@ -1090,16 +1094,8 @@ void PlaylistView::SaveSettings() {
|
||||
if (!initialized_ || read_only_settings_) return;
|
||||
|
||||
QSettings s;
|
||||
|
||||
s.beginGroup(PlaylistSettingsPage::kSettingsGroup);
|
||||
s.setValue("glow_effect", glow_enabled_);
|
||||
s.endGroup();
|
||||
|
||||
s.beginGroup(AppearanceSettingsPage::kSettingsGroup);
|
||||
s.setValue(AppearanceSettingsPage::kBackgroundImageType, background_image_type_);
|
||||
s.endGroup();
|
||||
|
||||
s.beginGroup(Playlist::kSettingsGroup);
|
||||
s.setValue("state", header_->SaveState());
|
||||
s.setValue("column_alignments", QVariant::fromValue(column_alignment_));
|
||||
s.endGroup();
|
||||
|
||||
@ -1109,6 +1105,7 @@ void PlaylistView::StretchChanged(bool stretch) {
|
||||
|
||||
if (!initialized_) return;
|
||||
setHorizontalScrollBarPolicy(stretch ? Qt::ScrollBarAlwaysOff : Qt::ScrollBarAsNeeded);
|
||||
SaveGeometry();
|
||||
|
||||
}
|
||||
|
||||
@ -1287,15 +1284,15 @@ void PlaylistView::focusInEvent(QFocusEvent *event) {
|
||||
|
||||
void PlaylistView::ResetColumns() {
|
||||
|
||||
read_only_settings_ = true;
|
||||
setting_initial_header_layout_ = true;
|
||||
QSettings s;
|
||||
s.beginGroup(Playlist::kSettingsGroup);
|
||||
s.remove("state");
|
||||
s.endGroup();
|
||||
state_loaded_ = false;
|
||||
read_only_settings_ = true;
|
||||
setting_initial_header_layout_ = true;
|
||||
ReloadSettings();
|
||||
LoadGeometry();
|
||||
ReloadSettings();
|
||||
read_only_settings_ = false;
|
||||
SetPlaylist(playlist_);
|
||||
|
||||
|
@ -113,10 +113,10 @@ class PlaylistView : public QTreeView {
|
||||
void setModel(QAbstractItemModel *model);
|
||||
|
||||
void ResetColumns();
|
||||
void SaveGeometry();
|
||||
|
||||
public slots:
|
||||
void ReloadSettings();
|
||||
void SaveGeometry();
|
||||
void SaveSettings();
|
||||
void StopGlowing();
|
||||
void StartGlowing();
|
||||
@ -171,9 +171,7 @@ class PlaylistView : public QTreeView {
|
||||
void MaybeAutoscroll();
|
||||
void InvalidateCachedCurrentPixmap();
|
||||
void PlaylistDestroyed();
|
||||
|
||||
void StretchChanged(bool stretch);
|
||||
|
||||
void FadePreviousBackgroundImage(qreal value);
|
||||
|
||||
private:
|
||||
@ -217,6 +215,7 @@ class PlaylistView : public QTreeView {
|
||||
bool background_initialized_;
|
||||
bool setting_initial_header_layout_;
|
||||
bool read_only_settings_;
|
||||
bool state_loaded_;
|
||||
|
||||
QImage background_image_;
|
||||
QImage current_song_cover_art_;
|
||||
@ -264,6 +263,9 @@ class PlaylistView : public QTreeView {
|
||||
bool drag_over_;
|
||||
|
||||
ColumnAlignmentMap column_alignment_;
|
||||
|
||||
QByteArray state_;
|
||||
|
||||
};
|
||||
|
||||
#endif // PLAYLISTVIEW_H
|
||||
|
Loading…
x
Reference in New Issue
Block a user