Compare commits

..

6 Commits
1.2.1 ... 1.2.2

Author SHA1 Message Date
Jonas Kvinge
df0ec6b709 Release 1.2.2 2024-11-23 17:25:42 +01:00
Jonas Kvinge
376af26f0e Playlist: Move new QMimeData 2024-11-23 15:19:31 +01:00
Jonas Kvinge
9bff55e1ee PlaylistView: Ignore invalid QHeaderView::sectionResized
Workaround a possible Qt bug: moving a song in the playlist triggers `QHeaderView::sectionResized` with the state reset for each column, this causes an an invalid state for the last column since SetHeaderState is called before the last column state is restored, which again is used when restoring the playlist columns after switching to different playlist. To workaround this, only call SetHeaderState when the new column size is not zero.
2024-11-23 11:07:15 +01:00
Jonas Kvinge
8f7e29f503 PlaylistView: Use constants 2024-11-23 10:56:29 +01:00
Jonas Kvinge
c3aa885a0f SmartPlaylistSearchPreview: Remove early SetItemDelegates
It's called too early before MoodbarLoader is set, Init() already calls SetItemDelegates.

Fixes #1609
2024-11-22 17:04:42 +01:00
Jonas Kvinge
77ea5729c3 Turn on git revision 2024-11-21 18:34:29 +01:00
7 changed files with 26 additions and 9 deletions

View File

@@ -2,6 +2,13 @@ Strawberry Music Player
=======================
ChangeLog
Version 1.2.2 (2024.11.23):
Bugfixes:
* Fixed crash when creating a new smart playlist (#1609).
* Fixed last playlist column being added when dragging a song and switching playlists.
Version 1.2.1 (2024.11.21):
This release features major restructuring of the codebase, moving source files,

View File

@@ -1,6 +1,6 @@
set(STRAWBERRY_VERSION_MAJOR 1)
set(STRAWBERRY_VERSION_MINOR 2)
set(STRAWBERRY_VERSION_PATCH 1)
set(STRAWBERRY_VERSION_PATCH 2)
#set(STRAWBERRY_VERSION_PRERELEASE rc1)
set(INCLUDE_GIT_REVISION OFF)

View File

@@ -51,6 +51,7 @@
</screenshots>
<update_contact>eclipseo@fedoraproject.org</update_contact>
<releases>
<release version="1.2.2" date="2024-11-23"/>
<release version="1.2.1" date="2024-11-21"/>
<release version="1.1.3" date="2024-09-21"/>
<release version="1.1.2" date="2024-09-12"/>

View File

@@ -1295,8 +1295,6 @@ QMimeData *Playlist::mimeData(const QModelIndexList &indexes) const {
// We only want one index per row, but we can't just take column 0 because the user might have hidden it.
const int first_column = indexes.first().column();
QMimeData *mimedata = new QMimeData;
QList<QUrl> urls;
QList<int> rows;
for (const QModelIndex &idx : indexes) {
@@ -1308,7 +1306,6 @@ QMimeData *Playlist::mimeData(const QModelIndexList &indexes) const {
QBuffer buf;
if (!buf.open(QIODevice::WriteOnly)) {
delete mimedata;
return nullptr;
}
QDataStream stream(&buf);
@@ -1321,6 +1318,7 @@ QMimeData *Playlist::mimeData(const QModelIndexList &indexes) const {
stream.writeRawData(reinterpret_cast<const char*>(&pid), sizeof(pid));
buf.close();
QMimeData *mimedata = new QMimeData;
mimedata->setUrls(urls);
mimedata->setData(QLatin1String(kRowsMimetype), buf.data());

View File

@@ -150,7 +150,7 @@ PlaylistView::PlaylistView(QWidget *parent)
setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
#endif
QObject::connect(header_, &PlaylistHeader::sectionResized, this, &PlaylistView::SetHeaderState);
QObject::connect(header_, &PlaylistHeader::sectionResized, this, &PlaylistView::HeaderSectionResized);
QObject::connect(header_, &PlaylistHeader::sectionMoved, this, &PlaylistView::SetHeaderState);
QObject::connect(header_, &PlaylistHeader::sortIndicatorChanged, this, &PlaylistView::SetHeaderState);
QObject::connect(header_, &PlaylistHeader::SectionVisibilityChanged, this, &PlaylistView::SetHeaderState);
@@ -423,6 +423,17 @@ void PlaylistView::RestoreHeaderState() {
}
void PlaylistView::HeaderSectionResized(const int logical_index, const int old_size, const int new_size) {
Q_UNUSED(logical_index)
Q_UNUSED(old_size)
if (new_size != 0) {
SetHeaderState();
}
}
void PlaylistView::ReloadBarPixmaps() {
currenttrack_bar_left_ = LoadBarPixmap(u":/pictures/currenttrack_bar_left.png"_s, true);
@@ -1294,9 +1305,9 @@ void PlaylistView::SaveSettings() {
Settings s;
s.beginGroup(PlaylistSettings::kSettingsGroup);
s.setValue("state_version", header_state_version_);
s.setValue("state", header_->SaveState());
s.setValue("column_alignments", QVariant::fromValue<ColumnAlignmentMap>(column_alignment_));
s.setValue(PlaylistSettings::kStateVersion, header_state_version_);
s.setValue(PlaylistSettings::kState, header_->SaveState());
s.setValue(PlaylistSettings::kColumnAlignments, QVariant::fromValue<ColumnAlignmentMap>(column_alignment_));
s.setValue(PlaylistSettings::kRatingLocked, rating_locked_);
s.endGroup();

View File

@@ -160,6 +160,7 @@ class PlaylistView : public QTreeView {
private Q_SLOTS:
void Update() { update(); }
void SetHeaderState();
void HeaderSectionResized(const int logical_index, const int old_size, const int new_size);
void InhibitAutoscrollTimeout();
void MaybeAutoscroll(const Playlist::AutoScroll autoscroll);
void InvalidateCachedCurrentPixmap();

View File

@@ -75,7 +75,6 @@ void SmartPlaylistSearchPreview::Init(const SharedPtr<Player> player,
model_ = new Playlist(nullptr, nullptr, nullptr, collection_backend_, nullptr, -1, QString(), false, this);
ui_->tree->setModel(model_);
ui_->tree->SetPlaylist(model_);
ui_->tree->SetItemDelegates();
ui_->tree->Init(player,
playlist_manager,