diff options
Diffstat (limited to 'examples/tutorial/tutorial_music_artistpage.cpp')
-rw-r--r-- | examples/tutorial/tutorial_music_artistpage.cpp | 49 |
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); +} |