From: Valerio Valerio Date: Fri, 5 Mar 2010 23:02:54 +0000 (+0000) Subject: Added save button X-Git-Url: http://git.maemo.org/git/?p=bootcreen;a=commitdiff_plain;h=f49b723571d74d0d17a961d691e128dcb487dc6f;ds=sidebyside Added save button --- diff --git a/bootscreen.cpp b/bootscreen.cpp index d80a8ae..0f9fd97 100644 --- a/bootscreen.cpp +++ b/bootscreen.cpp @@ -38,7 +38,7 @@ BootScreen::BootScreen(QWidget *parent) void BootScreen::checkSettings() { QDir dir(settingsDir); - settingsFile.setFileName(dir.filePath("bootscrenn.conf")); + settingsFile.setFileName(dir.filePath("bootscreen.conf")); if (!settingsFile.exists()) restoreSettings(); @@ -128,6 +128,8 @@ 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); @@ -136,10 +138,14 @@ void BootScreen::createList() 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); } @@ -172,6 +178,7 @@ void BootScreen::addVideo() bool result = fileCopy.copy(newFilePath); 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); @@ -193,7 +200,6 @@ void BootScreen::removeVideos() QList 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){ @@ -208,6 +214,7 @@ void BootScreen::removeVideos() delete temp; } } + save->setEnabled(true); } } @@ -220,6 +227,7 @@ void BootScreen::moveUp() QListWidgetItem * currentItem = list->takeItem(currentRow); list->insertItem(currentRow - 1, currentItem); list->setCurrentRow(currentRow - 1); + save->setEnabled(true); } void BootScreen::moveDown() @@ -229,6 +237,7 @@ 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) @@ -258,6 +267,7 @@ void BootScreen::disableSelection(bool state) } random = true; + save->setEnabled(true); } void BootScreen::selectMultiple(bool state) @@ -292,7 +302,7 @@ void BootScreen::restoreSettings() random = false; } -void BootScreen::writeFiles(){ +void BootScreen::saveConfs(){ //remove old files QDir dir(hildonWelcome); @@ -314,6 +324,7 @@ void BootScreen::writeFiles(){ else createFile(temp->text(), i); } + save->setEnabled(false); } void BootScreen::createFile(QString filename, int index) @@ -322,9 +333,11 @@ 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, "Error: Cannot create the configurations file", + QMaemo5InformationBox::DefaultTimeout); + } else{ QString filePath = mediaFiles.value(filename); QTextStream out(&confFile); @@ -334,15 +347,40 @@ void BootScreen::createFile(QString filename, int index) } else{ qDebug() << filename << endl; - qDebug() << "print a error" << 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() diff --git a/bootscreen.h b/bootscreen.h index 20215c0..5b4fa79 100644 --- a/bootscreen.h +++ b/bootscreen.h @@ -26,7 +26,6 @@ private: void createList(); void writeSettings(); void restoreSettings(); - void writeFiles(); void createFile(QString filename, int index); bool random; QString hildonWelcome; @@ -41,6 +40,7 @@ private: QListWidget *list; QPushButton *up; QPushButton *down; + QPushButton *save; private slots: void addVideo(); @@ -49,6 +49,8 @@ private slots: void selectMultiple(bool state); void moveUp(); void moveDown(); + void saveConfs(); + void setPendingChanges(QListWidgetItem* item); }; #endif // BOOTSCREEN_H diff --git a/bootscreenR.cpp b/bootscreenR.cpp index 2b1e019..f672b22 100644 --- a/bootscreenR.cpp +++ b/bootscreenR.cpp @@ -15,9 +15,9 @@ BootScreenR::BootScreenR() QTextStream out(&logFile); //out << "log" << endl; - QDir dir("/home/user/"); + QDir dir(settingsDir); - settingsFile.setFileName(dir.filePath("settings.ini")); + settingsFile.setFileName(dir.filePath("bootscreen.conf")); if (settingsFile.exists()){ QSettings tempSettings(settingsFile.fileName(),QSettings::IniFormat); bool random = tempSettings.value("random").toBool();