.
This commit is contained in:
+21
-2
@@ -1,4 +1,5 @@
|
||||
#include "calbum.h"
|
||||
#include "ctrack.h"
|
||||
|
||||
|
||||
cAlbum::cAlbum(const QString& szAlbum, const QString &szLeadArtist) :
|
||||
@@ -27,15 +28,33 @@ QString cAlbum::leadArtist()
|
||||
return(m_szLeadArtist);
|
||||
}
|
||||
|
||||
cTrack* cAlbum::addTrack(const QString& szTitle, const qint16& trackNumber, const QString& szPartOfSet, const QString& szBand, const QString& szComposer, const QDate &recordingTime)
|
||||
{
|
||||
return(m_trackList.add(this, szTitle, trackNumber, szPartOfSet, szBand, szComposer, recordingTime));
|
||||
}
|
||||
|
||||
cTrackList cAlbum::trackList()
|
||||
{
|
||||
return(m_trackList);
|
||||
}
|
||||
|
||||
cAlbum* cAlbumList::add(const QString& szAlbum, const QString& szLeadArtist)
|
||||
{
|
||||
QString szAlbum1 = szAlbum;
|
||||
QString szLeadArtist1 = szLeadArtist;
|
||||
|
||||
if(szAlbum1.isEmpty())
|
||||
szAlbum1 = "*** NO ALBUM ***";
|
||||
if(szLeadArtist1.isEmpty())
|
||||
szLeadArtist1 = "*** NO LEAD ARTIST ***";
|
||||
|
||||
for(int x = 0;x < count();x++)
|
||||
{
|
||||
if(at(x)->album() == szAlbum && at(x)->leadArtist() == szLeadArtist)
|
||||
if(at(x)->album() == szAlbum1 && at(x)->leadArtist() == szLeadArtist1)
|
||||
return(at(x));
|
||||
}
|
||||
|
||||
cAlbum* lpAlbumNew = new cAlbum(szAlbum, szLeadArtist);
|
||||
cAlbum* lpAlbumNew = new cAlbum(szAlbum1, szLeadArtist1);
|
||||
append(lpAlbumNew);
|
||||
return(lpAlbumNew);
|
||||
}
|
||||
|
||||
@@ -2,11 +2,16 @@
|
||||
#define CALBUM_H
|
||||
|
||||
|
||||
#include "ctrack.h"
|
||||
|
||||
#include <QMetaType>
|
||||
#include <QString>
|
||||
#include <QList>
|
||||
|
||||
|
||||
class cTrack;
|
||||
class cTrackList;
|
||||
|
||||
class cAlbum
|
||||
{
|
||||
public:
|
||||
@@ -17,9 +22,13 @@ public:
|
||||
|
||||
void setLeadArtist(const QString& szLeadArtist);
|
||||
QString leadArtist();
|
||||
|
||||
cTrack* addTrack(const QString& szTitle, const qint16& trackNumber, const QString& szPartOfSet, const QString& szBand, const QString& szComposer, const QDate& recordingTime);
|
||||
cTrackList trackList();
|
||||
private:
|
||||
QString m_szAlbum;
|
||||
QString m_szLeadArtist;
|
||||
cTrackList m_trackList;
|
||||
};
|
||||
|
||||
Q_DECLARE_METATYPE(cAlbum*)
|
||||
|
||||
+1
-3
@@ -71,9 +71,7 @@ int cDatabase::initDB()
|
||||
" fileName TEXT, "
|
||||
" fileSize INTEGER, "
|
||||
" fileDate DATE, "
|
||||
" fileType1 INTEGER, "
|
||||
" fileType TEXT, "
|
||||
" length1 INTEGER, "
|
||||
" length INTEGER, "
|
||||
" bitrate INTEGER, "
|
||||
" sampleRate INTEGER, "
|
||||
@@ -95,7 +93,7 @@ int cDatabase::initDB()
|
||||
" album TEXT, "
|
||||
" title TEXT, "
|
||||
" copyright TEXT, "
|
||||
" tracknumber TEXT, "
|
||||
" tracknumber INTEGER, "
|
||||
" contentGroupDescription TEXT, "
|
||||
" subTitle TEXT, "
|
||||
" originalAlbum TEXT, "
|
||||
|
||||
+19
-8
@@ -23,12 +23,14 @@ qDebug() << szFile;
|
||||
|
||||
cMediaInfo* lpMediaInfo = new cMediaInfo;
|
||||
lpMediaInfo->readFromFile(szFile);
|
||||
|
||||
if(lpMediaInfo->isValid())
|
||||
{
|
||||
m_lpDB->getDB().transaction();
|
||||
lpMediaInfo->writeToDB();
|
||||
m_lpDB->getDB().commit();
|
||||
}
|
||||
|
||||
delete lpMediaInfo;
|
||||
}
|
||||
|
||||
@@ -105,7 +107,7 @@ cMainWindow::cMainWindow(QWidget *parent) :
|
||||
// addPath("C:/Users/vet0572/Music");
|
||||
// addPath("C:/Temp/Musik");
|
||||
// addPath("C:/Users/birkeh/Music");
|
||||
// addFile("C:/Users/vet0572/Music/Amy MacDonald/Under Stars (Deluxe)/01 - Dream On.mp3");
|
||||
// addFile("C:/Users/vet0572/Music/Amy MacDonald/Life In A Beautiful Light/CD1/Amy Macdonald - Life In A Beautiful Light - 18 - Slow It Down (Singalong Instrumental Version).mp3");
|
||||
}
|
||||
|
||||
cMainWindow::~cMainWindow()
|
||||
@@ -135,7 +137,7 @@ void cMainWindow::loadDB()
|
||||
QString szAlbum;
|
||||
QString szTitle;
|
||||
qint16 iTrackNumber;
|
||||
qint16 iPartOfSet;
|
||||
QString szPartOfSet;
|
||||
QString szLeadArtist;
|
||||
QString szBand;
|
||||
QString szComposer;
|
||||
@@ -155,7 +157,7 @@ void cMainWindow::loadDB()
|
||||
szAlbum = query.value("album").toString();
|
||||
szTitle = query.value("title").toString();
|
||||
iTrackNumber = query.value("trackNumber").toInt();
|
||||
iPartOfSet = query.value("partOfSet").toInt();
|
||||
szPartOfSet = query.value("partOfSet").toString();
|
||||
szLeadArtist = query.value("leadArtist").toString();
|
||||
szBand = query.value("band").toString();
|
||||
szComposer = query.value("composer").toString();
|
||||
@@ -166,8 +168,11 @@ void cMainWindow::loadDB()
|
||||
szOldLeadArtist = szLeadArtist;
|
||||
szOldAlbum = szAlbum;
|
||||
|
||||
cAlbum* lpAlbum = m_albumList.add(szAlbum, szLeadArtist);
|
||||
lpAlbum = m_albumList.add(szAlbum, szLeadArtist);
|
||||
}
|
||||
|
||||
if(lpAlbum)
|
||||
lpAlbum->addTrack(szTitle, iTrackNumber, szPartOfSet, szBand, szComposer, recordingTime);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -217,10 +222,16 @@ void cMainWindow::displayDB()
|
||||
lpLeadArtistItem.at(0)->appendRow(lpAlbumItem);
|
||||
}
|
||||
|
||||
QList<QStandardItem*> lpTrackItem;
|
||||
lpTrackItem.append(new QStandardItem("track 1"));
|
||||
lpTrackItem.append(new QStandardItem("track 1"));
|
||||
lpAlbumItem.at(0)->appendRow(lpTrackItem);
|
||||
cTrackList trackList = lpAlbum->trackList();
|
||||
for(int y = 0;y < trackList.count();y++)
|
||||
{
|
||||
cTrack* lpTrack = trackList.at(y);
|
||||
|
||||
QList<QStandardItem*> lpTrackItem;
|
||||
lpTrackItem.append(new QStandardItem(lpTrack->title()));
|
||||
lpTrackItem.append(new QStandardItem(lpTrack->title()));
|
||||
lpAlbumItem.at(0)->appendRow(lpTrackItem);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
#include "cdatabase.h"
|
||||
|
||||
#include "calbum.h"
|
||||
#include "ctrack.h"
|
||||
|
||||
#include <QMainWindow>
|
||||
|
||||
|
||||
+16
-55
@@ -487,16 +487,14 @@ qint32 cMediaInfo::writeFilename()
|
||||
}
|
||||
|
||||
if(query.next())
|
||||
query.prepare("UPDATE file SET fileType1=:fileType1, fileType=:fileType, length1=:length1, length=:length, bitrate=:bitrate, sampleRate=:sampleRate, channels=:channels, bitsPerSample=:bitsPerSample, layer=:layer, version=:version, sampleWidth=:sampleWidth, sampleFrames=:sampleFrames, isEncrypted=:isEncrypted, trackGain=:trackGain, albumGain=:albumGain, trackPeak=:trackPeak, albumPeak=:albumPeak, protectionEnabled=:protectionEnabled, channelMode=:channelMode, isCopyrighted=:isCopyrighted, isOriginal=:isOriginal, album=:album, title=:title, copyright=:copyright, tracknumber=:tracknumber, contentGroupDescription=:contentGroupDescription, subTitle=:subTitle, originalAlbum=:originalAlbum, partOfSet=:partOfSet, subTitleOfSet=:subTitleOfSet, internationalStandardRecordingCode=:internationalStandardRecordingCode, leadArtist=:leadArtist, band=:band, conductor=:conductor, interpret=:interpret, originalArtist=:originalArtist, textWriter=:textWriter, originalTextWriter=:originalTextWriter, composer=:composer, encodedBy=:encodedBy, beatsPerMinute=:beatsPerMinute, language=:language, contentType=:contentType, mediaType=:mediaType, mood=:mood, producedNotice=:producedNotice, publisher=:publisher, fileOwner=:fileOwner, internetRadioStationName=:internetRadioStationName, internetRadioStationOwner=:internetRadioStationOwner, originalFilename=:originalFilename, playlistDelay=:playlistDelay, encodingTime=:encodingTime, originalReleaseTime=:originalReleaseTime, recordingTime=:recordingTime, releaseTime=:releaseTime, taggingTime=:taggingTime, swhwSettings=:swhwSettings, albumSortOrder=:albumSortOrder, performerSortOrder=:performerSortOrder, titleSortOrder=:titleSortOrder, synchronizedLyrics=:synchronizedLyrics, unsynchronizedLyrics=:unsynchronizedLyrics WHERE filename=:filename AND filesize=:filesize AND filedate=:filedate;");
|
||||
query.prepare("UPDATE file SET fileType=:fileType, length=:length, bitrate=:bitrate, sampleRate=:sampleRate, channels=:channels, bitsPerSample=:bitsPerSample, layer=:layer, version=:version, sampleWidth=:sampleWidth, sampleFrames=:sampleFrames, isEncrypted=:isEncrypted, trackGain=:trackGain, albumGain=:albumGain, trackPeak=:trackPeak, albumPeak=:albumPeak, protectionEnabled=:protectionEnabled, channelMode=:channelMode, isCopyrighted=:isCopyrighted, isOriginal=:isOriginal, album=:album, title=:title, copyright=:copyright, tracknumber=:tracknumber, contentGroupDescription=:contentGroupDescription, subTitle=:subTitle, originalAlbum=:originalAlbum, partOfSet=:partOfSet, subTitleOfSet=:subTitleOfSet, internationalStandardRecordingCode=:internationalStandardRecordingCode, leadArtist=:leadArtist, band=:band, conductor=:conductor, interpret=:interpret, originalArtist=:originalArtist, textWriter=:textWriter, originalTextWriter=:originalTextWriter, composer=:composer, encodedBy=:encodedBy, beatsPerMinute=:beatsPerMinute, language=:language, contentType=:contentType, mediaType=:mediaType, mood=:mood, producedNotice=:producedNotice, publisher=:publisher, fileOwner=:fileOwner, internetRadioStationName=:internetRadioStationName, internetRadioStationOwner=:internetRadioStationOwner, originalFilename=:originalFilename, playlistDelay=:playlistDelay, encodingTime=:encodingTime, originalReleaseTime=:originalReleaseTime, recordingTime=:recordingTime, releaseTime=:releaseTime, taggingTime=:taggingTime, swhwSettings=:swhwSettings, albumSortOrder=:albumSortOrder, performerSortOrder=:performerSortOrder, titleSortOrder=:titleSortOrder, synchronizedLyrics=:synchronizedLyrics, unsynchronizedLyrics=:unsynchronizedLyrics WHERE filename=:filename AND filesize=:filesize AND filedate=:filedate;");
|
||||
else
|
||||
query.prepare("INSERT INTO file (fileName, fileSize, fileDate, fileType1, fileType, length1, length, bitrate, sampleRate, channels, bitsPerSample, layer, version, sampleWidth, sampleFrames, isEncrypted, trackGain, albumGain, trackPeak, albumPeak, protectionEnabled, channelMode, isCopyrighted, isOriginal, album, title, copyright, tracknumber, contentGroupDescription, subTitle, originalAlbum, partOfSet, subTitleOfSet, internationalStandardRecordingCode, leadArtist, band, conductor, interpret, originalArtist, textWriter, originalTextWriter, composer, encodedBy, beatsPerMinute, language, contentType, mediaType, mood, producedNotice, publisher, fileOwner, internetRadioStationName, internetRadioStationOwner, originalFilename, playlistDelay, encodingTime, originalReleaseTime, recordingTime, releaseTime, taggingTime, swhwSettings, albumSortOrder, performerSortOrder, titleSortOrder, synchronizedLyrics, unsynchronizedLyrics) VALUES (:fileName, :fileSize, :fileDate, :fileType1, :fileType, :length1, :length, :bitrate, :sampleRate, :channels, :bitsPerSample, :layer, :version, :sampleWidth, :sampleFrames, :isEncrypted, :trackGain, :albumGain, :trackPeak, :albumPeak, :protectionEnabled, :channelMode, :isCopyrighted, :isOriginal, :album, :title, :copyright, :tracknumber, :contentGroupDescription, :subTitle, :originalAlbum, :partOfSet, :subTitleOfSet, :internationalStandardRecordingCode, :leadArtist, :band, :conductor, :interpret, :originalArtist, :textWriter, :originalTextWriter, :composer, :encodedBy, :beatsPerMinute, :language, :contentType, :mediaType, :mood, :producedNotice, :publisher, :fileOwner, :internetRadioStationName, :internetRadioStationOwner, :originalFilename, :playlistDelay, :encodingTime, :originalReleaseTime, :recordingTime, :releaseTime, :taggingTime, :swhwSettings, :albumSortOrder, :performerSortOrder, :titleSortOrder, :synchronizedLyrics, :unsynchronizedLyrics);");
|
||||
query.prepare("INSERT INTO file (fileName, fileSize, fileDate, fileType, length, bitrate, sampleRate, channels, bitsPerSample, layer, version, sampleWidth, sampleFrames, isEncrypted, trackGain, albumGain, trackPeak, albumPeak, protectionEnabled, channelMode, isCopyrighted, isOriginal, album, title, copyright, tracknumber, contentGroupDescription, subTitle, originalAlbum, partOfSet, subTitleOfSet, internationalStandardRecordingCode, leadArtist, band, conductor, interpret, originalArtist, textWriter, originalTextWriter, composer, encodedBy, beatsPerMinute, language, contentType, mediaType, mood, producedNotice, publisher, fileOwner, internetRadioStationName, internetRadioStationOwner, originalFilename, playlistDelay, encodingTime, originalReleaseTime, recordingTime, releaseTime, taggingTime, swhwSettings, albumSortOrder, performerSortOrder, titleSortOrder, synchronizedLyrics, unsynchronizedLyrics) VALUES (:fileName, :fileSize, :fileDate, :fileType, :length, :bitrate, :sampleRate, :channels, :bitsPerSample, :layer, :version, :sampleWidth, :sampleFrames, :isEncrypted, :trackGain, :albumGain, :trackPeak, :albumPeak, :protectionEnabled, :channelMode, :isCopyrighted, :isOriginal, :album, :title, :copyright, :tracknumber, :contentGroupDescription, :subTitle, :originalAlbum, :partOfSet, :subTitleOfSet, :internationalStandardRecordingCode, :leadArtist, :band, :conductor, :interpret, :originalArtist, :textWriter, :originalTextWriter, :composer, :encodedBy, :beatsPerMinute, :language, :contentType, :mediaType, :mood, :producedNotice, :publisher, :fileOwner, :internetRadioStationName, :internetRadioStationOwner, :originalFilename, :playlistDelay, :encodingTime, :originalReleaseTime, :recordingTime, :releaseTime, :taggingTime, :swhwSettings, :albumSortOrder, :performerSortOrder, :titleSortOrder, :synchronizedLyrics, :unsynchronizedLyrics);");
|
||||
|
||||
query.bindValue(":fileName", fileName());
|
||||
query.bindValue(":fileSize", fileSize());
|
||||
query.bindValue(":fileDate", fileDate());
|
||||
query.bindValue(":fileType1", fileType1());
|
||||
query.bindValue(":fileType", fileType());
|
||||
query.bindValue(":length1", length1());
|
||||
query.bindValue(":length", length());
|
||||
query.bindValue(":bitrate", bitrate());
|
||||
query.bindValue(":sampleRate", sampleRate());
|
||||
@@ -628,18 +626,23 @@ bool cMediaInfo::writeToDB()
|
||||
void cMediaInfo::readTagV1(ID3v1::Tag* lpTag)
|
||||
{
|
||||
QString szTmp;
|
||||
m_szAlbum = QString::fromStdWString(lpTag->album().toWString());
|
||||
|
||||
if(m_szAlbum.isEmpty())
|
||||
m_szAlbum = QString::fromStdWString(lpTag->album().toWString());
|
||||
szTmp = QString::fromStdWString(lpTag->artist().toWString());
|
||||
if(!szTmp.isEmpty())
|
||||
if(!szTmp.isEmpty() && m_szArtistList.isEmpty())
|
||||
m_szArtistList = szTmp.split("\n");
|
||||
m_szAlbum = QString::fromStdWString(lpTag->album().toWString());
|
||||
m_szComment = QString::fromStdWString(lpTag->comment().toWString());
|
||||
if(m_szComment.isEmpty())
|
||||
m_szComment = QString::fromStdWString(lpTag->comment().toWString());
|
||||
szTmp = QString::fromStdWString(lpTag->genre().toWString());
|
||||
if(!szTmp.isEmpty())
|
||||
if(!szTmp.isEmpty() && m_szGenreList.isEmpty())
|
||||
m_szGenreList = szTmp.split("\n");
|
||||
m_szTitle = QString::fromStdWString(lpTag->title().toWString());
|
||||
m_szTrackNumber = QString("%1").arg(lpTag->track());
|
||||
m_iYear = lpTag->year();
|
||||
if(m_szTitle.isEmpty())
|
||||
m_szTitle = QString::fromStdWString(lpTag->title().toWString());
|
||||
if(m_szTrackNumber.isEmpty())
|
||||
m_szTrackNumber = QString("%1").arg(lpTag->track());
|
||||
if(m_iYear == 0)
|
||||
m_iYear = lpTag->year();
|
||||
}
|
||||
|
||||
void cMediaInfo::readTagV2(ID3v2::Tag* lpTag)
|
||||
@@ -876,48 +879,11 @@ QDateTime cMediaInfo::fileDate()
|
||||
return(fileInfo.created());
|
||||
}
|
||||
|
||||
cMediaInfo::MEDIA_TYPE cMediaInfo::fileType1()
|
||||
cMediaInfo::MEDIA_TYPE cMediaInfo::fileType()
|
||||
{
|
||||
return(m_fileType);
|
||||
}
|
||||
|
||||
QString cMediaInfo::fileType1Text()
|
||||
{
|
||||
switch(m_fileType)
|
||||
{
|
||||
case MEDIA_TYPE_APE:
|
||||
return("APE");
|
||||
case MEDIA_TYPE_ASF:
|
||||
return("ASF");
|
||||
case MEDIA_TYPE_FLAC:
|
||||
return("FLAC");
|
||||
case MEDIA_TYPE_MP4:
|
||||
return("MP4");
|
||||
case MEDIA_TYPE_MPC:
|
||||
return("MPC");
|
||||
case MEDIA_TYPE_MPEG:
|
||||
return("MPEG");
|
||||
case MEDIA_TYPE_TRUEAUDIO:
|
||||
return("TrueAudio");
|
||||
case MEDIA_TYPE_WAVPACK:
|
||||
return("WavPack");
|
||||
case MEDIA_TYPE_WAV:
|
||||
return("Wave");
|
||||
default:
|
||||
return("unknown");
|
||||
}
|
||||
}
|
||||
|
||||
qint32 cMediaInfo::length1()
|
||||
{
|
||||
return(m_iLength);
|
||||
}
|
||||
|
||||
QString cMediaInfo::length1Text()
|
||||
{
|
||||
return("not implemented");
|
||||
}
|
||||
|
||||
qint16 cMediaInfo::bitrate()
|
||||
{
|
||||
return(m_iBitrate);
|
||||
@@ -1170,11 +1136,6 @@ QStringList cMediaInfo::contentType()
|
||||
return(m_szContentType);
|
||||
}
|
||||
|
||||
QString cMediaInfo::fileType()
|
||||
{
|
||||
return(m_szFileType);
|
||||
}
|
||||
|
||||
QStringList cMediaInfo::mediaType()
|
||||
{
|
||||
return(m_szMediaType);
|
||||
|
||||
+2
-5
@@ -80,12 +80,9 @@ public:
|
||||
QString fileName();
|
||||
qint64 fileSize();
|
||||
QDateTime fileDate();
|
||||
MEDIA_TYPE fileType1();
|
||||
QString fileType1Text();
|
||||
cMediaInfo::MEDIA_TYPE fileType();
|
||||
|
||||
//
|
||||
qint32 length1();
|
||||
QString length1Text();
|
||||
qint16 bitrate();
|
||||
QString bitrateText();
|
||||
qint32 sampleRate();
|
||||
@@ -143,7 +140,7 @@ public:
|
||||
// TKEY
|
||||
QStringList language(); // TLAN
|
||||
QStringList contentType(); // TCON
|
||||
QString fileType(); // TFLT
|
||||
// QString fileType(); // TFLT
|
||||
QStringList mediaType(); // TMED
|
||||
QString mood(); // TMOO
|
||||
|
||||
|
||||
+101
@@ -0,0 +1,101 @@
|
||||
#include "ctrack.h"
|
||||
|
||||
|
||||
cTrack::cTrack(cAlbum* lpAlbum, const QString& szTitle, const qint16& trackNumber, const QString& szPartOfSet, const QString& szBand, const QString& szComposer, const QDate& recordingTime) :
|
||||
m_lpAlbum(lpAlbum),
|
||||
m_szTitle(szTitle),
|
||||
m_iTrackNumber(trackNumber),
|
||||
m_szPartOfSet(szPartOfSet),
|
||||
m_szBand(szBand),
|
||||
m_szComposer(szComposer),
|
||||
m_recordingTime(recordingTime)
|
||||
{
|
||||
}
|
||||
|
||||
void cTrack::setAlbum(cAlbum* lpAlbum)
|
||||
{
|
||||
m_lpAlbum = lpAlbum;
|
||||
}
|
||||
|
||||
cAlbum* cTrack::album()
|
||||
{
|
||||
return(m_lpAlbum);
|
||||
}
|
||||
|
||||
void cTrack::setTitle(const QString& szTitle)
|
||||
{
|
||||
m_szTitle = szTitle;
|
||||
}
|
||||
|
||||
QString cTrack::title()
|
||||
{
|
||||
return(m_szTitle);
|
||||
}
|
||||
|
||||
void cTrack::setTrackNumber(const qint16& trackNumber)
|
||||
{
|
||||
m_iTrackNumber = trackNumber;
|
||||
}
|
||||
|
||||
qint16 cTrack::trackNumber()
|
||||
{
|
||||
return(m_iTrackNumber);
|
||||
}
|
||||
|
||||
void cTrack::setPartOfSet(const QString& szPartOfSet)
|
||||
{
|
||||
m_szPartOfSet = szPartOfSet;
|
||||
}
|
||||
|
||||
QString cTrack::partOfSet()
|
||||
{
|
||||
return(m_szPartOfSet);
|
||||
}
|
||||
|
||||
void cTrack::setBand(const QString& szBand)
|
||||
{
|
||||
m_szBand = szBand;
|
||||
}
|
||||
|
||||
QString cTrack::band()
|
||||
{
|
||||
return(m_szBand);
|
||||
}
|
||||
|
||||
void cTrack::setComposer(const QString& szComposer)
|
||||
{
|
||||
m_szComposer = szComposer;
|
||||
}
|
||||
|
||||
QString cTrack::composer()
|
||||
{
|
||||
return(m_szComposer);
|
||||
}
|
||||
|
||||
void cTrack::setRecordingTime(const QDate& recordingTime)
|
||||
{
|
||||
m_recordingTime = recordingTime;
|
||||
}
|
||||
|
||||
QDate cTrack::recordingTime()
|
||||
{
|
||||
return(m_recordingTime);
|
||||
}
|
||||
|
||||
cTrack* cTrackList::add(cAlbum* lpAlbum, const QString& szTitle, const qint16& trackNumber, const QString& szPartOfSet, const QString& szBand, const QString& szComposer, const QDate &recordingTime)
|
||||
{
|
||||
QString szTitle1 = szTitle;
|
||||
QString szBand1 = szBand;
|
||||
QString szComposer1 = szComposer;
|
||||
|
||||
if(szTitle1.isEmpty())
|
||||
szTitle1 = "*** NO TITLE ***";
|
||||
if(szBand1.isEmpty())
|
||||
szBand1 = "*** NO BAND ***";
|
||||
if(szComposer1.isEmpty())
|
||||
szComposer1 = "*** NO COMPOSER ***";
|
||||
|
||||
cTrack* lpTrackNew = new cTrack(lpAlbum, szTitle1, trackNumber, szPartOfSet, szBand1, szComposer1, recordingTime);
|
||||
append(lpTrackNew);
|
||||
return(lpTrackNew);
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
#ifndef CTRACK_H
|
||||
#define CTRACK_H
|
||||
|
||||
|
||||
#include <QMetaType>
|
||||
#include <QString>
|
||||
#include <QDate>
|
||||
#include <QList>
|
||||
|
||||
|
||||
class cAlbum;
|
||||
|
||||
class cTrack
|
||||
{
|
||||
public:
|
||||
cTrack(cAlbum* lpAlbum, const QString& szTitle, const qint16& trackNumber, const QString& szPartOfSet, const QString& szBand, const QString& szComposer, const QDate& recordingTime);
|
||||
|
||||
void setAlbum(cAlbum* lpAlbum);
|
||||
cAlbum* album();
|
||||
|
||||
void setTitle(const QString& szTitle);
|
||||
QString title();
|
||||
|
||||
void setTrackNumber(const qint16& trackNumber);
|
||||
qint16 trackNumber();
|
||||
|
||||
void setPartOfSet(const QString& szPartOfSet);
|
||||
QString partOfSet();
|
||||
|
||||
void setBand(const QString& szBand);
|
||||
QString band();
|
||||
|
||||
void setComposer(const QString& szComposer);
|
||||
QString composer();
|
||||
|
||||
void setRecordingTime(const QDate &recordingTime);
|
||||
QDate recordingTime();
|
||||
|
||||
private:
|
||||
cAlbum* m_lpAlbum;
|
||||
QString m_szTitle;
|
||||
qint16 m_iTrackNumber;
|
||||
QString m_szPartOfSet;
|
||||
QString m_szBand;
|
||||
QString m_szComposer;
|
||||
QDate m_recordingTime;
|
||||
};
|
||||
|
||||
Q_DECLARE_METATYPE(cTrack*)
|
||||
|
||||
class cTrackList : public QList<cTrack*>
|
||||
{
|
||||
public:
|
||||
cTrack* add(cAlbum* lpAlbum, const QString& szTitle, const qint16& trackNumber, const QString& szPartOfSet, const QString& szBand, const QString& szComposer, const QDate& recordingTime);
|
||||
};
|
||||
|
||||
#endif // CTRACK_H
|
||||
+4
-2
@@ -46,7 +46,8 @@ SOURCES += main.cpp\
|
||||
common.cpp \
|
||||
cpixmap.cpp \
|
||||
cmusicviewitemdelegate.cpp \
|
||||
calbum.cpp
|
||||
calbum.cpp \
|
||||
ctrack.cpp
|
||||
|
||||
HEADERS += cmainwindow.h \
|
||||
cmediainfo.h \
|
||||
@@ -56,6 +57,7 @@ HEADERS += cmainwindow.h \
|
||||
common.h \
|
||||
cpixmap.h \
|
||||
cmusicviewitemdelegate.h \
|
||||
calbum.h
|
||||
calbum.h \
|
||||
ctrack.h
|
||||
|
||||
FORMS += cmainwindow.ui
|
||||
|
||||
Reference in New Issue
Block a user