This commit is contained in:
Herwig Birke
2018-03-09 10:47:33 +01:00
parent 83080b71cd
commit 3ca276059a
6 changed files with 133 additions and 27 deletions
+2 -2
View File
@@ -114,9 +114,9 @@ QString cAlbum::band()
return(m_szBand); return(m_szBand);
} }
cTrack* cAlbum::addTrack(const QString& szTitle, const QString &szTrackNumber, const QString& szPartOfSet, const QString& szBand, const QString& szComposer, const QDate &recordingTime) cTrack* cAlbum::addTrack(const QString& szTitle, const QString &szTrackNumber, const QString& szPartOfSet, const QString& szBand, const QString& szLeadArtist, const QString& szComposer, const QDate &recordingTime, const QString& szFileName)
{ {
return(m_trackList.add(this, szTitle, szTrackNumber, szPartOfSet, szBand, szComposer, recordingTime)); return(m_trackList.add(this, szTitle, szTrackNumber, szPartOfSet, szBand, szLeadArtist, szComposer, recordingTime, szFileName));
} }
cTrackList cAlbum::trackList() cTrackList cAlbum::trackList()
+1 -1
View File
@@ -23,7 +23,7 @@ public:
void setBand(const QString& szBand); void setBand(const QString& szBand);
QString band(); QString band();
cTrack* addTrack(const QString& szTitle, const QString& szTrackNumber, const QString& szPartOfSet, const QString& szBand, const QString& szComposer, const QDate& recordingTime); cTrack* addTrack(const QString& szTitle, const QString& szTrackNumber, const QString& szPartOfSet, const QString& szBand, const QString &szLeadArtist, const QString& szComposer, const QDate& recordingTime, const QString &szFileName);
cTrackList trackList(); cTrackList trackList();
void sortTracks(qint32 sort); void sortTracks(qint32 sort);
+37 -16
View File
@@ -113,8 +113,6 @@ void cMainWindow::initSettings()
void cMainWindow::loadDB() void cMainWindow::loadDB()
{ {
QSqlQuery query; QSqlQuery query;
QString szOldLeadArtist = "";
QString szOldAlbum = "";
QString szAlbum; QString szAlbum;
QString szTitle; QString szTitle;
QString szTrackNumber; QString szTrackNumber;
@@ -123,6 +121,7 @@ void cMainWindow::loadDB()
QString szBand; QString szBand;
QString szComposer; QString szComposer;
QDate recordingTime; QDate recordingTime;
QString szFileName;
cAlbum* lpAlbum = 0; cAlbum* lpAlbum = 0;
@@ -208,10 +207,11 @@ void cMainWindow::loadDB()
szBand = query.value("band").toString(); szBand = query.value("band").toString();
szComposer = query.value("composer").toString(); szComposer = query.value("composer").toString();
recordingTime = query.value("recordingTime").toDate(); recordingTime = query.value("recordingTime").toDate();
szFileName = query.value("fileName").toString();
lpAlbum = m_albumList.add(szAlbum, szBand); lpAlbum = m_albumList.add(szAlbum, szBand);
if(lpAlbum) if(lpAlbum)
lpAlbum->addTrack(szTitle, szTrackNumber, szPartOfSet, szBand, szComposer, recordingTime); lpAlbum->addTrack(szTitle, szTrackNumber, szPartOfSet, szBand, szLeadArtist, szComposer, recordingTime, szFileName);
} }
} }
@@ -222,7 +222,7 @@ void cMainWindow::displayDB()
m_albumList.sort(SORT_ALBUM_ASC | SORT_BAND_ASC | SORT_TRACK_ASC); m_albumList.sort(SORT_ALBUM_ASC | SORT_BAND_ASC | SORT_TRACK_ASC);
QStringList header; QStringList header;
header << "Original"; header << tr("Track") << tr("Nr") << tr("Set") << tr("Year") << tr("Filename");
m_lpMusicListModel->setHorizontalHeaderLabels(header); m_lpMusicListModel->setHorizontalHeaderLabels(header);
@@ -242,11 +242,9 @@ void cMainWindow::displayDB()
szOldAlbum = ""; szOldAlbum = "";
lpBandItem.clear(); lpBandItem.clear();
lpBandItem.append(new QStandardItem(szOldBand)); lpBandItem.append(newItem(szOldBand, USERROLE_TYPE_BAND, QVariant::fromValue(lpAlbum), Qt::AlignLeft, true, false, QColor(), QColor(191, 191, 191)));
lpBandItem[0]->setData(USERROLE_TYPE_BAND, USERROLE_TYPE);
lpBandItem[0]->setData(QVariant::fromValue(lpAlbum), USERROLE_VALUE);
m_lpMusicListModel->appendRow(lpBandItem); m_lpMusicListModel->appendRow(lpBandItem);
ui->m_lpMusicList->setFirstColumnSpanned(lpBandItem[0]->index().row(), m_lpMusicListModel->invisibleRootItem()->index(), true);
} }
if(szOldAlbum != lpAlbum->album()) if(szOldAlbum != lpAlbum->album())
@@ -254,12 +252,9 @@ void cMainWindow::displayDB()
szOldAlbum = lpAlbum->album(); szOldAlbum = lpAlbum->album();
lpAlbumItem.clear(); lpAlbumItem.clear();
lpAlbumItem.append(new QStandardItem(szOldAlbum)); lpAlbumItem.append(newItem(szOldAlbum, USERROLE_TYPE_ALBUM, QVariant::fromValue(lpAlbum), Qt::AlignLeft, false, true, QColor(), QColor(223, 223, 223)));
lpAlbumItem[0]->setData(USERROLE_TYPE_ALBUM, USERROLE_TYPE);
lpAlbumItem[0]->setData(QVariant::fromValue(lpAlbum), USERROLE_VALUE);
lpAlbumItem.append(new QStandardItem(szOldAlbum));
lpBandItem[0]->appendRow(lpAlbumItem); lpBandItem[0]->appendRow(lpAlbumItem);
ui->m_lpMusicList->setFirstColumnSpanned(lpAlbumItem[0]->index().row(), lpBandItem[0]->index(), true);
} }
cTrackList trackList = lpAlbum->trackList(); cTrackList trackList = lpAlbum->trackList();
@@ -268,14 +263,40 @@ void cMainWindow::displayDB()
cTrack* lpTrack = trackList.at(y); cTrack* lpTrack = trackList.at(y);
QList<QStandardItem*> lpTrackItem; QList<QStandardItem*> lpTrackItem;
lpTrackItem.append(new QStandardItem(lpTrack->title())); lpTrackItem.append(newItem(lpTrack->title(), USERROLE_TYPE_TRACK, QVariant::fromValue(lpTrack)));
lpTrackItem[0]->setData(USERROLE_TYPE_TRACK, USERROLE_TYPE); lpTrackItem.append(newItem(lpTrack->trackNumber(), USERROLE_TYPE_TRACK, QVariant::fromValue(lpTrack), Qt::AlignRight));
lpTrackItem[0]->setData(QVariant::fromValue(lpTrack), USERROLE_VALUE); lpTrackItem.append(newItem(lpTrack->partOfSet(), USERROLE_TYPE_TRACK, QVariant::fromValue(lpTrack), Qt::AlignRight));
lpTrackItem.append(newItem(QString::number(lpTrack->recordingTime().year()), USERROLE_TYPE_TRACK, QVariant::fromValue(lpTrack), Qt::AlignRight));
lpTrackItem.append(newItem(lpTrack->fileName(), USERROLE_TYPE_TRACK, QVariant::fromValue(lpTrack)));
lpAlbumItem[0]->appendRow(lpTrackItem); lpAlbumItem[0]->appendRow(lpTrackItem);
} }
} }
} }
QStandardItem* cMainWindow::newItem(const QString& szText, qint32 type, const QVariant& data, Qt::Alignment align, bool bold, bool italic, const QColor &foreground, const QColor &background)
{
QStandardItem* lpItem = new QStandardItem(szText);
lpItem->setTextAlignment(align);
if(bold || italic)
{
QFont font = lpItem->font();
font.setBold(bold);
font.setItalic(italic);
lpItem->setFont(font);
}
if(foreground.isValid())
lpItem->setForeground(QBrush(foreground));
if(background.isValid())
lpItem->setBackground(QBrush(background));
lpItem->setData(type, USERROLE_TYPE);
lpItem->setData(data, USERROLE_VALUE);
return(lpItem);
}
void cMainWindow::onCustomContextMenuRequested(const QPoint &/*pos*/) void cMainWindow::onCustomContextMenuRequested(const QPoint &/*pos*/)
{ {
/* /*
+2
View File
@@ -42,6 +42,8 @@ private:
void loadDB(); void loadDB();
void displayDB(); void displayDB();
QStandardItem* newItem(const QString& szText, qint32 type, const QVariant &data, Qt::Alignment align = Qt::AlignLeft, bool bold = false, bool italic = false, const QColor& foreground = QColor(), const QColor& background = QColor());
protected: protected:
void initSettings(); void initSettings();
private slots: private slots:
+21 -6
View File
@@ -54,14 +54,16 @@ private:
qint32 m_sort; qint32 m_sort;
}; };
cTrack::cTrack(cAlbum* lpAlbum, const QString& szTitle, const QString &szTrackNumber, const QString& szPartOfSet, const QString& szBand, const QString& szComposer, const QDate& recordingTime) : cTrack::cTrack(cAlbum* lpAlbum, const QString& szTitle, const QString &szTrackNumber, const QString& szPartOfSet, const QString& szBand, const QString& szLeadArtist, const QString& szComposer, const QDate& recordingTime, const QString& szFileName) :
m_lpAlbum(lpAlbum), m_lpAlbum(lpAlbum),
m_szTitle(szTitle), m_szTitle(szTitle),
m_szTrackNumber(szTrackNumber), m_szTrackNumber(szTrackNumber),
m_szPartOfSet(szPartOfSet), m_szPartOfSet(szPartOfSet),
m_szBand(szBand), m_szBand(szBand),
m_szLeadArtist(szLeadArtist),
m_szComposer(szComposer), m_szComposer(szComposer),
m_recordingTime(recordingTime) m_recordingTime(recordingTime),
m_szFileName(szFileName)
{ {
} }
@@ -135,20 +137,33 @@ QDate cTrack::recordingTime()
return(m_recordingTime); return(m_recordingTime);
} }
cTrack* cTrackList::add(cAlbum* lpAlbum, const QString& szTitle, const QString &szTrackNumber, const QString& szPartOfSet, const QString& szBand, const QString& szComposer, const QDate &recordingTime) void cTrack::setFileName(const QString& szFileName)
{
m_szFileName = szFileName;
}
QString cTrack::fileName()
{
return(m_szFileName);
}
cTrack* cTrackList::add(cAlbum* lpAlbum, const QString& szTitle, const QString& szTrackNumber, const QString& szPartOfSet, const QString& szBand, const QString& szLeadArtist, const QString& szComposer, const QDate& recordingTime, const QString& szFileName)
{ {
QString szTitle1 = szTitle; QString szTitle1 = szTitle;
QString szBand1 = szBand; QString szBand1 = szBand;
QString szLeadArtist1 = szLeadArtist;
QString szComposer1 = szComposer; QString szComposer1 = szComposer;
if(szTitle1.isEmpty()) if(szTitle1.isEmpty())
szTitle1 = "*** NO TITLE ***"; szTitle1 = "*** NO TITLE ***";
if(szBand1.isEmpty()) if(szBand1.isEmpty())
szBand1 = "*** NO BAND ***"; szBand1 = "*** NO BAND ***";
if(szLeadArtist1.isEmpty())
szLeadArtist1 = "*** NO LEAD ARTIST ***";
if(szComposer1.isEmpty()) if(szComposer1.isEmpty())
szComposer1 = "*** NO COMPOSER ***"; szComposer1 = "*** NO COMPOSER ***";
cTrack* lpTrackNew = new cTrack(lpAlbum, szTitle1, szTrackNumber, szPartOfSet, szBand1, szComposer1, recordingTime); cTrack* lpTrackNew = new cTrack(lpAlbum, szTitle1, szTrackNumber, szPartOfSet, szBand1, szLeadArtist1, szComposer1, recordingTime, szFileName);
append(lpTrackNew); append(lpTrackNew);
return(lpTrackNew); return(lpTrackNew);
} }
+70 -2
View File
@@ -10,10 +10,70 @@
class cAlbum; class cAlbum;
/*
" fileName TEXT, "
" fileSize INTEGER, "
" fileDate DATE, "
" fileType TEXT, "
" length INTEGER, "
" bitrate INTEGER, "
" sampleRate INTEGER, "
" channels INTEGER, "
" bitsPerSample INTEGER, "
" layer INTEGER, "
" version INTEGER, "
" sampleWidth INTEGER, "
" sampleFrames INTEGER, "
" isEncrypted BOOL, "
" trackGain INTEGER, "
" albumGain INTEGER, "
" trackPeak INTEGER, "
" albumPeak INTEGER, "
" protectionEnabled BOOL, "
" channelMode INTEGER, "
" isCopyrighted BOOL, "
" isOriginal BOOL, "
" copyright TEXT, "
" contentGroupDescription TEXT, "
" subTitle TEXT, "
" originalAlbum TEXT, "
" subTitleOfSet TEXT, "
" internationalStandardRecordingCode TEXT, "
" leadArtist TEXT, "
" conductor TEXT, "
" interpret TEXT, "
" originalArtist TEXT, "
" textWriter TEXT, "
" originalTextWriter TEXT, "
" encodedBy TEXT, "
" beatsPerMinute INTEGER, "
" language TEXT, "
" contentType TEXT, "
" mediaType TEXT, "
" mood TEXT, "
" producedNotice TEXT, "
" publisher TEXT, "
" fileOwner TEXT, "
" internetRadioStationName TEXT, "
" internetRadioStationOwner TEXT, "
" originalFilename TEXT, "
" playlistDelay TEXT, "
" encodingTime INTEGER, "
" originalReleaseTime DATE, "
" releaseTime DATE, "
" taggingTime DATE, "
" swhwSettings TEXT, "
" albumSortOrder TEXT, "
" performerSortOrder TEXT, "
" titleSortOrder TEXT, "
" synchronizedLyrics TEXT, "
" unsynchronizedLyrics TEXT)"))
*/
class cTrack class cTrack
{ {
public: public:
cTrack(cAlbum* lpAlbum, const QString& szTitle, const QString& szTrackNumber, const QString& szPartOfSet, const QString& szBand, const QString& szComposer, const QDate& recordingTime); cTrack(cAlbum* lpAlbum, const QString& szTitle, const QString& szTrackNumber, const QString& szPartOfSet, const QString& szBand, const QString &szLeadArtist, const QString& szComposer, const QDate& recordingTime, const QString &szFileName);
void setAlbum(cAlbum* lpAlbum); void setAlbum(cAlbum* lpAlbum);
cAlbum* album(); cAlbum* album();
@@ -30,20 +90,28 @@ public:
void setBand(const QString& szBand); void setBand(const QString& szBand);
QString band(); QString band();
void setLeadArtist(const QString& szLeadArtist);
QString leadArtist();
void setComposer(const QString& szComposer); void setComposer(const QString& szComposer);
QString composer(); QString composer();
void setRecordingTime(const QDate &recordingTime); void setRecordingTime(const QDate &recordingTime);
QDate recordingTime(); QDate recordingTime();
void setFileName(const QString& szFileName);
QString fileName();
private: private:
cAlbum* m_lpAlbum; cAlbum* m_lpAlbum;
QString m_szTitle; QString m_szTitle;
QString m_szTrackNumber; QString m_szTrackNumber;
QString m_szPartOfSet; QString m_szPartOfSet;
QString m_szBand; QString m_szBand;
QString m_szLeadArtist;
QString m_szComposer; QString m_szComposer;
QDate m_recordingTime; QDate m_recordingTime;
QString m_szFileName;
}; };
Q_DECLARE_METATYPE(cTrack*) Q_DECLARE_METATYPE(cTrack*)
@@ -51,7 +119,7 @@ Q_DECLARE_METATYPE(cTrack*)
class cTrackList : public QList<cTrack*> class cTrackList : public QList<cTrack*>
{ {
public: public:
cTrack* add(cAlbum* lpAlbum, const QString& szTitle, const QString& szTrackNumber, const QString& szPartOfSet, const QString& szBand, const QString& szComposer, const QDate& recordingTime); cTrack* add(cAlbum* lpAlbum, const QString& szTitle, const QString& szTrackNumber, const QString& szPartOfSet, const QString& szBand, const QString& szLeadArtist, const QString& szComposer, const QDate& recordingTime, const QString& szFileName);
void sort(qint32 sort); void sort(qint32 sort);
}; };