Skip to content

Commit 9a0599b

Browse files
committed
Add track count to Tracks item in sidebar
1 parent 6d8fde5 commit 9a0599b

4 files changed

Lines changed: 37 additions & 2 deletions

File tree

src/library/librarytablemodel.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,3 +101,8 @@ TrackModel::Capabilities LibraryTableModel::getCapabilities() const {
101101
Capability::Properties |
102102
Capability::Sorting;
103103
}
104+
105+
void LibraryTableModel::select() {
106+
BaseSqlTableModel::select();
107+
emit updateTrackCount();
108+
}

src/library/librarytablemodel.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,9 @@ class LibraryTableModel : public BaseSqlTableModel {
1616
// number of successful additions.
1717
int addTracks(const QModelIndex& index, const QList<QString>& locations) final;
1818
TrackModel::Capabilities getCapabilities() const final;
19+
20+
void select() override;
21+
22+
signals:
23+
void updateTrackCount();
1924
};

src/library/mixxxlibraryfeature.cpp

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,9 @@ MixxxLibraryFeature::MixxxLibraryFeature(Library* pLibrary,
3232
m_pLibraryTableModel(nullptr),
3333
m_pSidebarModel(make_parented<TreeItemModel>(this)),
3434
m_pMissingView(nullptr),
35-
m_pHiddenView(nullptr) {
35+
m_pHiddenView(nullptr),
36+
m_pTracksTreeItem(nullptr),
37+
m_trackCount{0} {
3638
QString idColumn = LIBRARYTABLE_ID;
3739
QStringList columns = {
3840
LIBRARYTABLE_ID,
@@ -114,7 +116,13 @@ MixxxLibraryFeature::MixxxLibraryFeature(Library* pLibrary,
114116
pLibrary->trackCollectionManager(),
115117
"mixxx.db.model.library");
116118

119+
connect(m_pLibraryTableModel,
120+
&LibraryTableModel::updateTrackCount,
121+
this,
122+
&MixxxLibraryFeature::slotUpdateTrackCount);
123+
117124
std::unique_ptr<TreeItem> pRootItem = TreeItem::newRoot(this);
125+
m_pTracksTreeItem = pRootItem.get();
118126
pRootItem->appendChild(kMissingTitle);
119127
pRootItem->appendChild(kHiddenTitle);
120128

@@ -149,7 +157,8 @@ void MixxxLibraryFeature::bindLibraryWidget(WLibrary* pLibraryWidget,
149157
}
150158

151159
QVariant MixxxLibraryFeature::title() {
152-
return tr("Tracks");
160+
const QString title = tr("Tracks") + QStringLiteral(" (%1)").arg(m_trackCount);
161+
return title;
153162
}
154163

155164
TreeItemModel* MixxxLibraryFeature::sidebarModel() const {
@@ -183,6 +192,17 @@ void MixxxLibraryFeature::bindSidebarWidget(WLibrarySidebar* pSidebarWidget) {
183192
}
184193
#endif
185194

195+
void MixxxLibraryFeature::slotUpdateTrackCount() {
196+
m_trackCount = m_pLibraryTableModel->rowCount();
197+
198+
if (m_pTracksTreeItem && m_pSidebarModel) {
199+
QModelIndex rootIndex = m_pSidebarModel->getRootIndex();
200+
QModelIndex tracksIndex = m_pSidebarModel->index(
201+
m_pTracksTreeItem->parentRow(), 0, rootIndex);
202+
m_pSidebarModel->triggerRepaint(tracksIndex);
203+
}
204+
}
205+
186206
void MixxxLibraryFeature::activate() {
187207
//qDebug() << "MixxxLibraryFeature::activate()";
188208
emit saveModelState();

src/library/mixxxlibraryfeature.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ class MixxxLibraryFeature final : public LibraryFeature {
5050
public slots:
5151
void activate() override;
5252
void activateChild(const QModelIndex& index) override;
53+
void slotUpdateTrackCount();
5354
#ifdef __ENGINEPRIME__
5455
void onRightClick(const QPoint& globalPos) override;
5556
#endif
@@ -74,6 +75,10 @@ class MixxxLibraryFeature final : public LibraryFeature {
7475
DlgMissing* m_pMissingView;
7576
DlgHidden* m_pHiddenView;
7677

78+
TreeItem* m_pTracksTreeItem;
79+
80+
int m_trackCount;
81+
7782
#ifdef __ENGINEPRIME__
7883
parented_ptr<QAction> m_pExportLibraryAction;
7984

0 commit comments

Comments
 (0)