{
hildonWelcome = "/etc/hildon-welcome.d/";
videosDir = "/opt/bootscreen/media/";
+ settingsDir = "/opt/bootscreen/data/";
checkSettings();
filterGroup = new QActionGroup(this);
void BootScreen::checkSettings()
{
- QDir dir("/home/user");
- if (!dir.cd(".bootscreen")) {
- qWarning("Cannot find the \".bootscreen/\" directory");
- dir.mkdir(".bootscreen");
- if (!dir.cd(".bootscreen")) {
- qWarning("Cannot create the \".bootscreen/\" directory");
-
- //terminar applicacao
- }
- }
- settingsFile.setFileName(dir.filePath("settings.ini"));
- if (!settingsFile.exists())
+ QDir dir(settingsDir);
+ settingsFile.setFileName(dir.filePath("bootscreen.conf"));
+
+ if (!settingsFile.exists())
restoreSettings();
- else{
+ else{
QSettings tempSettings(settingsFile.fileName(),QSettings::IniFormat);
random = tempSettings.value("random").toBool();
- }
+ }
}
void BootScreen::createList()
QHBoxLayout *layButtons = new QHBoxLayout();
up = new QPushButton("Up");
down = new QPushButton("Down");
+ save = new QPushButton("Save");
+ save->setEnabled(false);
if(random){
up->setEnabled(false);
layButtons->addWidget(up);
layButtons->addWidget(down);
+ layButtons->addSpacing(50);
+ layButtons->addWidget(save);
lay->addLayout(layButtons);
connect(up, SIGNAL(clicked()), this, SLOT(moveUp()));
connect(down, SIGNAL(clicked()), this, SLOT(moveDown()));
+ connect(save, SIGNAL(clicked()), this, SLOT(saveConfs()));
+ connect(list, SIGNAL(itemActivated(QListWidgetItem*)), this, SLOT(setPendingChanges(QListWidgetItem*)));
setCentralWidget(central);
}
if(filePath != ""){
QFile fileCopy(filePath);
QFileInfo fileInfo(filePath);
- QString newFilePath = videosDir + fileInfo.fileName();
+ QString fileName = fileInfo.fileName();
+ //boot player can't read files with spaces in the name
+ fileName.replace(QString(" "), QString("_"));
+ QString newFilePath = videosDir + fileName;
qDebug() << newFilePath << endl;
qDebug() << fileInfo.size() << endl;
if(fileInfo.size() > 11100000)
QMaemo5InformationBox::DefaultTimeout);
else{
bool result = fileCopy.copy(newFilePath);
- // tamanho
- if(result)
- list->addItem(QString("%1").arg(fileInfo.fileName()));
+ if(result){
+ list->addItem(QString("%1").arg(fileName));
+ save->setEnabled(true);
+ //autoselect item, if not in random mode
+ if(!random){
+ QListWidgetItem *currentItem = list->item(list->count()-1);
+ currentItem->setSelected(true);
+ }
+ }
else
QMaemo5InformationBox::information(this, "<font color=black>Error copying file</font>",
QMaemo5InformationBox::DefaultTimeout);
}
}
-
- //add somewhere
}
}
QList <QListWidgetItem *> selectedItems = list->selectedItems();
if(selectedItems.size()>0){
QDir vidDir(videosDir);
- QMessageBox msgBox;
int ret = QMessageBox::information(this, tr("Remove files"), tr("Remove selected file(s) ?"), QMessageBox::Yes | QMessageBox::No);
if(ret == QMessageBox::Yes){
delete temp;
}
}
+ save->setEnabled(true);
}
}
QListWidgetItem * currentItem = list->takeItem(currentRow);
list->insertItem(currentRow - 1, currentItem);
list->setCurrentRow(currentRow - 1);
+ save->setEnabled(true);
}
void BootScreen::moveDown()
QListWidgetItem * currentItem = list->takeItem(currentRow);
list->insertItem(currentRow + 1, currentItem);
list->setCurrentRow(currentRow + 1);
+ save->setEnabled(true);
}
void BootScreen::disableSelection(bool state)
}
random = true;
+ save->setEnabled(true);
}
void BootScreen::selectMultiple(bool state)
{
qDebug() << settingsFile.fileName() << endl;
- if (!settingsFile.open(QIODevice::ReadWrite | QIODevice::Text))
+ if (!settingsFile.open(QIODevice::ReadWrite | QIODevice::Text)){
qWarning("Cannot create the settings file"); //abord
+ QMaemo5InformationBox::information(this, "<font color=black><b>Error:</b> Cannot create the settings file</font>",
+ QMaemo5InformationBox::DefaultTimeout);
+ }
QTextStream out(&settingsFile);
out << "random=false" << endl;
random = false;
}
-void BootScreen::writeFiles(){
+void BootScreen::saveConfs(){
//remove old files
QDir dir(hildonWelcome);
else
createFile(temp->text(), i);
}
+ save->setEnabled(false);
}
void BootScreen::createFile(QString filename, int index)
if(mediaFiles.contains(filename)){
QFile confFile(hildonWelcome + ind + ".conf");
qDebug() << confFile.fileName() << endl;
- if (!confFile.open(QIODevice::ReadWrite | QIODevice::Text))
+ if (!confFile.open(QIODevice::ReadWrite | QIODevice::Text)){
qWarning("Cannot create the settings file"); //abord
-
+ QMaemo5InformationBox::information(this, "<font color=black><b>Error:</b> Cannot create the configurations file</font>",
+ QMaemo5InformationBox::DefaultTimeout);
+ }
else{
QString filePath = mediaFiles.value(filename);
QTextStream out(&confFile);
out << "filename=" << filePath << endl;
}
}
- else
- qDebug() << "print a error" << endl;
+ else{
+ qDebug() << filename << endl;
+ qDebug() << "File already exists" << endl;
+ }
+}
+
+void BootScreen::setPendingChanges(QListWidgetItem *item)
+{
+ if(!random)
+ save->setEnabled(true);
}
void BootScreen::closeEvent(QCloseEvent *event)
{
- writeSettings();
- writeFiles();
- event->accept();
+ if(save->isEnabled()){
+ int ret = QMessageBox::information(this, tr("There are pending changes"), tr("Do you want to save your changes?"),
+ QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel);
+
+ if(ret == QMessageBox::Save){
+ saveConfs();
+ writeSettings();
+ event->accept();
+
+ }
+ else if(ret == QMessageBox::Discard){
+ writeSettings();
+ event->accept();
+ }
+ else{
+ event->ignore();
+ }
+ }
+ else{
+ writeSettings();
+ event->accept();
+ }
}
BootScreen::~BootScreen()