Add 'add to favourites' action onto main view too
This commit is contained in:
committed by
craig.p.drummond
parent
db63858b06
commit
b1da4733ef
@@ -82,7 +82,6 @@ StdActions::StdActions()
|
||||
removeAction = ActionCollection::get()->createAction("removeitems", i18n("Remove"), "list-remove");
|
||||
searchAction = ActionCollection::get()->createAction("search", i18n("Search"), "edit-find");
|
||||
searchAction->setShortcut(Qt::ControlModifier+Qt::Key_F);
|
||||
addBookmarkAction = ActionCollection::get()->createAction("bookmarkcategory", i18n("Bookmark Category"), Icon("bookmark-new"));
|
||||
|
||||
addToStoredPlaylistAction->setMenu(PlaylistsModel::self()->menu());
|
||||
addPrioHighestAction->setData(255);
|
||||
|
||||
@@ -63,6 +63,5 @@ public:
|
||||
Action *removeAction;
|
||||
Action *backAction;
|
||||
Action *searchAction;
|
||||
Action *addBookmarkAction;
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -28,7 +28,6 @@
|
||||
#include "playqueuemodel.h"
|
||||
#include "networkaccessmanager.h"
|
||||
#include "stdactions.h"
|
||||
#include "actioncollection.h"
|
||||
#include <QNetworkReply>
|
||||
#include <QString>
|
||||
#include <QVariant>
|
||||
@@ -46,7 +45,6 @@ StreamSearchModel::StreamSearchModel(QObject *parent)
|
||||
: ActionModel(parent)
|
||||
, root(new StreamsModel::CategoryItem(QString(), "root"))
|
||||
{
|
||||
addToFavouritesAction = ActionCollection::get()->createAction("addtofavourites", i18n("Add Stream To Favourites"), StreamsModel::self()->favouritesIcon());
|
||||
}
|
||||
|
||||
StreamSearchModel::~StreamSearchModel()
|
||||
@@ -133,13 +131,13 @@ QVariant StreamSearchModel::data(const QModelIndex &index, int role) const
|
||||
if (item->isCategory()){
|
||||
if (static_cast<const StreamsModel::CategoryItem *>(item)->canBookmark) {
|
||||
QVariant v;
|
||||
v.setValue<QList<Action *> >(QList<Action *>() << StdActions::self()->addBookmarkAction);
|
||||
v.setValue<QList<Action *> >(QList<Action *>() << StreamsModel::self()->addBookmarkAct());
|
||||
return v;
|
||||
}
|
||||
} else {
|
||||
QVariant v;
|
||||
if (StreamsModel::self()->isFavoritesWritable()) {
|
||||
v.setValue<QList<Action *> >(QList<Action *>() << StdActions::self()->replacePlayQueueAction << addToFavouritesAction);
|
||||
v.setValue<QList<Action *> >(QList<Action *>() << StdActions::self()->replacePlayQueueAction << StreamsModel::self()->addToFavouritesAct());
|
||||
} else {
|
||||
v.setValue<QList<Action *> >(QList<Action *>() << StdActions::self()->replacePlayQueueAction);
|
||||
}
|
||||
|
||||
@@ -33,7 +33,6 @@
|
||||
class QNetworkReply;
|
||||
class QXmlStreamReader;
|
||||
class QIODevice;
|
||||
class Action;
|
||||
|
||||
class StreamSearchModel : public ActionModel
|
||||
{
|
||||
@@ -61,8 +60,6 @@ public:
|
||||
void search(const QString &searchTerm, bool stationsOnly);
|
||||
void cancelAll();
|
||||
|
||||
Action * addToFavouritesAct() { return addToFavouritesAction; }
|
||||
|
||||
Q_SIGNALS:
|
||||
void loading();
|
||||
void loaded();
|
||||
@@ -80,7 +77,6 @@ private:
|
||||
QMap<QNetworkReply *, StreamsModel::CategoryItem *> jobs;
|
||||
StreamsModel::CategoryItem *root;
|
||||
QString currentSearch;
|
||||
Action *addToFavouritesAction;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
#include "itemview.h"
|
||||
#include "action.h"
|
||||
#include "stdactions.h"
|
||||
#include "actioncollection.h"
|
||||
#include "digitallyimported.h"
|
||||
#include "qjson/parser.h"
|
||||
#include "qtiocompressor/qtiocompressor.h"
|
||||
@@ -459,6 +460,8 @@ StreamsModel::StreamsModel(QObject *parent)
|
||||
favourites->isFavourites=true;
|
||||
root->children.append(favourites);
|
||||
buildListenLive();
|
||||
addBookmarkAction = ActionCollection::get()->createAction("bookmarkcategory", i18n("Bookmark Category"), Icon("bookmark-new"));
|
||||
addToFavouritesAction = ActionCollection::get()->createAction("addtofavourites", i18n("Add Stream To Favourites"), favouritesIcon());
|
||||
}
|
||||
|
||||
StreamsModel::~StreamsModel()
|
||||
@@ -552,12 +555,16 @@ QVariant StreamsModel::data(const QModelIndex &index, int role) const
|
||||
if (item->isCategory()){
|
||||
if (static_cast<const CategoryItem *>(item)->canBookmark) {
|
||||
QVariant v;
|
||||
v.setValue<QList<Action *> >(QList<Action *>() << StdActions::self()->addBookmarkAction);
|
||||
v.setValue<QList<Action *> >(QList<Action *>() << addBookmarkAction);
|
||||
return v;
|
||||
}
|
||||
} else {
|
||||
QVariant v;
|
||||
v.setValue<QList<Action *> >(QList<Action *>() << StdActions::self()->replacePlayQueueAction);
|
||||
if (favouritesIsWriteable && item->parent!=favourites) {
|
||||
v.setValue<QList<Action *> >(QList<Action *>() << StdActions::self()->replacePlayQueueAction << addToFavouritesAction);
|
||||
} else {
|
||||
v.setValue<QList<Action *> >(QList<Action *>() << StdActions::self()->replacePlayQueueAction);
|
||||
}
|
||||
return v;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -143,6 +143,9 @@ public:
|
||||
|
||||
bool isTopLevel(const CategoryItem *cat) const { return cat && root==cat->parent; }
|
||||
|
||||
Action *addBookmarkAct() { return addBookmarkAction; }
|
||||
Action *addToFavouritesAct() { return addToFavouritesAction; }
|
||||
|
||||
Q_SIGNALS:
|
||||
void loading();
|
||||
void loaded();
|
||||
@@ -179,6 +182,8 @@ private:
|
||||
bool favouritesIsWriteable;
|
||||
bool favouritesModified;
|
||||
QTimer *favouritesSaveTimer;
|
||||
Action *addBookmarkAction;
|
||||
Action *addToFavouritesAction;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -77,8 +77,8 @@ StreamsPage::StreamsPage(QWidget *p)
|
||||
connect(searchView, SIGNAL(searchIsActive(bool)), this, SLOT(controlSearch(bool)));
|
||||
connect(searchView, SIGNAL(itemsSelected(bool)), SLOT(controlActions()));
|
||||
connect(addAction, SIGNAL(triggered(bool)), this, SLOT(add()));
|
||||
connect(StdActions::self()->addBookmarkAction, SIGNAL(triggered(bool)), this, SLOT(addBookmark()));
|
||||
connect(searchModel.addToFavouritesAct(), SIGNAL(triggered(bool)), this, SLOT(addToFavourites()));
|
||||
connect(StreamsModel::self()->addBookmarkAct(), SIGNAL(triggered(bool)), this, SLOT(addBookmark()));
|
||||
connect(StreamsModel::self()->addToFavouritesAct(), SIGNAL(triggered(bool)), this, SLOT(addToFavourites()));
|
||||
connect(reloadAction, SIGNAL(triggered(bool)), this, SLOT(reload()));
|
||||
connect(editAction, SIGNAL(triggered(bool)), this, SLOT(edit()));
|
||||
connect(importAction, SIGNAL(triggered(bool)), this, SLOT(importXml()));
|
||||
@@ -109,8 +109,8 @@ StreamsPage::StreamsPage(QWidget *p)
|
||||
view->addAction(StdActions::self()->addWithPriorityAction);
|
||||
view->addAction(editAction);
|
||||
view->addAction(StdActions::self()->removeAction);
|
||||
view->addAction(searchModel.addToFavouritesAct());
|
||||
view->addAction(StdActions::self()->addBookmarkAction);
|
||||
view->addAction(StreamsModel::self()->addToFavouritesAct());
|
||||
view->addAction(StreamsModel::self()->addBookmarkAct());
|
||||
view->addAction(reloadAction);
|
||||
streamsProxy.setSourceModel(StreamsModel::self());
|
||||
view->setModel(&streamsProxy);
|
||||
@@ -118,8 +118,8 @@ StreamsPage::StreamsPage(QWidget *p)
|
||||
|
||||
searchView->setUniformRowHeights(true);
|
||||
searchView->addAction(StdActions::self()->replacePlayQueueAction);
|
||||
searchView->addAction(searchModel.addToFavouritesAct());
|
||||
searchView->addAction(StdActions::self()->addBookmarkAction);
|
||||
searchView->addAction(StreamsModel::self()->addToFavouritesAct());
|
||||
searchView->addAction(StreamsModel::self()->addBookmarkAct());
|
||||
searchProxy.setSourceModel(&searchModel);
|
||||
searchView->setModel(&searchProxy);
|
||||
|
||||
@@ -514,7 +514,7 @@ void StreamsPage::controlActions()
|
||||
bool enableAddToFav=true;
|
||||
bool onlyStreamsSelected=true;
|
||||
bool favWriteable=StreamsModel::self()->isFavoritesWritable();
|
||||
StdActions::self()->addBookmarkAction->setEnabled(false);
|
||||
StreamsModel::self()->addBookmarkAct()->setEnabled(false);
|
||||
if (searching) {
|
||||
foreach (const QModelIndex &idx, selected) {
|
||||
const StreamsModel::Item *item=static_cast<const StreamsModel::Item *>(proxy->mapToSource(idx).internalPointer());
|
||||
@@ -529,9 +529,9 @@ void StreamsPage::controlActions()
|
||||
importAction->setEnabled(false);
|
||||
reloadAction->setEnabled(false);
|
||||
StdActions::self()->removeAction->setEnabled(false);
|
||||
searchModel.addToFavouritesAct()->setEnabled(favWriteable && haveSelection && enableAddToFav);
|
||||
StreamsModel::self()->addToFavouritesAct()->setEnabled(favWriteable && haveSelection && enableAddToFav);
|
||||
if (1==selected.size()) {
|
||||
StdActions::self()->addBookmarkAction->setEnabled(static_cast<const StreamsModel::Item *>(proxy->mapToSource(selected.first()).internalPointer())
|
||||
StreamsModel::self()->addBookmarkAct()->setEnabled(static_cast<const StreamsModel::Item *>(proxy->mapToSource(selected.first()).internalPointer())
|
||||
->isCategory());
|
||||
}
|
||||
} else {
|
||||
@@ -556,7 +556,7 @@ void StreamsPage::controlActions()
|
||||
}
|
||||
|
||||
StdActions::self()->removeAction->setEnabled(favWriteable && haveSelection && enableRemove);
|
||||
searchModel.addToFavouritesAct()->setEnabled(favWriteable && haveSelection && enableAddToFav);
|
||||
StreamsModel::self()->addToFavouritesAct()->setEnabled(favWriteable && haveSelection && enableAddToFav);
|
||||
|
||||
if (1==selected.size()) {
|
||||
const StreamsModel::Item *item=static_cast<const StreamsModel::Item *>(proxy->mapToSource(selected.first()).internalPointer());
|
||||
@@ -564,7 +564,7 @@ void StreamsPage::controlActions()
|
||||
editAction->setEnabled(true);
|
||||
}
|
||||
reloadAction->setEnabled(item->isCategory() && StreamsModel::self()->isTopLevel(static_cast<const StreamsModel::CategoryItem *>(item)));
|
||||
StdActions::self()->addBookmarkAction->setEnabled(item->isCategory() && static_cast<const StreamsModel::CategoryItem *>(item)->canBookmark);
|
||||
StreamsModel::self()->addBookmarkAct()->setEnabled(item->isCategory() && static_cast<const StreamsModel::CategoryItem *>(item)->canBookmark);
|
||||
if (!StdActions::self()->removeAction->isEnabled()) {
|
||||
StdActions::self()->removeAction->setEnabled(item->isCategory() && item->parent &&
|
||||
(item->parent->isBookmarks || (static_cast<const StreamsModel::CategoryItem *>(item)->isBookmarks)));
|
||||
|
||||
Reference in New Issue
Block a user