aboutsummaryrefslogtreecommitdiff
path: root/examples/tutorial/tutorial_music_artistpage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/tutorial/tutorial_music_artistpage.cpp')
-rw-r--r--examples/tutorial/tutorial_music_artistpage.cpp49
1 files changed, 49 insertions, 0 deletions
diff --git a/examples/tutorial/tutorial_music_artistpage.cpp b/examples/tutorial/tutorial_music_artistpage.cpp
new file mode 100644
index 00000000..51af0bd6
--- /dev/null
+++ b/examples/tutorial/tutorial_music_artistpage.cpp
@@ -0,0 +1,49 @@
+// Filename: artistpage.cpp
+#include "artistpage.h"
+
+#include <MButton>
+#include <MButtonGroup>
+#include <MLabel>
+#include <MSceneManager>
+#include <QGraphicsLinearLayout>
+
+#include "albumpage.h"
+
+ArtistPage::ArtistPage(const Artist *artist, QGraphicsItem *parent)
+ : MApplicationPage(parent), artist(artist)
+{
+ setTitle(artist->name);
+}
+
+void ArtistPage::createContent()
+{
+ QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(Qt::Vertical);
+ centralWidget()->setLayout(layout);
+
+ layout->addItem(new MLabel("Albums:"));
+
+ MButtonGroup *buttonGroup = new MButtonGroup(this);
+
+ Album *album;
+ MButton *albumButton;
+ for (int i = 0; i < artist->albums.count(); i++) {
+ album = artist->albums[i];
+
+ albumButton = new MButton;
+ albumButton->setText(album->title);
+
+ layout->addItem(albumButton);
+ buttonGroup->addButton(albumButton, i);
+ }
+
+ connect(buttonGroup, SIGNAL(buttonClicked(int)),
+ this, SLOT(displayAlbum(int)));
+}
+
+void ArtistPage::displayAlbum(int albumIndex)
+{
+ Album *album = artist->albums[albumIndex];
+
+ AlbumPage *albumPage = new AlbumPage(album);
+ sceneManager()->appearSceneWindow(albumPage, MSceneWindow::DestroyWhenDismissed);
+}