Save the currently selected tab
This commit is contained in:
parent
7e913fb38b
commit
103f933dab
@ -21,15 +21,21 @@
|
||||
|
||||
#include <QUndoStack>
|
||||
#include <QInputDialog>
|
||||
#include <QSettings>
|
||||
|
||||
const char* PlaylistContainer::kSettingsGroup = "Playlist";
|
||||
|
||||
PlaylistContainer::PlaylistContainer(QWidget *parent)
|
||||
: QWidget(parent),
|
||||
ui_(new Ui_PlaylistContainer),
|
||||
undo_(NULL),
|
||||
redo_(NULL)
|
||||
redo_(NULL),
|
||||
starting_up_(true)
|
||||
{
|
||||
ui_->setupUi(this);
|
||||
|
||||
settings_.beginGroup(kSettingsGroup);
|
||||
|
||||
// Icons
|
||||
ui_->clear->setIcon(IconLoader::Load("edit-clear-locationbar-ltr"));
|
||||
|
||||
@ -40,6 +46,7 @@ PlaylistContainer::PlaylistContainer(QWidget *parent)
|
||||
|
||||
// Connections
|
||||
connect(ui_->clear, SIGNAL(clicked()), SLOT(ClearFilter()));
|
||||
connect(ui_->tab_bar, SIGNAL(currentChanged(int)), SLOT(Save()));
|
||||
}
|
||||
|
||||
PlaylistContainer::~PlaylistContainer() {
|
||||
@ -58,9 +65,9 @@ void PlaylistContainer::SetActions(
|
||||
|
||||
ui_->tab_bar->SetActions(new_playlist, save_playlist, load_playlist);
|
||||
|
||||
connect(new_playlist, SIGNAL(triggered()), SLOT(New()));
|
||||
connect(save_playlist, SIGNAL(triggered()), SLOT(Save()));
|
||||
connect(load_playlist, SIGNAL(triggered()), SLOT(Load()));
|
||||
connect(new_playlist, SIGNAL(triggered()), SLOT(NewPlaylist()));
|
||||
connect(save_playlist, SIGNAL(triggered()), SLOT(SavePlaylist()));
|
||||
connect(load_playlist, SIGNAL(triggered()), SLOT(LoadPlaylist()));
|
||||
}
|
||||
|
||||
void PlaylistContainer::ClearFilter() {
|
||||
@ -89,11 +96,13 @@ void PlaylistContainer::SetManager(PlaylistManager *manager) {
|
||||
}
|
||||
|
||||
void PlaylistContainer::SetViewModel(Playlist* playlist) {
|
||||
// Set the view
|
||||
playlist->IgnoreSorting(true);
|
||||
view()->setModel(playlist);
|
||||
view()->SetItemDelegates(manager_->library_backend());
|
||||
playlist->IgnoreSorting(false);
|
||||
|
||||
// Sort out the undo/redo actions
|
||||
delete undo_;
|
||||
delete redo_;
|
||||
undo_ = playlist->undo_stack()->createUndoAction(this);
|
||||
@ -134,6 +143,12 @@ void PlaylistContainer::UpdateActiveIcon(const QIcon& icon) {
|
||||
|
||||
void PlaylistContainer::PlaylistAdded(int index, const QString &name) {
|
||||
ui_->tab_bar->insertTab(index, name);
|
||||
|
||||
// Are we startup up, should we select this tab?
|
||||
if (starting_up_ && settings_.value("current_playlist", 0).toInt() == index) {
|
||||
starting_up_ = false;
|
||||
ui_->tab_bar->setCurrentIndex(index);
|
||||
}
|
||||
}
|
||||
|
||||
void PlaylistContainer::PlaylistRemoved(int index) {
|
||||
@ -144,7 +159,7 @@ void PlaylistContainer::PlaylistRenamed(int index, const QString &new_name) {
|
||||
ui_->tab_bar->setTabText(index, new_name);
|
||||
}
|
||||
|
||||
void PlaylistContainer::New() {
|
||||
void PlaylistContainer::NewPlaylist() {
|
||||
QString name = QInputDialog::getText(this, tr("New playlist"),
|
||||
tr("Enter a name for the new playlist"),
|
||||
QLineEdit::Normal, tr("Playlist"));
|
||||
@ -154,10 +169,17 @@ void PlaylistContainer::New() {
|
||||
manager_->New(name);
|
||||
}
|
||||
|
||||
void PlaylistContainer::Load() {
|
||||
void PlaylistContainer::LoadPlaylist() {
|
||||
|
||||
}
|
||||
|
||||
void PlaylistContainer::SavePlaylist() {
|
||||
|
||||
}
|
||||
|
||||
void PlaylistContainer::Save() {
|
||||
if (starting_up_)
|
||||
return;
|
||||
|
||||
settings_.setValue("current_playlist", ui_->tab_bar->currentIndex());
|
||||
}
|
||||
|
@ -18,6 +18,7 @@
|
||||
#define PLAYLISTCONTAINER_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <QSettings>
|
||||
|
||||
class Ui_PlaylistContainer;
|
||||
|
||||
@ -32,6 +33,8 @@ public:
|
||||
PlaylistContainer(QWidget *parent = 0);
|
||||
~PlaylistContainer();
|
||||
|
||||
static const char* kSettingsGroup;
|
||||
|
||||
void SetActions(QAction* new_playlist, QAction* save_playlist,
|
||||
QAction* load_playlist);
|
||||
void SetManager(PlaylistManager* manager);
|
||||
@ -47,9 +50,9 @@ signals:
|
||||
|
||||
private slots:
|
||||
void ClearFilter();
|
||||
void New();
|
||||
void Load();
|
||||
void Save();
|
||||
void NewPlaylist();
|
||||
void LoadPlaylist();
|
||||
void SavePlaylist();
|
||||
|
||||
void SetViewModel(Playlist* playlist);
|
||||
void PlaylistAdded(int index, const QString& name);
|
||||
@ -60,6 +63,8 @@ private slots:
|
||||
void ActivePaused();
|
||||
void ActiveStopped();
|
||||
|
||||
void Save();
|
||||
|
||||
private:
|
||||
void UpdateActiveIcon(const QIcon& icon);
|
||||
|
||||
@ -69,6 +74,9 @@ private:
|
||||
PlaylistManager* manager_;
|
||||
QAction* undo_;
|
||||
QAction* redo_;
|
||||
|
||||
QSettings settings_;
|
||||
bool starting_up_;
|
||||
};
|
||||
|
||||
#endif // PLAYLISTCONTAINER_H
|
||||
|
Loading…
x
Reference in New Issue
Block a user