diff options
Diffstat (limited to 'rbutil/rbutilqt/configure.cpp')
-rw-r--r-- | rbutil/rbutilqt/configure.cpp | 77 |
1 files changed, 70 insertions, 7 deletions
diff --git a/rbutil/rbutilqt/configure.cpp b/rbutil/rbutilqt/configure.cpp index 989581529f..7a182965bc 100644 --- a/rbutil/rbutilqt/configure.cpp +++ b/rbutil/rbutilqt/configure.cpp | |||
@@ -66,14 +66,9 @@ Config::Config(QWidget *parent) : QDialog(parent) | |||
66 | connect(ui.radioSystemProxy, SIGNAL(toggled(bool)), this, SLOT(setSystemProxy(bool))); | 66 | connect(ui.radioSystemProxy, SIGNAL(toggled(bool)), this, SLOT(setSystemProxy(bool))); |
67 | connect(ui.browseMountPoint, SIGNAL(clicked()), this, SLOT(browseFolder())); | 67 | connect(ui.browseMountPoint, SIGNAL(clicked()), this, SLOT(browseFolder())); |
68 | connect(ui.buttonAutodetect,SIGNAL(clicked()),this,SLOT(autodetect())); | 68 | connect(ui.buttonAutodetect,SIGNAL(clicked()),this,SLOT(autodetect())); |
69 | 69 | connect(ui.buttonCacheBrowse, SIGNAL(clicked()), this, SLOT(browseCache())); | |
70 | // disable unimplemented stuff | 70 | connect(ui.buttonCacheClear, SIGNAL(clicked()), this, SLOT(cacheClear())); |
71 | ui.buttonCacheBrowse->setEnabled(false); | ||
72 | ui.cacheDisable->setEnabled(false); | ||
73 | ui.cacheOfflineMode->setEnabled(false); | ||
74 | ui.buttonCacheClear->setEnabled(false); | ||
75 | 71 | ||
76 | //ui.buttonAutodetect->setEnabled(false); | ||
77 | } | 72 | } |
78 | 73 | ||
79 | 74 | ||
@@ -116,6 +111,14 @@ void Config::accept() | |||
116 | userSettings->setValue("defaults/platform", nplat); | 111 | userSettings->setValue("defaults/platform", nplat); |
117 | } | 112 | } |
118 | 113 | ||
114 | // cache settings | ||
115 | if(QFileInfo(ui.cachePath->text()).isDir()) | ||
116 | userSettings->setValue("defaults/cachepath", ui.cachePath->text()); | ||
117 | else // default to system temp path | ||
118 | userSettings->setValue("defaults/cachepath", QDir::tempPath()); | ||
119 | userSettings->setValue("defaults/cachedisable", ui.cacheDisable->isChecked()); | ||
120 | userSettings->setValue("defaults/offline", ui.cacheOfflineMode->isChecked()); | ||
121 | |||
119 | // sync settings | 122 | // sync settings |
120 | userSettings->sync(); | 123 | userSettings->sync(); |
121 | this->close(); | 124 | this->close(); |
@@ -169,6 +172,20 @@ void Config::setUserSettings(QSettings *user) | |||
169 | // devices tab | 172 | // devices tab |
170 | ui.mountPoint->setText(userSettings->value("defaults/mountpoint").toString()); | 173 | ui.mountPoint->setText(userSettings->value("defaults/mountpoint").toString()); |
171 | 174 | ||
175 | // cache tab | ||
176 | if(!QFileInfo(userSettings->value("defaults/cachepath").toString()).isDir()) | ||
177 | userSettings->setValue("defaults/cachepath", QDir::tempPath()); | ||
178 | ui.cachePath->setText(userSettings->value("defaults/cachepath").toString()); | ||
179 | ui.cacheDisable->setChecked(userSettings->value("defaults/cachedisable").toBool()); | ||
180 | ui.cacheOfflineMode->setChecked(userSettings->value("defaults/offline").toBool()); | ||
181 | QList<QFileInfo> fs = QDir(userSettings->value("defaults/cachepath").toString() + "/rbutil-cache/").entryInfoList(QDir::Files | QDir::NoDotAndDotDot); | ||
182 | qint64 sz = 0; | ||
183 | for(int i = 0; i < fs.size(); i++) { | ||
184 | sz += fs.at(i).size(); | ||
185 | qDebug() << fs.at(i).fileName() << fs.at(i).size(); | ||
186 | } | ||
187 | ui.cacheSize->setText(tr("Current cache size is %1 kiB.") | ||
188 | .arg(sz/1024)); | ||
172 | } | 189 | } |
173 | 190 | ||
174 | 191 | ||
@@ -344,12 +361,32 @@ void Config::browseFolder() | |||
344 | } | 361 | } |
345 | 362 | ||
346 | 363 | ||
364 | void Config::browseCache() | ||
365 | { | ||
366 | cbrowser = new BrowseDirtree(this); | ||
367 | #if defined(Q_OS_LINUX) || defined(Q_OS_MACX) | ||
368 | cbrowser->setFilter(QDir::AllDirs | QDir::NoDotAndDotDot | QDir::NoSymLinks); | ||
369 | #elif defined(Q_OS_WIN32) | ||
370 | cbrowser->setFilter(QDir::Drives); | ||
371 | #endif | ||
372 | QDir d(ui.cachePath->text()); | ||
373 | cbrowser->setDir(d); | ||
374 | cbrowser->show(); | ||
375 | connect(cbrowser, SIGNAL(itemChanged(QString)), this, SLOT(setCache(QString))); | ||
376 | } | ||
377 | |||
347 | void Config::setMountpoint(QString m) | 378 | void Config::setMountpoint(QString m) |
348 | { | 379 | { |
349 | ui.mountPoint->setText(m); | 380 | ui.mountPoint->setText(m); |
350 | } | 381 | } |
351 | 382 | ||
352 | 383 | ||
384 | void Config::setCache(QString c) | ||
385 | { | ||
386 | ui.cachePath->setText(c); | ||
387 | } | ||
388 | |||
389 | |||
353 | void Config::autodetect() | 390 | void Config::autodetect() |
354 | { | 391 | { |
355 | Autodetection detector(this); | 392 | Autodetection detector(this); |
@@ -403,3 +440,29 @@ void Config::autodetect() | |||
403 | } | 440 | } |
404 | } | 441 | } |
405 | 442 | ||
443 | void Config::cacheClear() | ||
444 | { | ||
445 | if(QMessageBox::critical(this, tr("Really delete cache?"), | ||
446 | tr("Do you really want to delete the cache? " | ||
447 | "Make absolutely sure this setting is correct as it will " | ||
448 | "remove <b>all</b> files in this folder!").arg(ui.cachePath->text()), | ||
449 | QMessageBox::Yes | QMessageBox::No) != QMessageBox::Yes) | ||
450 | return; | ||
451 | |||
452 | QString cache = ui.cachePath->text() + "/rbutil-cache/"; | ||
453 | if(!QFileInfo(cache).isDir()) { | ||
454 | QMessageBox::critical(this, tr("Path wrong!"), | ||
455 | tr("The cache path is invalid. Aborting."), QMessageBox::Ok); | ||
456 | return; | ||
457 | } | ||
458 | QDir dir(cache); | ||
459 | QStringList fn; | ||
460 | fn = dir.entryList(QStringList("*"), QDir::Files, QDir::Name); | ||
461 | qDebug() << fn; | ||
462 | |||
463 | for(int i = 0; i < fn.size(); i++) { | ||
464 | QString f = cache + fn.at(i); | ||
465 | QFile::remove(f); | ||
466 | qDebug() << "removed:" << f; | ||
467 | } | ||
468 | } | ||