1 /* VLC-REMOTE for MAEMO 5
2 * Copyright (C) 2010 Schutz Sacha <istdasklar@gmail.com>, Dru Moore <usr@dru-id.co.uk>, Yann Nave <yannux@onbebop.net>
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License version 2,
5 * or (at your option) any later version, as published by the Free
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details
13 * You should have received a copy of the GNU General Public
14 * License along with this program; if not, write to the
15 * Free Software Foundation, Inc.,
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 #include "favouritesmainwindow.h"
19 #include "ui_favouritesmainwindow.h"
21 #if defined(Q_WS_S60) || defined(Q_WS_MAEMO_5)
22 #include <QMaemo5InformationBox>
24 #include "appsettings.h"
25 //#include "browsemainwindow.h"
27 FavouritesMainWindow::FavouritesMainWindow(QWidget *parent) :
29 ui(new Ui::FavouritesMainWindow)
34 setWindowTitle("Vlc remote");
35 mCurrentItemIndex = -1;
37 ui->listWidget->setTextElideMode(Qt::ElideMiddle);
38 ui->listWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
40 ui->deleteButton->setIcon(QIcon::fromTheme("general_delete"));
41 ui->editButton->setIcon(QIcon::fromTheme("general_sketch"));
42 ui->browseButton->setIcon(QIcon::fromTheme("filemanager_media_folder"));
43 ui->saveButton->setIcon(QIcon::fromTheme("notes_save"));
44 ui->browseButton->setDisabled(true);
45 ui->editButton->setDisabled(true);
46 ui->deleteButton->setDisabled(true);
47 ui->actionSetHome->setDisabled(true);
48 ui->label->setVisible(false);
49 ui->lineEdit->setVisible(false);
50 ui->saveButton->setVisible(false);
51 ui->saveButton->setDisabled(true);
53 connect(ui->browseButton,SIGNAL(clicked()),this,SLOT(onBrowse()));
54 connect(ui->deleteButton,SIGNAL(clicked()),this,SLOT(onDelete()));
55 connect(ui->editButton,SIGNAL(clicked()),this,SLOT(onEdit()));
56 connect(ui->listWidget, SIGNAL(itemSelectionChanged()), this, SLOT(onListSelectionChanged()));
57 connect(ui->actionSetHome, SIGNAL(triggered()), this, SLOT(setHomeFolder()));
58 connect(ui->saveButton, SIGNAL(clicked()), this, SLOT(onEditSave()));
59 connect(ui->lineEdit, SIGNAL(textChanged(QString)), this, SLOT(onLineEditTextChanged(QString)));
65 void FavouritesMainWindow::init() // THIS METHOD IS CALLED WHEN CONFIG CHANGED AND WINDOW SHOWN...
67 mFavourites = AppSettings::getFavourites();
71 FavouritesMainWindow::~FavouritesMainWindow()
77 void FavouritesMainWindow::changeEvent(QEvent *e)
79 QMainWindow::changeEvent(e);
81 case QEvent::LanguageChange:
82 ui->retranslateUi(this);
88 void FavouritesMainWindow::updateList() {
89 ui->listWidget->clear();
90 if (NULL != mFavourites && 0 < mFavourites->count()) {
91 for (int idx = 0; idx < mFavourites->count(); ++idx) {
92 QListWidgetItem* item = new QListWidgetItem(QIcon::fromTheme("imageviewer_favourite"), mFavourites->at(idx).name, ui->listWidget, LIST_ITEM_TYPE_OFFSET + idx);
93 ui->listWidget->addItem(item);
97 void FavouritesMainWindow::setHomeFolder() {
98 if (-1 < mCurrentItemIndex) {
99 AppSettings::setHomeDirectory(mCurrentFavourite);
102 void FavouritesMainWindow::onListSelectionChanged() {
103 ui->label->setVisible(false);
104 ui->lineEdit->setVisible(false);
105 ui->saveButton->setVisible(false);
106 ui->saveButton->setDisabled(true);
107 QList<QListWidgetItem *> items = ui->listWidget->selectedItems();
108 if (0 < items.count()) {
109 mCurrentItemIndex = ui->listWidget->currentIndex().row();
110 mCurrentFavourite = mFavourites->at(items.at(0)->type() - LIST_ITEM_TYPE_OFFSET); // Qt reserves types up to 1000, we use an offset beyond that for index tracking. May prove to be too hacky!
111 ui->browseButton->setDisabled(false);
112 ui->editButton->setDisabled(false);
113 ui->deleteButton->setDisabled(false);
114 ui->actionSetHome->setDisabled(false);
117 mCurrentItemIndex = -1;
118 ui->browseButton->setDisabled(true);
119 ui->editButton->setDisabled(true);
120 ui->deleteButton->setDisabled(true);
121 ui->actionSetHome->setDisabled(true);
124 void FavouritesMainWindow::onLineEditTextChanged(QString text) {
125 if (0 < text.length()) {
126 ui->saveButton->setDisabled(false);
129 ui->saveButton->setDisabled(true);
132 void FavouritesMainWindow::onEditSave() {
133 if (-1 < mCurrentItemIndex && 0 < ui->lineEdit->text().length()) {
134 ui->label->setVisible(false);
135 ui->lineEdit->setVisible(false);
136 ui->saveButton->setVisible(false);
137 ui->saveButton->setDisabled(true);
138 AppSettings::deleteFavourite(mCurrentFavourite);
139 mCurrentFavourite.name = ui->lineEdit->text();
140 AppSettings::addFavourite(mCurrentFavourite);
141 ui->lineEdit->setText("");
142 ui->listWidget->itemAt(mCurrentItemIndex, 0)->setText(mCurrentFavourite.name);
146 void FavouritesMainWindow::onEdit() {
147 if (-1 < mCurrentItemIndex) {
148 ui->label->setVisible(true);
149 ui->lineEdit->setVisible(true);
150 ui->saveButton->setVisible(true);
151 ui->saveButton->setDisabled(false);
152 ui->lineEdit->setText(mCurrentFavourite.name);
153 ui->browseButton->setDisabled(true);
154 ui->editButton->setDisabled(true);
155 ui->deleteButton->setDisabled(true);
158 void FavouritesMainWindow::onBrowse() {
159 if (-1 < mCurrentItemIndex) {
160 emit browseDirectory(mCurrentFavourite.path);
162 //((BrowseMainWindow *)this->parent())->browseDirectory(mCurrentFavourite.path);
165 void FavouritesMainWindow::onDelete() {
166 if (-1 < mCurrentItemIndex) {
167 AppSettings::deleteFavourite(mCurrentFavourite);