2b1e01915d3f5f581e3fc5e978ac2f19d95e5622
[bootcreen] / bootscreenR.cpp
1 #include "bootscreenR.h"
2
3 #include <QDir>
4 #include <QTime>
5 #include <QSettings>
6 #include <QDebug>
7
8 BootScreenR::BootScreenR()
9 {
10     settingsDir = "/opt/bootscreen/data/";
11     logFile.setFileName("/opt/bootscreen/data/log.txt");
12
13     if (!logFile.open(QIODevice::ReadWrite | QIODevice::Text))
14         qDebug() << "Can't write log" << endl;
15
16     QTextStream out(&logFile);
17     //out << "log" << endl;
18     QDir dir("/home/user/");
19
20     settingsFile.setFileName(dir.filePath("settings.ini"));
21     if (settingsFile.exists()){
22         QSettings tempSettings(settingsFile.fileName(),QSettings::IniFormat);
23         bool random = tempSettings.value("random").toBool();
24         if(random)
25             selectRandomFile();
26     }
27     else
28        out << "Can't read settings file" << endl;
29 }
30
31 void BootScreenR::selectRandomFile()
32 {
33     QTextStream out(&logFile);
34     //currentFile
35     QSettings settings("/etc/hildon-welcome.d/0.conf",QSettings::IniFormat);
36     if (!settings.isWritable())
37         out << "Can't Write hildon-welcome settings" << endl;
38
39     else{
40         settings.beginGroup("hildon-welcome");
41         QString currentFile = settings.value("filename").toString();
42
43         QDir videosDir("/opt/bootscreen/media");
44         videosDir.setFilter(QDir::Files | QDir::NoSymLinks);
45         videosDir.setSorting(QDir::Name);
46         QFileInfoList ls = videosDir.entryInfoList();
47         for (int i = 0; i < ls.size(); ++i) {
48             QFileInfo fileInfo = ls.at(i);
49             if(fileInfo.absoluteFilePath() != currentFile)
50                 files.append(fileInfo.absoluteFilePath());
51         }
52
53         if(files.size()>0){
54             QTime fixTime(0, 0, 0);
55             qsrand(fixTime.secsTo(QTime::currentTime()));
56             int randomNumb = qrand() % files.size();
57             settings.setValue("filename", files.at(randomNumb));
58         }
59         else
60             out << "Can't randomize: Only one file in the media directory." << endl;
61     }
62 }
63
64 BootScreenR::~BootScreenR()
65 {
66 }