1
/* smplayer, GUI front-end for mplayer.
2
Copyright (C) 2006-2009 Ricardo Villalba <rvm@escomposlinux.org>
4
This program is free software; you can redistribute it and/or modify
5
it under the terms of the GNU General Public License as published by
6
the Free Software Foundation; either version 2 of the License, or
7
(at your option) any later version.
9
This program is distributed in the hope that it will be useful,
10
but WITHOUT ANY WARRANTY; without even the implied warranty of
11
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
GNU General Public License for more details.
14
You should have received a copy of the GNU General Public License
15
along with this program; if not, write to the Free Software
16
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
#include "filesettingshash.h"
20
#include "mediasettings.h"
21
#include "osparser.h" // hash function
26
FileSettingsHash::FileSettingsHash(QString directory) : FileSettingsBase(directory)
28
base_dir = directory + "/file_settings";
31
FileSettingsHash::~FileSettingsHash() {
35
QString FileSettingsHash::configFile(const QString & filename, QString * output_dir) {
38
QString hash = OSParser::calculateHash(filename);
39
if (!hash.isEmpty()) {
40
if (output_dir != 0) (*output_dir) = hash[0];
41
res = base_dir +"/"+ hash[0] +"/"+ hash + ".ini";
46
bool FileSettingsHash::existSettingsFor(QString filename) {
47
qDebug("FileSettingsHash::existSettingsFor: '%s'", filename.toUtf8().constData());
49
QString config_file = configFile(filename);
51
qDebug("FileSettingsHash::existSettingsFor: config_file: '%s'", config_file.toUtf8().constData());
53
return QFile::exists(config_file);
56
void FileSettingsHash::loadSettingsFor(QString filename, MediaSettings & mset) {
57
qDebug("FileSettings::loadSettingsFor: '%s'", filename.toUtf8().constData());
59
QString config_file = configFile(filename);
61
qDebug("FileSettingsHash::loadSettingsFor: config_file: '%s'", config_file.toUtf8().constData());
65
if ((!config_file.isEmpty()) && (QFile::exists(config_file))) {
66
QSettings settings(config_file, QSettings::IniFormat);
68
settings.beginGroup("file_settings");
74
void FileSettingsHash::saveSettingsFor(QString filename, MediaSettings & mset) {
75
qDebug("FileSettingsHash::saveSettingsFor: '%s'", filename.toUtf8().constData());
78
QString config_file = configFile(filename, &output_dir);
80
qDebug("FileSettingsHash::saveSettingsFor: config_file: '%s'", config_file.toUtf8().constData());
81
qDebug("FileSettingsHash::saveSettingsFor: output_dir: '%s'", output_dir.toUtf8().constData());
83
if (!config_file.isEmpty()) {
85
if (!d.exists(output_dir)) {
86
if (!d.mkpath(output_dir)) {
87
qWarning("FileSettingsHash::saveSettingsFor: can't create directory '%s'", QString(base_dir + "/" + output_dir).toUtf8().constData());
92
QSettings settings(config_file, QSettings::IniFormat);
94
/* settings.setValue("filename", filename); */
96
settings.beginGroup("file_settings");