Skip to content

Commit

Permalink
+ added toggle for select item in release list
Browse files Browse the repository at this point in the history
  • Loading branch information
trueromanus committed May 25, 2024
1 parent b2441cc commit 3dec719
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 1 deletion.
12 changes: 12 additions & 0 deletions src/Classes/ListModels/releaseslistmodel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -782,6 +782,18 @@ void ReleasesListModel::selectItem(int id)
emit isHasSelectReleaseChanged();
}

void ReleasesListModel::toggleItem(int id)
{
if (m_selectedReleases->contains(id)) {
m_selectedReleases->remove(id);
} else {
m_selectedReleases->insert(id);
}

refreshFilteredReleaseById(id);
emit isHasSelectReleaseChanged();
}

void ReleasesListModel::deselectItem(int id)
{
m_selectedReleases->remove(id);
Expand Down
1 change: 1 addition & 0 deletions src/Classes/ListModels/releaseslistmodel.h
Original file line number Diff line number Diff line change
Expand Up @@ -235,6 +235,7 @@ class ReleasesListModel : public QAbstractListModel

Q_INVOKABLE void refresh();
Q_INVOKABLE void selectItem(int id);
Q_INVOKABLE void toggleItem(int id);
Q_INVOKABLE void deselectItem(int id);
Q_INVOKABLE void clearSelected();
Q_INVOKABLE void refreshSingleItem(int id);
Expand Down
10 changes: 10 additions & 0 deletions src/Classes/ViewModels/releasesviewmodel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -835,6 +835,16 @@ void ReleasesViewModel::selectRelease(int id) noexcept
}
}

void ReleasesViewModel::toggleRelease(int id) noexcept
{
if (m_selectMode) {
if (isOpenedCard()) hideReleaseCard();
m_items->toggleItem(id);
} else {
showReleaseCard(id);
}
}

void ReleasesViewModel::clearSelectedReleases() noexcept
{
m_items->clearSelected();
Expand Down
1 change: 1 addition & 0 deletions src/Classes/ViewModels/releasesviewmodel.h
Original file line number Diff line number Diff line change
Expand Up @@ -260,6 +260,7 @@ class ReleasesViewModel : public QObject
Q_INVOKABLE QString getVkontakteCommentPage(const QString& code) const noexcept;
Q_INVOKABLE void resetAllChanges() noexcept;
Q_INVOKABLE void selectRelease(int id) noexcept;
Q_INVOKABLE void toggleRelease(int id) noexcept;
Q_INVOKABLE void clearSelectedReleases() noexcept;
Q_INVOKABLE void addReleaseToFavorites(int id) noexcept;
Q_INVOKABLE void removeReleaseFromFavorites(int id) noexcept;
Expand Down
2 changes: 1 addition & 1 deletion src/Views/Releases.qml
Original file line number Diff line number Diff line change
Expand Up @@ -1770,7 +1770,7 @@ Page {
onLeftClicked: {
if (releasesViewModel.isOpenedCard) return;

releasesViewModel.selectRelease(id);
releasesViewModel.toggleRelease(id);
}
onRightClicked: {
multupleMode.checked = !multupleMode.checked;
Expand Down

0 comments on commit 3dec719

Please sign in to comment.