Model View Tutorial Part1 CdRack/de: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
<div class="factbox right"> | |||
===Table of Content=== | |||
* [[#7b37c43d75dfae1999f950703dda0786|Die Klasse CdRack]] | |||
* [[#2f816d8955c5ae93f176f57f0f64db91|Die Klasse CdDisk]] | |||
</div> | |||
[http://qt.io/groups/qt_german/wiki/Model_View_Tutorial_Teil1_CVirtualCdRack ←Allgemeines: Klasse VirtualCdRack]<br />[http://qt.io/groups/qt_german/wiki/Model_View_Tutorial ↑Übersicht Model/View Tutorial:CD Verwaltung↑]<br />[http://qt.io/groups/qt_german/wiki/Model_View_Tutorial_Teil1 Teil 1: Read Only Modell→] | |||
=Die Klasse CdRack= | |||
Die Klasse CdRack stellt den Datenlayer der Applikation dar. Sie speichert die einzelnen CDs in einer Liste und auch die Genres. Mittels der üblichen File-Menüs können die Daten in einer <span class="caps">XML</span>-Datei gespeichert bzw. aus einer <span class="caps">XML</span>-Datei geladen werden. | |||
Die Methode '''clear()''' löscht den gesamten Inhalt und löst das Signal '''reset''' aus.<br /> Mittels '''addCD(…)''' können CDs hinzugefügt werden. Es wird das Signal '''inserted(int)''' ausgelöst.<br /> Mittels '''changeDisk(int, const CdDisk&)''' können die Daten einer CD geändert werden. | |||
<div class="cpp-qt geshi"> | |||
# <div class="de1"><span class="kw2">class</span> CdRack <span class="sy0">:</span> <span class="kw2">public</span> [http://doc.qt.io/QObject.html <span class="kw5">QObject</span>]</div> | |||
# <div class="de1"><span class="br0">{</span></div> | |||
# <div class="de1"> <span class="kw2">Q_OBJECT</span></div> | |||
# <div class="de1"><span class="kw2">public</span><span class="sy0">:</span></div> | |||
# <div class="de2"> <span class="co1">// ----- construction --------------------------------------------------------------------------</span></div> | |||
# <div class="de1"> CdRack<span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></div> | |||
# <div class="de1"> </div> | |||
# <div class="de1"> <span class="co1">// ----- methods -------------------------------------------------------------------------------</span></div> | |||
# <div class="de1"> <span class="kw4">void</span> changeDisk<span class="br0">(</span><span class="kw4">int</span> nIndex<span class="sy0">,</span> <span class="kw4">const</span> CdDisk<span class="sy0">&</span> newData<span class="br0">)</span><span class="sy0">;</span></div> | |||
# <div class="de2"> <span class="kw4">void</span> addCD<span class="br0">(</span><span class="kw4">const</span> CdDisk<span class="sy0">&</span> newData<span class="br0">)</span><span class="sy0">;</span></div> | |||
# <div class="de1"> <span class="kw4">void</span> clear<span class="br0">(</span><span class="kw4">void</span><span class="br0">)</span><span class="sy0">;</span></div> | |||
# <div class="de1"> <span class="kw4">bool</span> load<span class="br0">(</span>[http://doc.qt.io/QIODevice.html <span class="kw5">QIODevice</span>] <span class="sy0">*</span>device<span class="br0">)</span><span class="sy0">;</span></div> | |||
# <div class="de1"> <span class="kw4">bool</span> save<span class="br0">(</span>[http://doc.qt.io/QIODevice.html <span class="kw5">QIODevice</span>] <span class="sy0">*</span>device<span class="br0">)</span><span class="sy0">;</span></div> | |||
# <div class="de1"> </div> | |||
# <div class="de2"> <span class="co1">// ----- accessors -----------------------------------------------------------------------------</span></div> | |||
# <div class="de1"> <span class="kw4">int</span> size<span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></div> | |||
# <div class="de1"> <span class="kw4">const</span> CdDisk<span class="sy0">&</span> at<span class="br0">(</span><span class="kw4">int</span> i<span class="br0">)</span> const<span class="sy0">;</span></div> | |||
# <div class="de1"> <span class="kw4">bool</span> isModified<span class="br0">(</span><span class="br0">)</span> const<span class="sy0">;</span></div> | |||
# <div class="de1"> <span class="kw4">void</span> setModified<span class="br0">(</span><span class="kw4">bool</span> bModified<span class="br0">)</span><span class="sy0">;</span></div> | |||
# <div class="de2"> <span class="kw4">const</span> [http://doc.qt.io/QString.html <span class="kw5">QString</span>]<span class="sy0">&</span> errorString<span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></div> | |||
# <div class="de1"> </div> | |||
# <div class="de1"><span class="kw2">signals</span><span class="sy0">:</span></div> | |||
# <div class="de1"> <span class="kw4">void</span> reset<span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></div> | |||
# <div class="de1"> <span class="kw4">void</span> contentsChanged<span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></div> | |||
# <div class="de2"> <span class="kw4">void</span> inserted<span class="br0">(</span><span class="kw4">int</span> nPosition<span class="br0">)</span><span class="sy0">;</span></div> | |||
# <div class="de1"> <span class="kw4">void</span> inserted<span class="br0">(</span><span class="kw4">int</span> nFirst<span class="sy0">,</span> <span class="kw4">int</span> nLast<span class="br0">)</span><span class="sy0">;</span></div> | |||
# <div class="de1"> </div> | |||
# <div class="de1"><span class="kw2">private</span><span class="sy0">:</span></div> | |||
# <div class="de1"> <span class="co1">// ----- privat helpers ------------------------------------------------------------------------</span></div> | |||
# <div class="de2"> <span class="kw4">void</span> writeCd<span class="br0">(</span>[http://doc.qt.io/QXmlStreamWriter.html <span class="kw5">QXmlStreamWriter</span>]<span class="sy0">&</span> xmlStream<span class="sy0">,</span> <span class="kw4">const</span> CdDisk<span class="sy0">&</span> disk<span class="br0">)</span> const<span class="sy0">;</span></div> | |||
# <div class="de1"> <span class="kw4">void</span> readCdRack<span class="br0">(</span>[http://doc.qt.io/QXmlStreamReader.html <span class="kw5">QXmlStreamReader</span>]<span class="sy0">&</span> xmlStream<span class="br0">)</span><span class="sy0">;</span></div> | |||
# <div class="de1"> </div> | |||
# <div class="de1"> <span class="co1">// ----- members -------------------------------------------------------------------------------</span></div> | |||
# <div class="de1"> [http://doc.qt.io/QList.html <span class="kw5">QList</span>]<span class="sy0"><</span>CdDisk<span class="sy0">></span> m_cds<span class="sy0">;</span></div> | |||
# <div class="de2"> <span class="kw4">bool</span> m_bModified<span class="sy0">;</span></div> | |||
# <div class="de1"> [http://doc.qt.io/QString.html <span class="kw5">QString</span>] m_errorString<span class="sy0">;</span></div> | |||
# <div class="de1"> [http://doc.qt.io/QStringList.html <span class="kw5">QStringList</span>] m_genres<span class="sy0">;</span></div> | |||
# <div class="de1"><span class="br0">}</span><span class="sy0">;</span></div> | |||
</div> | |||
=Die Klasse CdDisk= | |||
Die Klasse CdDisk beinhaltet die Daten einer CD. | |||
<div class="cpp-qt geshi"> | |||
# <div class="de1"><span class="kw2">class</span> CdDisk</div> | |||
# <div class="de1"><span class="br0">{</span></div> | |||
# <div class="de1"><span class="kw2">public</span><span class="sy0">:</span></div> | |||
# <div class="de1"> CdDisk<span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></div> | |||
# <div class="de2"> </div> | |||
# <div class="de1"> [http://doc.qt.io/QString.html <span class="kw5">QString</span>] m_title<span class="sy0">;</span></div> | |||
# <div class="de1"> [http://doc.qt.io/QString.html <span class="kw5">QString</span>] m_author<span class="sy0">;</span></div> | |||
# <div class="de1"> [http://doc.qt.io/QString.html <span class="kw5">QString</span>] m_genre<span class="sy0">;</span></div> | |||
# <div class="de1"> <span class="kw4">int</span> m_year<span class="sy0">;</span></div> | |||
# <div class="de2"><span class="br0">}</span><span class="sy0">;</span></div> | |||
</div> |
Revision as of 13:56, 25 February 2015
Table of Content
←Allgemeines: Klasse VirtualCdRack
↑Übersicht Model/View Tutorial:CD Verwaltung↑
Teil 1: Read Only Modell→
Die Klasse CdRack
Die Klasse CdRack stellt den Datenlayer der Applikation dar. Sie speichert die einzelnen CDs in einer Liste und auch die Genres. Mittels der üblichen File-Menüs können die Daten in einer XML-Datei gespeichert bzw. aus einer XML-Datei geladen werden.
Die Methode clear() löscht den gesamten Inhalt und löst das Signal reset aus.
Mittels addCD(…) können CDs hinzugefügt werden. Es wird das Signal inserted(int) ausgelöst.
Mittels changeDisk(int, const CdDisk&) können die Daten einer CD geändert werden.
- {
- Q_OBJECT
- public:
- // ----- construction --------------------------------------------------------------------------
- CdRack();
- // ----- methods -------------------------------------------------------------------------------
- void changeDisk(int nIndex, const CdDisk& newData);
- void addCD(const CdDisk& newData);
- void clear(void);
- // ----- accessors -----------------------------------------------------------------------------
- int size();
- const CdDisk& at(int i) const;
- bool isModified() const;
- void setModified(bool bModified);
- signals:
- void reset();
- void contentsChanged();
- void inserted(int nPosition);
- void inserted(int nFirst, int nLast);
- private:
- // ----- privat helpers ------------------------------------------------------------------------
- // ----- members -------------------------------------------------------------------------------
- bool m_bModified;
- QString m_errorString;
- QStringList m_genres;
- };
Die Klasse CdDisk
Die Klasse CdDisk beinhaltet die Daten einer CD.