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->listWidget,SIGNAL(doubleClicked(QModelIndex)),this,SLOT(onBrowse()));
54 connect(ui->browseButton,SIGNAL(clicked()),this,SLOT(onBrowse()));
55 connect(ui->deleteButton,SIGNAL(clicked()),this,SLOT(onDelete()));
56 connect(ui->editButton,SIGNAL(clicked()),this,SLOT(onEdit()));
57 connect(ui->listWidget, SIGNAL(itemSelectionChanged()), this, SLOT(onListSelectionChanged()));
58 connect(ui->actionSetHome, SIGNAL(triggered()), this, SLOT(setHomeFolder()));
59 connect(ui->saveButton, SIGNAL(clicked()), this, SLOT(onEditSave()));
60 connect(ui->lineEdit, SIGNAL(textChanged(QString)), this, SLOT(onLineEditTextChanged(QString)));
66 void FavouritesMainWindow::init() // THIS METHOD IS CALLED WHEN CONFIG CHANGED AND WINDOW SHOWN...
68 mFavourites = AppSettings::getFavourites();
72 FavouritesMainWindow::~FavouritesMainWindow()
78 void FavouritesMainWindow::changeEvent(QEvent *e)
80 QMainWindow::changeEvent(e);
82 case QEvent::LanguageChange:
83 ui->retranslateUi(this);
89 void FavouritesMainWindow::updateList() {
90 ui->listWidget->clear();
91 if (NULL != mFavourites && 0 < mFavourites->count()) {
92 for (int idx = 0; idx < mFavourites->count(); ++idx) {
93 QListWidgetItem* item = new QListWidgetItem(QIcon::fromTheme("imageviewer_favourite"), mFavourites->at(idx).name, ui->listWidget, LIST_ITEM_TYPE_OFFSET + idx);
94 ui->listWidget->addItem(item);
98 void FavouritesMainWindow::setHomeFolder() {
99 if (-1 < mCurrentItemIndex) {
100 AppSettings::setHomeDirectory(mCurrentFavourite);
103 void FavouritesMainWindow::onListSelectionChanged() {
104 ui->label->setVisible(false);
105 ui->lineEdit->setVisible(false);
106 ui->saveButton->setVisible(false);
107 ui->saveButton->setDisabled(true);
108 QList<QListWidgetItem *> items = ui->listWidget->selectedItems();
109 if (0 < items.count()) {
110 mCurrentItemIndex = ui->listWidget->currentIndex().row();
111 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!
112 ui->browseButton->setDisabled(false);
113 ui->editButton->setDisabled(false);
114 ui->deleteButton->setDisabled(false);
115 ui->actionSetHome->setDisabled(false);
118 mCurrentItemIndex = -1;
119 ui->browseButton->setDisabled(true);
120 ui->editButton->setDisabled(true);
121 ui->deleteButton->setDisabled(true);
122 ui->actionSetHome->setDisabled(true);
125 void FavouritesMainWindow::onLineEditTextChanged(QString text) {
126 if (0 < text.length()) {
127 ui->saveButton->setDisabled(false);
130 ui->saveButton->setDisabled(true);
133 void FavouritesMainWindow::onEditSave() {
134 if (-1 < mCurrentItemIndex && 0 < ui->lineEdit->text().length()) {
135 ui->label->setVisible(false);
136 ui->lineEdit->setVisible(false);
137 ui->saveButton->setVisible(false);
138 ui->saveButton->setDisabled(true);
139 AppSettings::deleteFavourite(mCurrentFavourite);
140 mCurrentFavourite.name = ui->lineEdit->text();
141 AppSettings::addFavourite(mCurrentFavourite);
142 ui->lineEdit->setText("");
143 ui->listWidget->itemAt(mCurrentItemIndex, 0)->setText(mCurrentFavourite.name);
147 void FavouritesMainWindow::onEdit() {
148 if (-1 < mCurrentItemIndex) {
149 ui->label->setVisible(true);
150 ui->lineEdit->setVisible(true);
151 ui->saveButton->setVisible(true);
152 ui->saveButton->setDisabled(false);
153 ui->lineEdit->setText(mCurrentFavourite.name);
154 ui->browseButton->setDisabled(true);
155 ui->editButton->setDisabled(true);
156 ui->deleteButton->setDisabled(true);
159 void FavouritesMainWindow::onBrowse() {
160 if (-1 < mCurrentItemIndex) {
161 emit browseDirectory(mCurrentFavourite.path);
163 //((BrowseMainWindow *)this->parent())->browseDirectory(mCurrentFavourite.path);
166 void FavouritesMainWindow::onDelete() {
167 if (-1 < mCurrentItemIndex) {
168 AppSettings::deleteFavourite(mCurrentFavourite);