DevicesPage::DevicesPage(QWidget *p) : SinglePageWidget(p) { copyAction = new Action(Icons::self()->downloadIcon, i18n("Copy To Library"), this); ToolButton *copyToLibraryButton=new ToolButton(this); copyToLibraryButton->setDefaultAction(copyAction); #ifdef ENABLE_REMOTE_DEVICES forgetDeviceAction=new Action(Icon("list-remove"), i18n("Forget Device"), this); connect(forgetDeviceAction, SIGNAL(triggered()), this, SLOT(forgetRemoteDevice())); #endif connect(DevicesModel::self()->connectAct(), SIGNAL(triggered()), this, SLOT(toggleDevice())); connect(DevicesModel::self()->disconnectAct(), SIGNAL(triggered()), this, SLOT(toggleDevice())); connect(DevicesModel::self(), SIGNAL(updated(QModelIndex)), this, SLOT(updated(QModelIndex))); connect(view, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(itemDoubleClicked(const QModelIndex &))); connect(view, SIGNAL(searchItems()), this, SLOT(searchItems())); connect(view, SIGNAL(itemsSelected(bool)), SLOT(controlActions())); connect(copyAction, SIGNAL(triggered()), this, SLOT(copyToLibrary())); connect(DevicesModel::self()->configureAct(), SIGNAL(triggered()), this, SLOT(configureDevice())); connect(DevicesModel::self()->refreshAct(), SIGNAL(triggered()), this, SLOT(refreshDevice())); #if defined CDDB_FOUND || defined MUSICBRAINZ5_FOUND connect(DevicesModel::self()->editAct(), SIGNAL(triggered()), this, SLOT(editDetails())); connect(DevicesModel::self(), SIGNAL(matches(const QString &, const QList<CdAlbum> &)), SLOT(cdMatches(const QString &, const QList<CdAlbum> &))); #endif proxy.setSourceModel(DevicesModel::self()); view->setModel(&proxy); view->setRootIsDecorated(false); view->setSearchResetLevel(1); Configuration config(metaObject()->className()); view->load(config); MenuButton *menu=new MenuButton(this); menu->addAction(createViewMenu(QList<ItemView::Mode>() << ItemView::Mode_BasicTree << ItemView::Mode_SimpleTree << ItemView::Mode_DetailedTree << ItemView::Mode_List)); menu->addSeparator(); menu->addAction(DevicesModel::self()->configureAct()); menu->addAction(DevicesModel::self()->refreshAct()); #ifdef ENABLE_REMOTE_DEVICES menu->addSeparator(); Action *addRemote=new Action(Icon("network-server"), i18n("Add Device"), this); connect(addRemote, SIGNAL(triggered()), this, SLOT(addRemoteDevice())); menu->addAction(addRemote); menu->addAction(forgetDeviceAction); #endif init(ReplacePlayQueue|AppendToPlayQueue, QList<QWidget *>() << menu, QList<QWidget *>() << copyToLibraryButton); view->addAction(copyAction); view->addAction(StdActions::self()->organiseFilesAction); view->addAction(StdActions::self()->editTagsAction); #ifdef ENABLE_REPLAYGAIN_SUPPORT view->addAction(StdActions::self()->replaygainAction); #endif #ifdef ENABLE_REMOTE_DEVICES view->addSeparator(); view->addAction(forgetDeviceAction); #endif view->addSeparator(); view->addAction(StdActions::self()->deleteSongsAction); }
DynamicPage::DynamicPage(QWidget *p) : QWidget(p) { setupUi(this); addAction = new Action(Icon("document-new"), i18n("Add"), this); editAction = new Action(Icons::self()->editIcon, i18n("Edit"), this); removeAction = new Action(Icon("list-remove"), i18n("Remove"), this); toggleAction = new Action(this); addBtn->setDefaultAction(addAction); editBtn->setDefaultAction(editAction); removeBtn->setDefaultAction(removeAction); startBtn->setDefaultAction(Dynamic::self()->startAct()); stopBtn->setDefaultAction(Dynamic::self()->stopAct()); view->addAction(editAction); view->addAction(removeAction); view->addAction(Dynamic::self()->startAct()); connect(view, SIGNAL(itemsSelected(bool)), this, SLOT(controlActions())); connect(view, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(toggle())); connect(view, SIGNAL(searchItems()), this, SLOT(searchItems())); connect(MPDConnection::self(), SIGNAL(dynamicSupport(bool)), this, SLOT(remoteDynamicSupport(bool))); connect(addAction, SIGNAL(triggered()), SLOT(add())); connect(editAction, SIGNAL(triggered()), SLOT(edit())); connect(removeAction, SIGNAL(triggered()), SLOT(remove())); connect(Dynamic::self()->startAct(), SIGNAL(triggered()), SLOT(start())); connect(Dynamic::self()->stopAct(), SIGNAL(triggered()), SLOT(stop())); connect(toggleAction, SIGNAL(triggered()), SLOT(toggle())); connect(Dynamic::self(), SIGNAL(running(bool)), SLOT(running(bool))); connect(Dynamic::self(), SIGNAL(loadingList()), view, SLOT(showSpinner())); connect(Dynamic::self(), SIGNAL(loadedList()), view, SLOT(hideSpinner())); #ifdef Q_OS_WIN remoteRunningLabel->setType(StatusLabel::Error); enableWidgets(false); #else remoteRunningLabel->setVisible(false); #endif Dynamic::self()->stopAct()->setEnabled(false); proxy.setSourceModel(Dynamic::self()); view->setModel(&proxy); view->setDeleteAction(removeAction); view->setMode(ItemView::Mode_List); controlActions(); view->load(metaObject()->className()); }
SinglePageWidget::SinglePageWidget(QWidget *p) : QWidget(p) , btnFlags(0) , refreshAction(0) { QGridLayout *layout=new QGridLayout(this); view=new ItemView(this); layout->addWidget(view, 1, 0, 1, 5); layout->addItem(new QSpacerItem(0, 0, QSizePolicy::MinimumExpanding, QSizePolicy::Preferred), 2, 1, 1, 1); layout->addWidget(new SizeWidget(this), 2, 2, 1, 1); layout->addItem(new QSpacerItem(0, 0, QSizePolicy::MinimumExpanding, QSizePolicy::Preferred), 2, 3, 1, 1); layout->setMargin(0); layout->setSpacing(0); connect(view, SIGNAL(searchItems()), this, SIGNAL(searchItems())); connect(view, SIGNAL(itemsSelected(bool)), this, SLOT(controlActions())); connect(this, SIGNAL(add(const QStringList &, int, quint8)), MPDConnection::self(), SLOT(add(const QStringList &, int, quint8))); connect(this, SIGNAL(addSongsToPlaylist(const QString &, const QStringList &)), MPDConnection::self(), SLOT(addToPlaylist(const QString &, const QStringList &))); }
SinglePageWidget::SinglePageWidget(QWidget *p) : QWidget(p) , btnFlags(0) , refreshAction(nullptr) { QGridLayout *layout=new QGridLayout(this); view=new ItemView(this); QWidget *sizer=new QWidget(this); Application::fixSize(sizer); layout->addWidget(view, 1, 0, 1, 5); layout->addWidget(sizer, 2, 2, 1, 1); layout->setMargin(0); layout->setSpacing(0); connect(view, SIGNAL(searchItems()), this, SIGNAL(searchItems())); connect(view, SIGNAL(itemsSelected(bool)), this, SLOT(controlActions())); connect(this, SIGNAL(add(const QStringList &, int, quint8, bool)), MPDConnection::self(), SLOT(add(const QStringList &, int, quint8, bool))); connect(this, SIGNAL(addSongsToPlaylist(const QString &, const QStringList &)), MPDConnection::self(), SLOT(addToPlaylist(const QString &, const QStringList &))); }
LibraryPage::LibraryPage(QWidget *p) : QWidget(p) { setupUi(this); addToPlayQueue->setDefaultAction(StdActions::self()->addToPlayQueueAction); replacePlayQueue->setDefaultAction(StdActions::self()->replacePlayQueueAction); view->addAction(StdActions::self()->addToPlayQueueAction); view->addAction(StdActions::self()->replacePlayQueueAction); view->addAction(StdActions::self()->addWithPriorityAction); view->addAction(StdActions::self()->addToStoredPlaylistAction); #ifdef TAGLIB_FOUND #ifdef ENABLE_DEVICES_SUPPORT view->addAction(StdActions::self()->copyToDeviceAction); #endif view->addAction(StdActions::self()->organiseFilesAction); view->addAction(StdActions::self()->editTagsAction); #ifdef ENABLE_REPLAYGAIN_SUPPORT view->addAction(StdActions::self()->replaygainAction); #endif view->addAction(StdActions::self()->setCoverAction); #ifdef ENABLE_DEVICES_SUPPORT view->addSeparator(); view->addAction(StdActions::self()->deleteSongsAction); #endif #endif // TAGLIB_FOUND connect(this, SIGNAL(add(const QStringList &, bool, quint8)), MPDConnection::self(), SLOT(add(const QStringList &, bool, quint8))); connect(this, SIGNAL(addSongsToPlaylist(const QString &, const QStringList &)), MPDConnection::self(), SLOT(addToPlaylist(const QString &, const QStringList &))); connect(genreCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(searchItems())); connect(MPDConnection::self(), SIGNAL(updatingLibrary()), view, SLOT(updating())); connect(MPDConnection::self(), SIGNAL(updatedLibrary()), view, SLOT(updated())); connect(MPDConnection::self(), SIGNAL(updatingDatabase()), view, SLOT(updating())); connect(MPDConnection::self(), SIGNAL(updatedDatabase()), view, SLOT(updated())); connect(MusicLibraryModel::self(), SIGNAL(updateGenres(const QSet<QString> &)), genreCombo, SLOT(update(const QSet<QString> &))); connect(this, SIGNAL(loadLibrary()), MPDConnection::self(), SLOT(loadLibrary())); connect(view, SIGNAL(itemsSelected(bool)), this, SLOT(controlActions())); connect(view, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(itemDoubleClicked(const QModelIndex &))); connect(view, SIGNAL(searchItems()), this, SLOT(searchItems())); connect(view, SIGNAL(rootIndexSet(QModelIndex)), this, SLOT(updateGenres(QModelIndex))); proxy.setSourceModel(MusicLibraryModel::self()); view->setModel(&proxy); view->load(metaObject()->className()); }
SearchPage::SearchPage(QWidget *p) : QWidget(p) , state(-1) , model(this) , proxy(this) { setupUi(this); addToPlayQueue->setDefaultAction(StdActions::self()->addToPlayQueueAction); replacePlayQueue->setDefaultAction(StdActions::self()->replacePlayQueueAction); locateAction=new Action(Icon("edit-find"), i18n("Locate In Library"), this); view->allowTableView(new SearchTableView(view)); view->addAction(StdActions::self()->addToPlayQueueAction); view->addAction(StdActions::self()->replacePlayQueueAction); view->addAction(StdActions::self()->addWithPriorityAction); view->addAction(StdActions::self()->addToStoredPlaylistAction); #ifdef TAGLIB_FOUND #ifdef ENABLE_DEVICES_SUPPORT view->addAction(StdActions::self()->copyToDeviceAction); #endif #endif // TAGLIB_FOUND view->addAction(locateAction); connect(this, SIGNAL(add(const QStringList &, bool, quint8)), MPDConnection::self(), SLOT(add(const QStringList &, bool, quint8))); connect(this, SIGNAL(addSongsToPlaylist(const QString &, const QStringList &)), MPDConnection::self(), SLOT(addToPlaylist(const QString &, const QStringList &))); connect(&model, SIGNAL(searching()), view, SLOT(showSpinner())); connect(&model, SIGNAL(searched()), view, SLOT(hideSpinner())); connect(&model, SIGNAL(statsUpdated(int, quint32)), this, SLOT(statsUpdated(int, quint32))); connect(view, SIGNAL(itemsSelected(bool)), this, SLOT(controlActions())); connect(view, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(itemDoubleClicked(const QModelIndex &))); connect(view, SIGNAL(searchItems()), this, SLOT(searchItems())); connect(MPDConnection::self(), SIGNAL(stateChanged(bool)), this, SLOT(setSearchCategories())); connect(locateAction, SIGNAL(triggered()), SLOT(locateSongs())); proxy.setSourceModel(&model); view->setModel(&proxy); view->setMode(ItemView::Mode_List); view->setPermanentSearch(); setSearchCategories(); view->setSearchCategory(Settings::self()->searchCategory()); statsUpdated(0, 0); }
void SinglePageWidget::init(int flags, const QList<QWidget *> &leftXtra, const QList<QWidget *> &rightXtra) { if (0!=btnFlags) { return; } btnFlags=flags; QList<QWidget *> left=leftXtra; QList<QWidget *> right=rightXtra; if (!right.isEmpty() && (flags&(AppendToPlayQueue|ReplacePlayQueue))) { right << new SpacerWidget(this); } if (flags&ReplacePlayQueue) { view->addAction(StdActions::self()->replacePlayQueueAction); } if (flags&AppendToPlayQueue) { ToolButton *addToPlayQueue=new ToolButton(this); addToPlayQueue->setDefaultAction(StdActions::self()->appendToPlayQueueAction); right.append(addToPlayQueue); view->addAction(StdActions::self()->addToPlayQueueMenuAction); } if (flags&ReplacePlayQueue) { ToolButton *replacePlayQueue=new ToolButton(this); replacePlayQueue->setDefaultAction(StdActions::self()->replacePlayQueueAction); right.append(replacePlayQueue); } if (flags&Refresh) { ToolButton *refreshButton=new ToolButton(this); refreshAction=new Action(Icons::self()->reloadIcon, i18n("Refresh"), this); refreshButton->setDefaultAction(refreshAction); connect(refreshAction, SIGNAL(triggered()), this, SLOT(refresh())); left.append(refreshButton); } connect(this, SIGNAL(searchItems()), this, SLOT(doSearch())); if (!left.isEmpty()) { QHBoxLayout *ll=new QHBoxLayout(); foreach (QWidget *b, left) { ll->addWidget(b); }
DevicesPage::DevicesPage(QWidget *p) : QWidget(p) { setupUi(this); copyAction = ActionCollection::get()->createAction("copytolibrary", i18n("Copy To Library"), Icons::self()->importIcon); copyToLibraryButton->setDefaultAction(copyAction); syncAction = ActionCollection::get()->createAction("syncdevice", i18n("Sync"), "folder-sync"); searchButton->setDefaultAction(StdActions::self()->searchAction); connect(syncAction, SIGNAL(triggered()), this, SLOT(sync())); #ifdef ENABLE_REMOTE_DEVICES forgetDeviceAction=ActionCollection::get()->createAction("forgetdevice", i18n("Forget Device"), "list-remove"); connect(forgetDeviceAction, SIGNAL(triggered()), this, SLOT(forgetRemoteDevice())); #endif connect(DevicesModel::self()->connectAct(), SIGNAL(triggered()), this, SLOT(toggleDevice())); connect(DevicesModel::self()->disconnectAct(), SIGNAL(triggered()), this, SLOT(toggleDevice())); copyToLibraryButton->setEnabled(false); syncAction->setEnabled(false); view->addAction(copyAction); view->addAction(syncAction); view->addAction(StdActions::self()->organiseFilesAction); view->addAction(StdActions::self()->editTagsAction); #ifdef ENABLE_REPLAYGAIN_SUPPORT view->addAction(StdActions::self()->replaygainAction); #endif #ifdef ENABLE_REMOTE_DEVICES QAction *sepA=new QAction(this); sepA->setSeparator(true); view->addAction(sepA); view->addAction(forgetDeviceAction); #endif QAction *sep=new QAction(this); sep->setSeparator(true); view->addAction(sep); view->addAction(StdActions::self()->deleteSongsAction); connect(this, SIGNAL(add(const QStringList &, bool, quint8)), MPDConnection::self(), SLOT(add(const QStringList &, bool, quint8))); connect(this, SIGNAL(addSongsToPlaylist(const QString &, const QStringList &)), MPDConnection::self(), SLOT(addToPlaylist(const QString &, const QStringList &))); connect(genreCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(searchItems())); connect(DevicesModel::self(), SIGNAL(updateGenres(const QSet<QString> &)), genreCombo, SLOT(update(const QSet<QString> &))); connect(DevicesModel::self(), SIGNAL(updated(QModelIndex)), this, SLOT(updated(QModelIndex))); connect(view, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(itemDoubleClicked(const QModelIndex &))); connect(view, SIGNAL(searchItems()), this, SLOT(searchItems())); connect(view, SIGNAL(itemsSelected(bool)), SLOT(controlActions())); connect(view, SIGNAL(rootIndexSet(QModelIndex)), this, SLOT(updateGenres(QModelIndex))); connect(copyAction, SIGNAL(triggered()), this, SLOT(copyToLibrary())); connect(DevicesModel::self()->configureAct(), SIGNAL(triggered()), this, SLOT(configureDevice())); connect(DevicesModel::self()->refreshAct(), SIGNAL(triggered()), this, SLOT(refreshDevice())); #if defined CDDB_FOUND || defined MUSICBRAINZ5_FOUND connect(DevicesModel::self()->editAct(), SIGNAL(triggered()), this, SLOT(editDetails())); connect(DevicesModel::self(), SIGNAL(matches(const QString &, const QList<CdAlbum> &)), SLOT(cdMatches(const QString &, const QList<CdAlbum> &))); #endif QMenu *menu=new QMenu(this); #ifdef ENABLE_REMOTE_DEVICES Action *addRemote=ActionCollection::get()->createAction("adddevice", i18n("Add Device"), "network-server"); connect(addRemote, SIGNAL(triggered()), this, SLOT(addRemoteDevice())); menu->addAction(addRemote); menu->addAction(forgetDeviceAction); menu->addSeparator(); #endif menu->addAction(DevicesModel::self()->configureAct()); menu->addAction(DevicesModel::self()->refreshAct()); menu->addSeparator(); menu->addAction(StdActions::self()->organiseFilesAction); menu->addAction(StdActions::self()->editTagsAction); #ifdef ENABLE_REPLAYGAIN_SUPPORT menu->addAction(StdActions::self()->replaygainAction); #endif menuButton->setMenu(menu); proxy.setSourceModel(DevicesModel::self()); view->setModel(&proxy); view->setRootIsDecorated(false); }
OnlineServicesPage::OnlineServicesPage(QWidget *p) : QWidget(p) , onlineSearchRequest(false) , searchable(true) , expanded(false) { setupUi(this); addToPlayQueue->setDefaultAction(StdActions::self()->addToPlayQueueAction); replacePlayQueue->setDefaultAction(StdActions::self()->replacePlayQueueAction); view->addAction(StdActions::self()->addToPlayQueueAction); view->addAction(StdActions::self()->replacePlayQueueAction); view->addAction(StdActions::self()->addWithPriorityAction); view->addAction(StdActions::self()->addToStoredPlaylistAction); downloadAction = new Action(Icon("go-down"), i18n("Download To Library"), this); downloadPodcastAction = new Action(Icon("go-down"), i18n("Download Episodes"), this); deleteDownloadedPodcastAction = new Action(Icon("edit-delete"), i18n("Delete Downloaded Episodes"), this); cancelPodcastDownloadAction = new Action(Icons::self()->cancelIcon, i18n("Cancel Podcast Download"), this); markPodcastAsNewAction = new Action(Icon("document-new"), i18n("Mark Episodes As New"), this); markPodcastAsListenedAction = new Action(i18n("Mark Episodes As Listened"), this); connect(this, SIGNAL(add(const QStringList &, bool, quint8)), MPDConnection::self(), SLOT(add(const QStringList &, bool, quint8))); connect(this, SIGNAL(addSongsToPlaylist(const QString &, const QStringList &)), MPDConnection::self(), SLOT(addToPlaylist(const QString &, const QStringList &))); connect(genreCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(searchItems())); connect(OnlineServicesModel::self(), SIGNAL(updateGenres(const QSet<QString> &)), genreCombo, SLOT(update(const QSet<QString> &))); connect(OnlineServicesModel::self(), SIGNAL(updated(QModelIndex)), this, SLOT(updated(QModelIndex))); // connect(OnlineServicesModel::self(), SIGNAL(needToSort()), this, SLOT(sortList())); connect(OnlineServicesModel::self(), SIGNAL(busy(bool)), view, SLOT(showSpinner(bool))); connect(OnlineServicesModel::self(), SIGNAL(providersChanged()), this, SLOT(providersChanged())); connect(view, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(itemDoubleClicked(const QModelIndex &))); connect(view, SIGNAL(searchItems()), this, SLOT(searchItems())); connect(view, SIGNAL(searchIsActive(bool)), this, SLOT(controlSearch(bool))); connect(view, SIGNAL(itemsSelected(bool)), SLOT(controlActions())); connect(view, SIGNAL(rootIndexSet(QModelIndex)), this, SLOT(updateGenres(QModelIndex))); connect(view, SIGNAL(rootIndexSet(QModelIndex)), this, SLOT(setSearchable(QModelIndex))); connect(OnlineServicesModel::self()->configureAct(), SIGNAL(triggered()), this, SLOT(configureService())); connect(OnlineServicesModel::self()->refreshAct(), SIGNAL(triggered()), this, SLOT(refreshService())); connect(OnlineServicesModel::self()->subscribeAct(), SIGNAL(triggered()), this, SLOT(subscribe())); connect(OnlineServicesModel::self()->unSubscribeAct(), SIGNAL(triggered()), this, SLOT(unSubscribe())); connect(OnlineServicesModel::self()->refreshSubscriptionAct(), SIGNAL(triggered()), this, SLOT(refreshSubscription())); connect(downloadAction, SIGNAL(triggered()), this, SLOT(download())); connect(downloadPodcastAction, SIGNAL(triggered()), this, SLOT(downloadPodcast())); connect(deleteDownloadedPodcastAction, SIGNAL(triggered()), this, SLOT(deleteDownloadedPodcast())); connect(cancelPodcastDownloadAction, SIGNAL(triggered()), this, SLOT(cancelPodcastDownload())); connect(markPodcastAsNewAction, SIGNAL(triggered()), this, SLOT(markPodcastAsNew())); connect(markPodcastAsListenedAction, SIGNAL(triggered()), this, SLOT(markPodcastAsListened())); QMenu *menu=new QMenu(this); menu->addAction(OnlineServicesModel::self()->configureAct()); menu->addAction(OnlineServicesModel::self()->refreshAct()); menu->addSeparator(); menu->addAction(OnlineServicesModel::self()->subscribeAct()); menu->addAction(OnlineServicesModel::self()->unSubscribeAct()); menu->addAction(OnlineServicesModel::self()->refreshSubscriptionAct()); menu->addAction(downloadPodcastAction); menu->addAction(cancelPodcastDownloadAction); menu->addAction(deleteDownloadedPodcastAction); menu->addSeparator(); menu->addAction(markPodcastAsNewAction); menu->addAction(markPodcastAsListenedAction); menu->addSeparator(); QAction *configAction=new QAction(Icons::self()->configureIcon, i18n("Configure..."), this); menu->addAction(configAction); connect(configAction, SIGNAL(triggered()), this, SLOT(showPreferencesPage())); view->addAction(downloadAction); view->addSeparator(); view->addAction(OnlineServicesModel::self()->subscribeAct()); view->addAction(OnlineServicesModel::self()->unSubscribeAct()); view->addAction(OnlineServicesModel::self()->refreshSubscriptionAct()); view->addAction(downloadPodcastAction); view->addAction(deleteDownloadedPodcastAction); view->addAction(cancelPodcastDownloadAction); view->addAction(deleteDownloadedPodcastAction); view->addSeparator(); view->addAction(markPodcastAsNewAction); view->addAction(markPodcastAsListenedAction); menuButton->setMenu(menu); proxy.setSourceModel(OnlineServicesModel::self()); // proxy.setDynamicSortFilter(false); view->setModel(&proxy); view->setRootIsDecorated(true); view->setSearchResetLevel(1); }
void SinglePageWidget::init(int flags, const QList<QWidget *> &leftXtra, const QList<QWidget *> &rightXtra) { if (0!=btnFlags) { return; } btnFlags=flags; QList<QWidget *> left=leftXtra; QList<QWidget *> right=rightXtra; if (!right.isEmpty() && (flags&(AppendToPlayQueue|ReplacePlayQueue))) { right << new SpacerWidget(this); } if (flags&ReplacePlayQueue) { view->addAction(StdActions::self()->replacePlayQueueAction); } if (flags&AppendToPlayQueue) { ToolButton *addToPlayQueue=new ToolButton(this); addToPlayQueue->setDefaultAction(StdActions::self()->appendToPlayQueueAction); right.append(addToPlayQueue); view->addAction(StdActions::self()->addToPlayQueueMenuAction); } if (flags&ReplacePlayQueue) { ToolButton *replacePlayQueue=new ToolButton(this); replacePlayQueue->setDefaultAction(StdActions::self()->replacePlayQueueAction); right.append(replacePlayQueue); } if (flags&Refresh) { ToolButton *refreshButton=new ToolButton(this); refreshAction=new Action(Icons::self()->reloadIcon, tr("Refresh"), this); refreshButton->setDefaultAction(refreshAction); connect(refreshAction, SIGNAL(triggered()), this, SLOT(refresh())); left.append(refreshButton); } connect(this, SIGNAL(searchItems()), this, SLOT(doSearch())); if (!left.isEmpty()) { QHBoxLayout *ll=new QHBoxLayout(); ll->setMargin(0); ll->setSpacing(1); for (QWidget *b: left) { Application::fixSize(b); ll->addWidget(b); } static_cast<QGridLayout *>(layout())->addItem(ll, 2, 0, 1, 1); } if (!right.isEmpty()) { QHBoxLayout *rl=new QHBoxLayout(); rl->setMargin(0); rl->setSpacing(1); for (QWidget *b: right) { Application::fixSize(b); rl->addWidget(b); } static_cast<QGridLayout *>(layout())->addItem(rl, 2, 4, 1, 1); } }