YouTubePlaybackDialog::YouTubePlaybackDialog(const QString &resourceId, const QString &title, QWidget *parent) : Dialog(parent), m_id(resourceId), m_title(title), m_model(new YouTubeStreamModel(this)), m_streamSelector(new ValueSelector(tr("Video format"), this)), m_buttonBox(new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Vertical, this)), m_layout(new QHBoxLayout(this)) { setWindowTitle(tr("Play video")); m_streamSelector->setModel(m_model); m_buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); m_layout->addWidget(m_streamSelector, Qt::AlignBottom); m_layout->addWidget(m_buttonBox, Qt::AlignBottom); m_layout->setStretch(0, 1); connect(m_model, SIGNAL(statusChanged(QYouTube::StreamsRequest::Status)), this, SLOT(onModelStatusChanged(QYouTube::StreamsRequest::Status))); connect(m_streamSelector, SIGNAL(valueChanged(QVariant)), this, SLOT(onStreamChanged())); connect(m_buttonBox, SIGNAL(accepted()), this, SLOT(playVideo())); connect(m_buttonBox, SIGNAL(rejected()), this, SLOT(reject())); }
VimeoPlaylistDialog::VimeoPlaylistDialog(VimeoVideo *video, QWidget *parent) : Dialog(parent), m_video(video), m_playlist(0), m_model(new VimeoPlaylistModel(this)), m_cache(new ImageCache), m_view(new ListView(this)), m_tabBar(new QTabBar(this)), m_stack(new QStackedWidget(this)), m_scrollArea(0), m_titleEdit(0), m_descriptionEdit(0), m_passwordEdit(0), m_label(new QLabel(QString("<p align='center'; style='font-size: 40px; color: %1'>%2</p>") .arg(palette().color(QPalette::Mid).name()).arg(tr("No albums found")), this)), m_buttonBox(new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Vertical, this)), m_layout(new QGridLayout(this)) { setWindowTitle(tr("Add to album")); setMinimumHeight(340); m_view->setModel(m_model); m_view->setItemDelegate(new PlaylistDelegate(m_cache, VimeoPlaylistModel::DateRole, VimeoPlaylistModel::ThumbnailUrlRole, VimeoPlaylistModel::TitleRole, VimeoPlaylistModel::UsernameRole, VimeoPlaylistModel::VideoCountRole, m_view)); m_tabBar->addTab(tr("Albums")); m_tabBar->addTab(tr("New album")); m_tabBar->setExpanding(false); m_tabBar->setDrawBase(false); m_tabBar->setStyleSheet("QTabBar::tab { height: 40px; }"); m_stack->addWidget(m_view); m_stack->addWidget(m_label); m_buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); m_layout->addWidget(m_tabBar, 0, 0); m_layout->addWidget(m_stack, 1, 0); m_layout->addWidget(m_buttonBox, 1, 1, 2, 1); m_layout->setRowStretch(1, 1); connect(m_cache, SIGNAL(imageReady()), this, SLOT(onImageReady())); connect(m_model, SIGNAL(statusChanged(QVimeo::ResourcesRequest::Status)), this, SLOT(onModelStatusChanged(QVimeo::ResourcesRequest::Status))); connect(m_view, SIGNAL(activated(QModelIndex)), this, SLOT(addToPlaylist(QModelIndex))); connect(m_tabBar, SIGNAL(currentChanged(int)), this, SLOT(onTabIndexChanged(int))); connect(m_buttonBox, SIGNAL(rejected()), this, SLOT(reject())); connect(m_buttonBox, SIGNAL(accepted()), this, SLOT(createNewPlaylist())); }
VimeoUsersWindow::VimeoUsersWindow(StackedWindow *parent) : StackedWindow(parent), m_model(new VimeoUserModel(this)), m_cache(new ImageCache), m_view(new ListView(this)), m_delegate(new UserDelegate(m_cache, VimeoUserModel::SubscriberCountRole, VimeoUserModel::ThumbnailUrlRole, VimeoUserModel::UsernameRole, m_view)), m_viewGroup(new QActionGroup(this)), m_listAction(new QAction(tr("List"), this)), m_gridAction(new QAction(tr("Grid"), this)), m_reloadAction(new QAction(tr("Reload"), this)), m_label(new QLabel(QString("<p align='center'; style='font-size: 40px; color: %1'>%2</p>") .arg(palette().color(QPalette::Mid).name()).arg(tr("No users found")), this)) { setWindowTitle(tr("Users")); setCentralWidget(new QWidget); m_view->setModel(m_model); m_view->setItemDelegate(m_delegate); m_listAction->setCheckable(true); m_listAction->setChecked(true); m_gridAction->setCheckable(true); m_viewGroup->setExclusive(true); m_viewGroup->addAction(m_listAction); m_viewGroup->addAction(m_gridAction); m_reloadAction->setEnabled(false); m_label->hide(); m_layout = new QVBoxLayout(centralWidget()); m_layout->addWidget(m_view); m_layout->addWidget(m_label); m_layout->setContentsMargins(0, 0, 0, 0); menuBar()->addAction(m_listAction); menuBar()->addAction(m_gridAction); menuBar()->addAction(m_reloadAction); connect(m_model, SIGNAL(statusChanged(QVimeo::ResourcesRequest::Status)), this, SLOT(onModelStatusChanged(QVimeo::ResourcesRequest::Status))); connect(m_cache, SIGNAL(imageReady()), this, SLOT(onImageReady())); connect(m_view, SIGNAL(activated(QModelIndex)), this, SLOT(showUser(QModelIndex))); connect(m_listAction, SIGNAL(triggered()), this, SLOT(enableListMode())); connect(m_gridAction, SIGNAL(triggered()), this, SLOT(enableGridMode())); connect(m_reloadAction, SIGNAL(triggered()), m_model, SLOT(reload())); if (Settings::instance()->defaultViewMode() == "grid") { m_gridAction->trigger(); } }
SoundCloudPlaylistsWindow::SoundCloudPlaylistsWindow(StackedWindow *parent) : StackedWindow(parent), m_model(new SoundCloudPlaylistModel(this)), m_cache(new ImageCache), m_nowPlayingAction(new NowPlayingAction(this)), m_view(new ListView(this)), m_reloadAction(new QAction(tr("Reload"), this)), m_label(new QLabel(QString("<p align='center'; style='font-size: 40px; color: %1'>%2</p>") .arg(palette().color(QPalette::Mid).name()).arg(tr("No sets found")), this)) { setWindowTitle(tr("Sets")); setCentralWidget(new QWidget); m_view->setModel(m_model); m_view->setItemDelegate(new PlaylistDelegate(m_cache, SoundCloudPlaylistModel::ArtistRole, SoundCloudPlaylistModel::DateRole, SoundCloudPlaylistModel::ThumbnailUrlRole, SoundCloudPlaylistModel::TitleRole, SoundCloudPlaylistModel::TrackCountRole, m_view)); m_reloadAction->setEnabled(false); m_label->hide(); m_layout = new QVBoxLayout(centralWidget()); m_layout->addWidget(m_view); m_layout->addWidget(m_label); m_layout->setContentsMargins(0, 0, 0, 0); menuBar()->addAction(m_reloadAction); menuBar()->addAction(m_nowPlayingAction); connect(m_model, SIGNAL(statusChanged(QSoundCloud::ResourcesRequest::Status)), this, SLOT(onModelStatusChanged(QSoundCloud::ResourcesRequest::Status))); connect(m_cache, SIGNAL(imageReady()), this, SLOT(onImageReady())); connect(m_view, SIGNAL(activated(QModelIndex)), this, SLOT(showPlaylist(QModelIndex))); connect(m_reloadAction, SIGNAL(triggered()), m_model, SLOT(reload())); }
SearchPage::SearchPage(QWidget *parent) : Page(parent), m_model(new SearchModel(this)), m_splitter(new QSplitter(Qt::Horizontal, this)), m_view(new QListView(m_splitter)), m_browser(new QWebView(m_splitter)), m_layout(new QHBoxLayout(this)) { setWindowTitle(tr("Search")); m_splitter->addWidget(m_view); m_splitter->addWidget(m_browser); m_view->setModel(m_model); m_view->setItemDelegate(new ItemDelegate(m_view)); m_view->setContextMenuPolicy(Qt::CustomContextMenu); m_view->setUniformItemSizes(true); m_browser->setContextMenuPolicy(Qt::CustomContextMenu); m_browser->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks); m_browser->settings()->setAttribute(QWebSettings::JavascriptEnabled, false); m_browser->settings()->setUserStyleSheetUrl(QUrl::fromEncoded(STYLE_SHEET)); m_layout->addWidget(m_splitter); m_layout->setContentsMargins(0, 0, 0, 0); m_splitter->restoreState(Settings::searchPageState()); connect(m_model, SIGNAL(settingsRequest(QString, QVariantList)), this, SLOT(showPluginSettingsDialog(QString, QVariantList))); connect(m_model, SIGNAL(statusChanged(SearchModel::Status)), this, SLOT(onModelStatusChanged())); connect(m_view, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(showContextMenu(QPoint))); connect(m_view->selectionModel(), SIGNAL(currentRowChanged(QModelIndex, QModelIndex)), this, SLOT(showItemDetails(QModelIndex))); connect(m_browser, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(showBrowserContextMenu(QPoint))); }
void SoundCloudPlaylistWindow::loadBaseUi() { setWindowTitle(tr("Set")); setCentralWidget(new QWidget); m_view->setModel(m_model); m_view->setItemDelegate(m_delegate); m_view->setContextMenuPolicy(Qt::CustomContextMenu); m_thumbnail->setFixedSize(320, 320); m_thumbnail->setFallbackSource(QUrl::fromLocalFile("/usr/share/icons/hicolor/295x295/hildon/mediaplayer_default_album.png")); m_avatar->setFixedSize(60, 60); m_avatar->setFallbackSource(QUrl::fromLocalFile("/usr/share/icons/hicolor/64x64/hildon/general_default_avatar.png")); m_titleLabel->setWordWrap(true); m_dateLabel->setStyleSheet(QString("color: %1; font-size: 13pt").arg(palette().color(QPalette::Mid).name())); m_artistLabel->setStyleSheet("font-size: 13pt"); m_noTracksLabel->hide(); m_reloadAction->setEnabled(false); m_contextMenu->addAction(m_queueAction); m_contextMenu->addAction(m_downloadAction); m_contextMenu->addAction(m_shareAction); QWidget *scrollWidget = new QWidget(m_scrollArea); QGridLayout *grid = new QGridLayout(scrollWidget); grid->addWidget(m_thumbnail, 0, 0, 1, 2, Qt::AlignLeft); grid->addWidget(m_titleLabel, 1, 0, 1, 2); grid->addWidget(m_avatar, 2, 0, 2, 1, Qt::AlignLeft); grid->addWidget(m_artistLabel, 2, 1, Qt::AlignLeft | Qt::AlignTop); grid->addWidget(m_dateLabel, 3, 1, Qt::AlignLeft | Qt::AlignBottom); grid->addWidget(m_descriptionLabel, 4, 0, 1, 2); grid->setRowStretch(4, 1); grid->setColumnStretch(1, 1); grid->setContentsMargins(0, 0, 0, 0); m_scrollArea->setWidget(scrollWidget); m_scrollArea->setWidgetResizable(true); m_scrollArea->setFixedWidth(330); m_layout = new QHBoxLayout(centralWidget()); m_layout->addWidget(m_scrollArea); m_layout->addWidget(m_view); m_layout->addWidget(m_noTracksLabel); m_layout->setStretch(1, 1); m_layout->setStretch(2, 1); m_layout->setContentsMargins(0, 0, 0, 0); menuBar()->addAction(m_reloadAction); menuBar()->addAction(m_queuePlaylistAction); menuBar()->addAction(m_nowPlayingAction); connect(m_model, SIGNAL(statusChanged(QSoundCloud::ResourcesRequest::Status)), this, SLOT(onModelStatusChanged(QSoundCloud::ResourcesRequest::Status))); connect(m_cache, SIGNAL(imageReady()), this, SLOT(onImageReady())); connect(m_view, SIGNAL(activated(QModelIndex)), this, SLOT(showTrack(QModelIndex))); connect(m_view, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(showContextMenu(QPoint))); connect(m_thumbnail, SIGNAL(clicked()), this, SLOT(playPlaylist())); connect(m_delegate, SIGNAL(thumbnailClicked(QModelIndex)), this, SLOT(playTrack(QModelIndex))); connect(m_reloadAction, SIGNAL(triggered()), m_model, SLOT(reload())); connect(m_queuePlaylistAction, SIGNAL(triggered()), this, SLOT(queuePlaylist())); connect(m_avatar, SIGNAL(clicked()), this, SLOT(showArtist())); connect(m_descriptionLabel, SIGNAL(anchorClicked(QUrl)), this, SLOT(showResource(QUrl))); connect(m_queueAction, SIGNAL(triggered()), this, SLOT(queueTrack())); connect(m_downloadAction, SIGNAL(triggered()), this, SLOT(downloadTrack())); connect(m_shareAction, SIGNAL(triggered()), this, SLOT(shareTrack())); if (!SoundCloud::instance()->userId().isEmpty()) { m_favouriteAction = new QAction(this); m_contextMenu->addAction(m_favouriteAction); connect(m_favouriteAction, SIGNAL(triggered()), this, SLOT(setTrackFavourite())); } }