Better control over add/remove service actions

This commit is contained in:
craig.p.drummond
2013-01-30 19:15:10 +00:00
committed by craig.p.drummond
parent d01e726e9a
commit 870f695c35
3 changed files with 17 additions and 2 deletions

View File

@@ -490,7 +490,6 @@ MainWindow::MainWindow(QWidget *parent)
DevicesModel::self()->setEnabled(!hiddenPages.contains(devicesPage->metaObject()->className()));
copyToDeviceAction->setVisible(DevicesModel::self()->isEnabled());
#endif
OnlineServicesModel::self()->setEnabled(!hiddenPages.contains(onlinePage->metaObject()->className()));
AlbumsModel::self()->setEnabled(!hiddenPages.contains(albumsPage->metaObject()->className()));
folderPage->setEnabled(!hiddenPages.contains(folderPage->metaObject()->className()));
streamsPage->setEnabled(!hiddenPages.contains(streamsPage->metaObject()->className()));

View File

@@ -110,6 +110,14 @@ OnlineServicesPage::~OnlineServicesPage()
{
}
void OnlineServicesPage::setEnabled(bool e)
{
OnlineServicesModel::self()->setEnabled(e);
jamendoAction->setEnabled(0==OnlineServicesModel::self()->service(JamendoService::constName));
magnatuneAction->setEnabled(0==OnlineServicesModel::self()->service(MagnatuneService::constName));
controlActions();
}
void OnlineServicesPage::clear()
{
OnlineServicesModel::self()->clear();
@@ -264,7 +272,8 @@ void OnlineServicesPage::controlActions()
}
}
removeAction->setEnabled(srvSelected && 1==selected.count());
addAction->setEnabled(jamendoAction->isEnabled() || magnatuneAction->isEnabled());
removeAction->setEnabled(srvSelected && 1==selected.count() && (!jamendoAction->isEnabled() || !magnatuneAction->isEnabled()));
configureAction->setEnabled(srvSelected && 1==selected.count());
refreshAction->setEnabled(srvSelected && 1==selected.count());
downloadAction->setEnabled(!srvSelected && canDownload && !selected.isEmpty() && 1==services.count());
@@ -327,6 +336,9 @@ void OnlineServicesPage::removeService()
return;
}
OnlineServicesModel::self()->removeService(item->data());
jamendoAction->setEnabled(0==OnlineServicesModel::self()->service(JamendoService::constName));
magnatuneAction->setEnabled(0==OnlineServicesModel::self()->service(MagnatuneService::constName));
controlActions();
}
}
@@ -388,6 +400,9 @@ void OnlineServicesPage::addService(const QString &name)
}
OnlineServicesModel::self()->createService(name);
jamendoAction->setEnabled(0==OnlineServicesModel::self()->service(JamendoService::constName));
magnatuneAction->setEnabled(0==OnlineServicesModel::self()->service(MagnatuneService::constName));
controlActions();
}
void OnlineServicesPage::download()

View File

@@ -40,6 +40,7 @@ public:
OnlineServicesPage(MainWindow *p);
virtual ~OnlineServicesPage();
void setEnabled(bool e);
void clear();
QString activeService() const;
QStringList selectedFiles() const;