summaryrefslogtreecommitdiff
path: root/rbutil/rbutilqt/configure.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'rbutil/rbutilqt/configure.cpp')
-rw-r--r--rbutil/rbutilqt/configure.cpp77
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
364void 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
347void Config::setMountpoint(QString m) 378void Config::setMountpoint(QString m)
348{ 379{
349 ui.mountPoint->setText(m); 380 ui.mountPoint->setText(m);
350} 381}
351 382
352 383
384void Config::setCache(QString c)
385{
386 ui.cachePath->setText(c);
387}
388
389
353void Config::autodetect() 390void 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
443void 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}