diff --git a/src/playlist/playlist.cpp b/src/playlist/playlist.cpp index a9afaec40..45c2b570c 100644 --- a/src/playlist/playlist.cpp +++ b/src/playlist/playlist.cpp @@ -20,6 +20,7 @@ #include "playlistfilter.h" #include "playlistitemmimedata.h" #include "playlistundocommands.h" +#include "playlistview.h" #include "queue.h" #include "songloaderinserter.h" #include "songmimedata.h" @@ -121,19 +122,7 @@ Playlist::Playlist(PlaylistBackend* backend, connect(queue_, SIGNAL(layoutChanged()), SLOT(QueueLayoutChanged())); - column_alignments_[Column_Length] - = column_alignments_[Column_Track] - = column_alignments_[Column_Disc] - = column_alignments_[Column_Year] - = column_alignments_[Column_BPM] - = column_alignments_[Column_Bitrate] - = column_alignments_[Column_Samplerate] - = column_alignments_[Column_Filesize] - = column_alignments_[Column_PlayCount] - = column_alignments_[Column_SkipCount] - = (Qt::AlignRight | Qt::AlignVCenter); - - column_alignments_[Column_Score] = (Qt::AlignCenter); + column_alignments_ = PlaylistView::DefaultColumnAlignment(); } Playlist::~Playlist() { @@ -1697,22 +1686,6 @@ void Playlist::ItemChanged(PlaylistItemPtr item) { } } -void Playlist::set_column_alignments(const ColumnAlignmentMap& column_alignments) { - column_alignments_ = column_alignments; -} - -void Playlist::set_column_align_left(int column) { - column_alignments_[column] = (Qt::AlignLeft | Qt::AlignVCenter); -} - -void Playlist::set_column_align_center(int column) { - column_alignments_[column] = Qt::AlignCenter; -} - -void Playlist::set_column_align_right(int column) { - column_alignments_[column] = (Qt::AlignRight | Qt::AlignVCenter); -} - void Playlist::InformOfCurrentSongChange() { emit dataChanged(index(current_item_index_.row(), 0), index(current_item_index_.row(), ColumnCount-1)); @@ -1788,3 +1761,7 @@ bool Playlist::ApplyValidityOnCurrentSong(const QUrl& url, bool valid) { return current; } + +void Playlist::SetColumnAlignment(const ColumnAlignmentMap& alignment) { + column_alignments_ = alignment; +} diff --git a/src/playlist/playlist.h b/src/playlist/playlist.h index b243a3cbc..184ad0ef3 100644 --- a/src/playlist/playlist.h +++ b/src/playlist/playlist.h @@ -195,12 +195,6 @@ class Playlist : public QAbstractListModel { QUndoStack* undo_stack() const { return undo_stack_; } - ColumnAlignmentMap column_alignments() const { return column_alignments_; } - void set_column_alignments(const ColumnAlignmentMap& column_alignments); - void set_column_align_left(int column); - void set_column_align_center(int column); - void set_column_align_right(int column); - // Scrobbling qint64 scrobble_point_nanosec() const { return scrobble_point_; } LastFMStatus get_lastfm_status() const { return lastfm_status_; } @@ -281,6 +275,8 @@ class Playlist : public QAbstractListModel { void RepopulateDynamicPlaylist(); void TurnOffDynamicPlaylist(); + void SetColumnAlignment(const ColumnAlignmentMap& alignment); + signals: void RestoreFinished(); void CurrentSongChanged(const Song& metadata); diff --git a/src/playlist/playlistheader.cpp b/src/playlist/playlistheader.cpp index f387bf8cc..99d362eaf 100644 --- a/src/playlist/playlistheader.cpp +++ b/src/playlist/playlistheader.cpp @@ -87,27 +87,18 @@ void PlaylistHeader::HideCurrent() { } void PlaylistHeader::AlignCurrentLeft() { - if (menu_section_ == -1) - return; - PlaylistView* view = static_cast(parent()); - view->playlist()->set_column_align_left(menu_section_); - emit ColumnAlignmentChanged(); + static_cast(parent())->SetColumnAlignment( + menu_section_, Qt::AlignLeft | Qt::AlignVCenter); } void PlaylistHeader::AlignCurrentCenter() { - if (menu_section_ == -1) - return; - PlaylistView* view = static_cast(parent()); - view->playlist()->set_column_align_center(menu_section_); - emit ColumnAlignmentChanged(); + static_cast(parent())->SetColumnAlignment( + menu_section_, Qt::AlignHCenter | Qt::AlignVCenter); } void PlaylistHeader::AlignCurrentRight() { - if (menu_section_ == -1) - return; - PlaylistView* view = static_cast(parent()); - view->playlist()->set_column_align_right(menu_section_); - emit ColumnAlignmentChanged(); + static_cast(parent())->SetColumnAlignment( + menu_section_, Qt::AlignRight | Qt::AlignVCenter); } void PlaylistHeader::ToggleVisible(int section) { diff --git a/src/playlist/playlistheader.h b/src/playlist/playlistheader.h index b85747d82..3524e59c0 100644 --- a/src/playlist/playlistheader.h +++ b/src/playlist/playlistheader.h @@ -35,7 +35,6 @@ class PlaylistHeader : public StretchHeaderView { signals: void SectionVisibilityChanged(int logical, bool visible); - void ColumnAlignmentChanged(); void MouseEntered(); private slots: diff --git a/src/playlist/playlistmanager.cpp b/src/playlist/playlistmanager.cpp index 2f214aba7..96feecdb7 100644 --- a/src/playlist/playlistmanager.cpp +++ b/src/playlist/playlistmanager.cpp @@ -17,7 +17,9 @@ #include "playlist.h" #include "playlistbackend.h" +#include "playlistcontainer.h" #include "playlistmanager.h" +#include "playlistview.h" #include "specialplaylisttype.h" #include "core/logging.h" #include "core/songloader.h" @@ -104,6 +106,8 @@ Playlist* PlaylistManager::AddPlaylist(int id, const QString& name, connect(ret, SIGNAL(EditingFinished(QModelIndex)), SIGNAL(EditingFinished(QModelIndex))); connect(ret, SIGNAL(LoadTracksError(QString)), SIGNAL(Error(QString))); connect(ret, SIGNAL(PlayRequested(QModelIndex)), SIGNAL(PlayRequested(QModelIndex))); + connect(playlist_container_->view(), SIGNAL(ColumnAlignmentChanged(ColumnAlignmentMap)), + ret, SLOT(SetColumnAlignment(ColumnAlignmentMap))); playlists_[id] = Data(ret, name); diff --git a/src/playlist/playlistview.cpp b/src/playlist/playlistview.cpp index 9048f323f..f9ebf52e7 100644 --- a/src/playlist/playlistview.cpp +++ b/src/playlist/playlistview.cpp @@ -117,7 +117,6 @@ PlaylistView::PlaylistView(QWidget *parent) 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(ColumnAlignmentChanged()), SLOT(SaveSettings())); connect(header_, SIGNAL(StretchEnabledChanged(bool)), SLOT(StretchChanged(bool))); connect(header_, SIGNAL(MouseEntered()), SLOT(RatingHoverOut())); @@ -893,8 +892,12 @@ void PlaylistView::ReloadSettings() { setting_initial_header_layout_ = false; } - ColumnAlignmentMap column_alignments = s.value("column_alignments").value(); - if (!column_alignments.isEmpty()) playlist_->set_column_alignments(column_alignments); + column_alignment_ = s.value("column_alignments").value(); + if (column_alignment_.isEmpty()) { + column_alignment_ = DefaultColumnAlignment(); + } + + emit ColumnAlignmentChanged(column_alignment_); } void PlaylistView::SaveSettings() { @@ -904,7 +907,7 @@ void PlaylistView::SaveSettings() { QSettings s; s.beginGroup(Playlist::kSettingsGroup); s.setValue("glow_effect", glow_enabled_); - s.setValue("column_alignments", QVariant::fromValue(playlist_->column_alignments())); + s.setValue("column_alignments", QVariant::fromValue(column_alignment_)); s.setValue("bg_enabled", background_enabled_); } @@ -955,3 +958,30 @@ void PlaylistView::rowsInserted(const QModelIndex& parent, int start, int end) { scrollTo(model()->index(start, 0, parent), QAbstractItemView::PositionAtTop); } } + +ColumnAlignmentMap PlaylistView::DefaultColumnAlignment() { + ColumnAlignmentMap ret; + + ret[Playlist::Column_Length] = + ret[Playlist::Column_Track] = + ret[Playlist::Column_Disc] = + ret[Playlist::Column_Year] = + ret[Playlist::Column_BPM] = + ret[Playlist::Column_Bitrate] = + ret[Playlist::Column_Samplerate] = + ret[Playlist::Column_Filesize] = + ret[Playlist::Column_PlayCount] = + ret[Playlist::Column_SkipCount] = (Qt::AlignRight | Qt::AlignVCenter); + ret[Playlist::Column_Score] = (Qt::AlignCenter); + + return ret; +} + +void PlaylistView::SetColumnAlignment(int section, Qt::Alignment alignment) { + if (section < 0) + return; + + column_alignment_[section] = alignment; + emit ColumnAlignmentChanged(column_alignment_); + SaveSettings(); +} diff --git a/src/playlist/playlistview.h b/src/playlist/playlistview.h index ecc685585..5f16b6faa 100644 --- a/src/playlist/playlistview.h +++ b/src/playlist/playlistview.h @@ -65,6 +65,8 @@ class PlaylistView : public QTreeView { static const int kStateVersion; + static ColumnAlignmentMap DefaultColumnAlignment(); + void SetItemDelegates(LibraryBackend* backend); void SetPlaylist(Playlist* playlist); void RemoveSelected(); @@ -78,7 +80,7 @@ class PlaylistView : public QTreeView { void drawTree(QPainter* painter, const QRegion& region) const; void drawRow(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const; void keyPressEvent(QKeyEvent* event); - void setModel(QAbstractItemModel *model); + void setModel(QAbstractItemModel* model); public slots: void ReloadSettings(); @@ -88,6 +90,7 @@ class PlaylistView : public QTreeView { void JumpToLastPlayedTrack(); void closeEditor(QWidget* editor, QAbstractItemDelegate::EndEditHint hint); void DynamicModeChanged(bool dynamic); + void SetColumnAlignment(int section, Qt::Alignment alignment); signals: void PlayItem(const QModelIndex& index); @@ -96,6 +99,7 @@ class PlaylistView : public QTreeView { void SeekTrack(int gap); void FocusOnFilterSignal(QKeyEvent *event); void BackgroundPropertyChanged(); + void ColumnAlignmentChanged(const ColumnAlignmentMap& alignment); protected: // QWidget @@ -194,6 +198,8 @@ class PlaylistView : public QTreeView { bool drag_over_; DynamicPlaylistControls* dynamic_controls_; + + ColumnAlignmentMap column_alignment_; }; #endif // PLAYLISTVIEW_H diff --git a/src/translations/translations.pot b/src/translations/translations.pot index 29be71da2..02ccf50a2 100644 --- a/src/translations/translations.pot +++ b/src/translations/translations.pot @@ -59,7 +59,7 @@ msgstr "" msgid "%1 playlists (%2)" msgstr "" -#: playlist/playlistmanager.cpp:298 +#: playlist/playlistmanager.cpp:302 #, qt-format msgid "%1 selected of" msgstr "" @@ -84,7 +84,7 @@ msgstr "" msgid "%1 songs found (showing %2)" msgstr "" -#: playlist/playlistmanager.cpp:304 +#: playlist/playlistmanager.cpp:308 #, qt-format msgid "%1 tracks" msgstr "" @@ -215,7 +215,7 @@ msgstr "" msgid "1 day" msgstr "" -#: playlist/playlistmanager.cpp:304 +#: playlist/playlistmanager.cpp:308 msgid "1 track" msgstr "" @@ -485,7 +485,7 @@ msgstr "" msgid "After copying..." msgstr "" -#: playlist/playlist.cpp:1096 ui/organisedialog.cpp:52 +#: playlist/playlist.cpp:1085 ui/organisedialog.cpp:52 #: ui/qtsystemtrayicon.cpp:252 ../bin/src/ui_groupbydialog.h:129 #: ../bin/src/ui_groupbydialog.h:142 ../bin/src/ui_groupbydialog.h:155 #: ../bin/src/ui_albumcoversearcher.h:110 @@ -498,7 +498,7 @@ msgstr "" msgid "Album (ideal loudness for all tracks)" msgstr "" -#: playlist/playlist.cpp:1102 ui/organisedialog.cpp:55 +#: playlist/playlist.cpp:1091 ui/organisedialog.cpp:55 #: ../bin/src/ui_edittagdialog.h:658 msgid "Album artist" msgstr "" @@ -640,7 +640,7 @@ msgstr "" msgid "Are you sure you want to reset this song's statistics?" msgstr "" -#: playlist/playlist.cpp:1095 ui/organisedialog.cpp:53 +#: playlist/playlist.cpp:1084 ui/organisedialog.cpp:53 #: ui/qtsystemtrayicon.cpp:250 ../bin/src/ui_groupbydialog.h:130 #: ../bin/src/ui_groupbydialog.h:143 ../bin/src/ui_groupbydialog.h:156 #: ../bin/src/ui_albumcoversearcher.h:106 @@ -708,7 +708,7 @@ msgstr "" msgid "Average image size" msgstr "" -#: playlist/playlist.cpp:1111 ui/organisedialog.cpp:59 +#: playlist/playlist.cpp:1100 ui/organisedialog.cpp:59 #: ../bin/src/ui_edittagdialog.h:638 msgid "BPM" msgstr "" @@ -754,7 +754,7 @@ msgstr "" msgid "Biography from %1" msgstr "" -#: playlist/playlist.cpp:1112 ../bin/src/ui_edittagdialog.h:640 +#: playlist/playlist.cpp:1101 ../bin/src/ui_edittagdialog.h:640 msgid "Bit rate" msgstr "" @@ -972,7 +972,7 @@ msgstr "" msgid "Comma separated list of class:level, level is 0-3" msgstr "" -#: playlist/playlist.cpp:1121 smartplaylists/searchterm.cpp:279 +#: playlist/playlist.cpp:1110 smartplaylists/searchterm.cpp:279 #: ui/organisedialog.cpp:62 ../bin/src/ui_edittagdialog.h:661 msgid "Comment" msgstr "" @@ -985,7 +985,7 @@ msgstr "" msgid "Complete tags automatically..." msgstr "" -#: playlist/playlist.cpp:1103 ui/organisedialog.cpp:56 +#: playlist/playlist.cpp:1092 ui/organisedialog.cpp:56 #: ../bin/src/ui_groupbydialog.h:132 ../bin/src/ui_groupbydialog.h:145 #: ../bin/src/ui_groupbydialog.h:158 ../bin/src/ui_edittagdialog.h:659 msgid "Composer" @@ -1232,11 +1232,11 @@ msgstr "" msgid "Dance" msgstr "" -#: playlist/playlist.cpp:1119 ../bin/src/ui_edittagdialog.h:649 +#: playlist/playlist.cpp:1108 ../bin/src/ui_edittagdialog.h:649 msgid "Date created" msgstr "" -#: playlist/playlist.cpp:1118 ../bin/src/ui_edittagdialog.h:648 +#: playlist/playlist.cpp:1107 ../bin/src/ui_edittagdialog.h:648 msgid "Date modified" msgstr "" @@ -1371,7 +1371,7 @@ msgstr "" msgid "Disabled" msgstr "" -#: playlist/playlist.cpp:1099 ui/organisedialog.cpp:58 +#: playlist/playlist.cpp:1088 ui/organisedialog.cpp:58 #: ../bin/src/ui_edittagdialog.h:655 msgid "Disc" msgstr "" @@ -1728,19 +1728,19 @@ msgstr "" msgid "File formats" msgstr "" -#: playlist/playlist.cpp:1114 ../bin/src/ui_edittagdialog.h:650 +#: playlist/playlist.cpp:1103 ../bin/src/ui_edittagdialog.h:650 msgid "File name" msgstr "" -#: playlist/playlist.cpp:1115 +#: playlist/playlist.cpp:1104 msgid "File name (without path)" msgstr "" -#: playlist/playlist.cpp:1116 ../bin/src/ui_edittagdialog.h:644 +#: playlist/playlist.cpp:1105 ../bin/src/ui_edittagdialog.h:644 msgid "File size" msgstr "" -#: playlist/playlist.cpp:1117 ../bin/src/ui_groupbydialog.h:133 +#: playlist/playlist.cpp:1106 ../bin/src/ui_groupbydialog.h:133 #: ../bin/src/ui_groupbydialog.h:146 ../bin/src/ui_groupbydialog.h:159 #: ../bin/src/ui_edittagdialog.h:646 msgid "File type" @@ -1873,7 +1873,7 @@ msgstr "" msgid "General settings" msgstr "" -#: playlist/playlist.cpp:1101 ui/organisedialog.cpp:61 +#: playlist/playlist.cpp:1090 ui/organisedialog.cpp:61 #: ../bin/src/ui_groupbydialog.h:134 ../bin/src/ui_groupbydialog.h:147 #: ../bin/src/ui_groupbydialog.h:160 ../bin/src/ui_edittagdialog.h:660 msgid "Genre" @@ -2200,7 +2200,7 @@ msgstr "" msgid "Large sidebar" msgstr "" -#: library/library.cpp:66 playlist/playlist.cpp:1108 +#: library/library.cpp:66 playlist/playlist.cpp:1097 #: ../bin/src/ui_edittagdialog.h:641 msgid "Last played" msgstr "" @@ -2279,7 +2279,7 @@ msgstr "" msgid "Leave blank for the default. Examples: \"/dev/dsp\", \"front\", etc." msgstr "" -#: playlist/playlist.cpp:1097 ui/organisedialog.cpp:63 +#: playlist/playlist.cpp:1086 ui/organisedialog.cpp:63 #: ui/qtsystemtrayicon.cpp:255 ../bin/src/ui_edittagdialog.h:636 msgid "Length" msgstr "" @@ -2913,7 +2913,7 @@ msgstr "" msgid "Play artist radio..." msgstr "" -#: playlist/playlist.cpp:1106 ../bin/src/ui_edittagdialog.h:637 +#: playlist/playlist.cpp:1095 ../bin/src/ui_edittagdialog.h:637 msgid "Play count" msgstr "" @@ -2954,8 +2954,8 @@ msgstr "" msgid "Player options" msgstr "" -#: playlist/playlistcontainer.cpp:297 playlist/playlistmanager.cpp:76 -#: playlist/playlistmanager.cpp:369 playlist/playlisttabbar.cpp:292 +#: playlist/playlistcontainer.cpp:297 playlist/playlistmanager.cpp:78 +#: playlist/playlistmanager.cpp:373 playlist/playlisttabbar.cpp:292 msgid "Playlist" msgstr "" @@ -3140,7 +3140,7 @@ msgstr "" msgid "Rate the current song 5 stars" msgstr "" -#: playlist/playlist.cpp:1105 ../bin/src/ui_edittagdialog.h:645 +#: playlist/playlist.cpp:1094 ../bin/src/ui_edittagdialog.h:645 msgid "Rating" msgstr "" @@ -3300,7 +3300,7 @@ msgstr "" msgid "Safely remove the device after copying" msgstr "" -#: playlist/playlist.cpp:1113 ../bin/src/ui_edittagdialog.h:642 +#: playlist/playlist.cpp:1102 ../bin/src/ui_edittagdialog.h:642 msgid "Sample rate" msgstr "" @@ -3344,7 +3344,7 @@ msgstr "" msgid "Scalable sampling rate profile (SSR)" msgstr "" -#: playlist/playlist.cpp:1109 ../bin/src/ui_edittagdialog.h:643 +#: playlist/playlist.cpp:1098 ../bin/src/ui_edittagdialog.h:643 msgid "Score" msgstr "" @@ -3630,7 +3630,7 @@ msgstr "" msgid "Skip backwards in playlist" msgstr "" -#: playlist/playlist.cpp:1107 ../bin/src/ui_edittagdialog.h:639 +#: playlist/playlist.cpp:1096 ../bin/src/ui_edittagdialog.h:639 msgid "Skip count" msgstr "" @@ -3871,7 +3871,7 @@ msgstr "" msgid "The directory %1 is not valid" msgstr "" -#: playlist/playlistmanager.cpp:147 playlist/playlistmanager.cpp:165 +#: playlist/playlistmanager.cpp:151 playlist/playlistmanager.cpp:169 #, qt-format msgid "The playlist '%1' was empty or could not be loaded." msgstr "" @@ -3997,7 +3997,7 @@ msgstr "" msgid "Timezone" msgstr "" -#: playlist/playlist.cpp:1094 ui/organisedialog.cpp:51 +#: playlist/playlist.cpp:1083 ui/organisedialog.cpp:51 #: ui/qtsystemtrayicon.cpp:248 ../bin/src/ui_about.h:142 #: ../bin/src/ui_edittagdialog.h:652 ../bin/src/ui_trackselectiondialog.h:211 msgid "Title" @@ -4035,7 +4035,7 @@ msgstr "" msgid "Total network requests made" msgstr "" -#: playlist/playlist.cpp:1098 ui/organisedialog.cpp:57 +#: playlist/playlist.cpp:1087 ui/organisedialog.cpp:57 #: ../bin/src/ui_edittagdialog.h:653 ../bin/src/ui_trackselectiondialog.h:212 msgid "Track" msgstr "" @@ -4093,8 +4093,8 @@ msgstr "" #: core/song.cpp:148 globalsearch/globalsearchitemdelegate.cpp:166 #: globalsearch/globalsearchitemdelegate.cpp:173 library/librarymodel.cpp:284 #: library/librarymodel.cpp:289 library/librarymodel.cpp:899 -#: playlist/playlistdelegates.cpp:306 playlist/playlistmanager.cpp:377 -#: playlist/playlistmanager.cpp:380 ui/albumcoverchoicecontroller.cpp:111 +#: playlist/playlistdelegates.cpp:306 playlist/playlistmanager.cpp:381 +#: playlist/playlistmanager.cpp:384 ui/albumcoverchoicecontroller.cpp:111 msgid "Unknown" msgstr "" @@ -4210,7 +4210,7 @@ msgid "Variable bit rate" msgstr "" #: globalsearch/globalsearchitemdelegate.cpp:162 library/librarymodel.cpp:221 -#: playlist/playlistmanager.cpp:392 ui/albumcovermanager.cpp:264 +#: playlist/playlistmanager.cpp:396 ui/albumcovermanager.cpp:264 msgid "Various artists" msgstr "" @@ -4342,7 +4342,7 @@ msgstr "" msgid "Would you like to run a full rescan right now?" msgstr "" -#: playlist/playlist.cpp:1100 ui/organisedialog.cpp:60 +#: playlist/playlist.cpp:1089 ui/organisedialog.cpp:60 #: ../bin/src/ui_groupbydialog.h:135 ../bin/src/ui_groupbydialog.h:148 #: ../bin/src/ui_groupbydialog.h:161 ../bin/src/ui_edittagdialog.h:657 msgid "Year" @@ -4523,7 +4523,7 @@ msgstr "" msgid "biggest first" msgstr "" -#: playlist/playlistview.cpp:162 ui/edittagdialog.cpp:421 +#: playlist/playlistview.cpp:161 ui/edittagdialog.cpp:421 msgid "bpm" msgstr "" @@ -4566,7 +4566,7 @@ msgstr "" msgid "in the last" msgstr "" -#: playlist/playlistview.cpp:164 ui/edittagdialog.cpp:423 +#: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:423 msgid "kbps" msgstr ""