Skip to content

Commit

Permalink
Cleanup modelKey code
Browse files Browse the repository at this point in the history
Use stringbuilder.
use function to format pointer
more const

co-authored by [email protected]
  • Loading branch information
poelzi authored and ronso0 committed Aug 6, 2021
1 parent 2299715 commit 4b98db8
Show file tree
Hide file tree
Showing 12 changed files with 61 additions and 43 deletions.
24 changes: 13 additions & 11 deletions src/library/baseexternalplaylistmodel.h
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
#pragma once

#include <QtSql>
#include <QItemDelegate>
#include <QString>
#include <QObject>
#include <QModelIndex>
#include <QObject>
#include <QString>
#include <QStringBuilder>
#include <QtSql>

#include "library/trackmodel.h"
#include "library/basesqltablemodel.h"
#include "library/librarytablemodel.h"
#include "library/dao/playlistdao.h"
#include "library/dao/trackdao.h"
#include "library/librarytablemodel.h"
#include "library/trackmodel.h"
#include "util/string.h"

class BaseExternalPlaylistModel : public BaseSqlTableModel {
Q_OBJECT
Expand All @@ -27,13 +29,13 @@ class BaseExternalPlaylistModel : public BaseSqlTableModel {
TrackId getTrackId(const QModelIndex& index) const override;
bool isColumnInternal(int column) override;
Qt::ItemFlags flags(const QModelIndex &index) const override;

Capabilities getCapabilities() const override;
QString modelKey() override {
return QString("0x%1/%2#%3")
.arg((quintptr)this, 0, 16, QChar('0'))
.arg(m_currentPlaylistId)
.arg(currentSearch());
QString modelKey() const override {
return pointerToQString(this) +
QLatin1String("/") +
QString::number(m_currentPlaylistId) +
QLatin1String("#") +
currentSearch();
}

private:
Expand Down
18 changes: 10 additions & 8 deletions src/library/browse/browsetablemodel.h
Original file line number Diff line number Diff line change
Expand Up @@ -77,14 +77,16 @@ class BrowseTableModel final : public QStandardItemModel, public virtual TrackMo
bool isColumnSortable(int column) const override;
TrackModel::SortColumnId sortColumnIdFromColumnIndex(int index) const override;
int columnIndexFromSortColumnId(TrackModel::SortColumnId sortColumn) const override;
QString modelKey() override {
return QString("0x%1/%2#%3")
.arg((quintptr)this, 0, 16, QChar('0'))
// TODO re-introduce m_current_directory / m_currentPath
// see https://github.com/mixxxdj/mixxx/commit/dcc6f9e71aac3ee56627bb93c4e37e93cf675bfd#diff-12546d29721e9b62bfba012a790de93c1e5c045a9ac4cc47f48d9c7d93b99d70L166
// or make m_pBrowseThread->m_path public
.arg(QString("directory Unknown"))
.arg(currentSearch());
QString modelKey() const override {
// TODO re-introduce m_current_directory / m_currentPath
// see https://github.com/mixxxdj/mixxx/commit/dcc6f9e71aac3ee56627bb93c4e37e93cf675bfd#diff-12546d29721e9b62bfba012a790de93c1e5c045a9ac4cc47f48d9c7d93b99d70L166
// or make m_pBrowseThread->m_path public
//m_current_directory.dir().path() +
return pointerToQString(this) +
QLatin1String("/") +
QString("directory Unknown") +
QLatin1String("#") +
currentSearch();
}

signals:
Expand Down
14 changes: 9 additions & 5 deletions src/library/playlisttablemodel.h
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
#pragma once

#include <QStringBuilder>

#include "library/basesqltablemodel.h"
#include "library/trackset/tracksettablemodel.h"
#include "util/string.h"

class PlaylistTableModel final : public TrackSetTableModel {
Q_OBJECT
Expand Down Expand Up @@ -29,11 +32,12 @@ class PlaylistTableModel final : public TrackSetTableModel {
bool isLocked() final;

Capabilities getCapabilities() const final;
virtual QString modelKey() override {
return QString("0x%1/%2#%3")
.arg((quintptr)this, 0, 16, QChar('0'))
.arg(m_iPlaylistId)
.arg(currentSearch());
virtual QString modelKey() const override {
return pointerToQString(this) +
QLatin1String("/") +
QString::number(m_iPlaylistId) +
QLatin1String("#") +
currentSearch();
}

private slots:
Expand Down
2 changes: 1 addition & 1 deletion src/library/proxytrackmodel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ void ProxyTrackModel::search(const QString& searchText, const QString& extraFilt
}
}

QString ProxyTrackModel::modelKey() {
QString ProxyTrackModel::modelKey() const {
return m_pTrackModel ? m_pTrackModel->modelKey() : QString();
}

Expand Down
2 changes: 1 addition & 1 deletion src/library/proxytrackmodel.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ class ProxyTrackModel : public QSortFilterProxyModel, public TrackModel {

// Inherited from QAbstractItemModel
void sort(int column, Qt::SortOrder order = Qt::AscendingOrder) final;
QString modelKey() override;
QString modelKey() const override;

private:
TrackModel* m_pTrackModel;
Expand Down
10 changes: 6 additions & 4 deletions src/library/trackmodel.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,15 @@

#include <QItemDelegate>
#include <QList>
#include <QStringBuilder>
#include <QVector>
#include <QtSql>

#include "library/coverart.h"
#include "library/dao/settingsdao.h"
#include "track/track_decl.h"
#include "track/trackref.h"
#include "util/string.h"

/// Pure virtual (abstract) class that provides an interface for data models
/// which display track lists.
Expand Down Expand Up @@ -203,10 +205,10 @@ class TrackModel {
virtual void select() {
}

virtual QString modelKey() {
return QString("0x%1#%2")
.arg((quintptr)this, 0, 16, QChar('0'))
.arg(currentSearch());
virtual QString modelKey() const {
return pointerToQString(this) +
QLatin1String("#") +
currentSearch();
}

private:
Expand Down
18 changes: 9 additions & 9 deletions src/library/trackset/crate/cratetablemodel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -182,16 +182,16 @@ void CrateTableModel::removeTracks(const QModelIndexList& indices) {
select();
}

QString CrateTableModel::modelKey() {
QString CrateTableModel::modelKey() const {
if (this->m_selectedCrate.isValid()) {
return QString("0x%1/%2#%3")
.arg((quintptr)this, 0, 16, QChar('0'))
.arg((quintptr)this->m_selectedCrate.value())
//.arg((quintptr)this->m_selectedCrate.CrateId())
.arg(currentSearch());
return pointerToQString(this) +
QLatin1String("/") +
QString::number(m_selectedCrate.value()) +
QLatin1String("#") +
currentSearch();
} else {
return QString("0x%1#%2")
.arg((quintptr)this, 0, 16, QChar('0'))
.arg(currentSearch());
return pointerToQString(this) +
QLatin1String("#") +
currentSearch();
}
}
2 changes: 1 addition & 1 deletion src/library/trackset/crate/cratetablemodel.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class CrateTableModel final : public TrackSetTableModel {
int addTracks(const QModelIndex& index, const QList<QString>& locations) final;

Capabilities getCapabilities() const final;
QString modelKey() override;
QString modelKey() const override;

private:
CrateId m_selectedCrate;
Expand Down
8 changes: 8 additions & 0 deletions src/util/string.h
Original file line number Diff line number Diff line change
Expand Up @@ -99,3 +99,11 @@ inline QString coloredLinkString(
QStringLiteral(";\" href=\"") + baseUrl + extUrl +
QStringLiteral("\">") + text + QStringLiteral("</a>");
}

/// writes the hexadecimal version of the pointer address in a QString
static inline QString pointerToQString(const void* ptr) {
return QString("0x%1").arg(reinterpret_cast<quintptr>(ptr),
QT_POINTER_SIZE * 2,
16,
QChar('0'));
}
2 changes: 1 addition & 1 deletion src/widget/wlibrarytableview.h
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ class WLibraryTableView : public QTableView, public virtual LibraryView {

protected:
void focusInEvent(QFocusEvent* event) override;
virtual QString getStateKey() = 0;
virtual QString getStateKey() const = 0;

private:
const UserSettingsPointer m_pConfig;
Expand Down
2 changes: 1 addition & 1 deletion src/widget/wtracktableview.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1006,7 +1006,7 @@ bool WTrackTableView::hasFocus() const {
return QWidget::hasFocus();
}

QString WTrackTableView::getStateKey() {
QString WTrackTableView::getStateKey() const {
TrackModel* rv = getTrackModel();
if (rv) {
return rv->modelKey();
Expand Down
2 changes: 1 addition & 1 deletion src/widget/wtracktableview.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ class WTrackTableView : public WLibraryTableView {
void keyNotationChanged();

protected:
QString getStateKey() override;
QString getStateKey() const override;

private:
void addToAutoDJ(PlaylistDAO::AutoDJSendLoc loc);
Expand Down

0 comments on commit 4b98db8

Please sign in to comment.