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);
}
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()
+1 -1
View File
@@ -23,7 +23,7 @@ public:
void setBand(const QString& szBand);
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();
void sortTracks(qint32 sort);
+37 -16
View File
@@ -113,8 +113,6 @@ void cMainWindow::initSettings()
void cMainWindow::loadDB()
{
QSqlQuery query;
QString szOldLeadArtist = "";
QString szOldAlbum = "";
QString szAlbum;
QString szTitle;
QString szTrackNumber;
@@ -123,6 +121,7 @@ void cMainWindow::loadDB()
QString szBand;
QString szComposer;
QDate recordingTime;
QString szFileName;
cAlbum* lpAlbum = 0;
@@ -208,10 +207,11 @@ void cMainWindow::loadDB()
szBand = query.value("band").toString();
szComposer = query.value("composer").toString();
recordingTime = query.value("recordingTime").toDate();
szFileName = query.value("fileName").toString();
lpAlbum = m_albumList.add(szAlbum, szBand);
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);
QStringList header;
header << "Original";
header << tr("Track") << tr("Nr") << tr("Set") << tr("Year") << tr("Filename");
m_lpMusicListModel->setHorizontalHeaderLabels(header);
@@ -242,11 +242,9 @@ void cMainWindow::displayDB()
szOldAlbum = "";
lpBandItem.clear();
lpBandItem.append(new QStandardItem(szOldBand));
lpBandItem[0]->setData(USERROLE_TYPE_BAND, USERROLE_TYPE);
lpBandItem[0]->setData(QVariant::fromValue(lpAlbum), USERROLE_VALUE);
lpBandItem.append(newItem(szOldBand, USERROLE_TYPE_BAND, QVariant::fromValue(lpAlbum), Qt::AlignLeft, true, false, QColor(), QColor(191, 191, 191)));
m_lpMusicListModel->appendRow(lpBandItem);
ui->m_lpMusicList->setFirstColumnSpanned(lpBandItem[0]->index().row(), m_lpMusicListModel->invisibleRootItem()->index(), true);
}
if(szOldAlbum != lpAlbum->album())
@@ -254,12 +252,9 @@ void cMainWindow::displayDB()
szOldAlbum = lpAlbum->album();
lpAlbumItem.clear();
lpAlbumItem.append(new QStandardItem(szOldAlbum));
lpAlbumItem[0]->setData(USERROLE_TYPE_ALBUM, USERROLE_TYPE);
lpAlbumItem[0]->setData(QVariant::fromValue(lpAlbum), USERROLE_VALUE);
lpAlbumItem.append(new QStandardItem(szOldAlbum));
lpAlbumItem.append(newItem(szOldAlbum, USERROLE_TYPE_ALBUM, QVariant::fromValue(lpAlbum), Qt::AlignLeft, false, true, QColor(), QColor(223, 223, 223)));
lpBandItem[0]->appendRow(lpAlbumItem);
ui->m_lpMusicList->setFirstColumnSpanned(lpAlbumItem[0]->index().row(), lpBandItem[0]->index(), true);
}
cTrackList trackList = lpAlbum->trackList();
@@ -268,14 +263,40 @@ void cMainWindow::displayDB()
cTrack* lpTrack = trackList.at(y);
QList<QStandardItem*> lpTrackItem;
lpTrackItem.append(new QStandardItem(lpTrack->title()));
lpTrackItem[0]->setData(USERROLE_TYPE_TRACK, USERROLE_TYPE);
lpTrackItem[0]->setData(QVariant::fromValue(lpTrack), USERROLE_VALUE);
lpTrackItem.append(newItem(lpTrack->title(), USERROLE_TYPE_TRACK, QVariant::fromValue(lpTrack)));
lpTrackItem.append(newItem(lpTrack->trackNumber(), USERROLE_TYPE_TRACK, QVariant::fromValue(lpTrack), Qt::AlignRight));
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);
}
}
}
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*/)
{
/*
+2
View File
@@ -42,6 +42,8 @@ private:
void loadDB();
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:
void initSettings();
private slots:
+21 -6
View File
@@ -54,14 +54,16 @@ private:
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_szTitle(szTitle),
m_szTrackNumber(szTrackNumber),
m_szPartOfSet(szPartOfSet),
m_szBand(szBand),
m_szLeadArtist(szLeadArtist),
m_szComposer(szComposer),
m_recordingTime(recordingTime)
m_recordingTime(recordingTime),
m_szFileName(szFileName)
{
}
@@ -135,20 +137,33 @@ QDate cTrack::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 szBand1 = szBand;
QString szLeadArtist1 = szLeadArtist;
QString szComposer1 = szComposer;
if(szTitle1.isEmpty())
szTitle1 = "*** NO TITLE ***";
if(szBand1.isEmpty())
szBand1 = "*** NO BAND ***";
szBand1 = "*** NO BAND ***";
if(szLeadArtist1.isEmpty())
szLeadArtist1 = "*** NO LEAD ARTIST ***";
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);
return(lpTrackNew);
}
+70 -2
View File
@@ -10,10 +10,70 @@
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
{
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);
cAlbum* album();
@@ -30,20 +90,28 @@ public:
void setBand(const QString& szBand);
QString band();
void setLeadArtist(const QString& szLeadArtist);
QString leadArtist();
void setComposer(const QString& szComposer);
QString composer();
void setRecordingTime(const QDate &recordingTime);
QDate recordingTime();
void setFileName(const QString& szFileName);
QString fileName();
private:
cAlbum* m_lpAlbum;
QString m_szTitle;
QString m_szTrackNumber;
QString m_szPartOfSet;
QString m_szBand;
QString m_szLeadArtist;
QString m_szComposer;
QDate m_recordingTime;
QString m_szFileName;
};
Q_DECLARE_METATYPE(cTrack*)
@@ -51,7 +119,7 @@ Q_DECLARE_METATYPE(cTrack*)
class cTrackList : public QList<cTrack*>
{
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);
};