1 #include <QApplication>
2 #include <QFileDialog>
3
4 #include "iconcachesetupdialog.h"
5 #include "settings.h"
6 #include "options.h"
7 #include "qmc2main.h"
8 #include "machinelist.h"
9 #include "macros.h"
10
11 extern Settings *qmc2Config;
12 extern MachineList *qmc2MachineList;
13 extern MainWindow *qmc2MainWindow;
14 extern Options *qmc2Options;
15
IconCacheSetupDialog(QWidget * parent)16 IconCacheSetupDialog::IconCacheSetupDialog(QWidget *parent) :
17 QDialog(parent)
18 {
19 setupUi(this);
20 checkBoxEnableIconCacheDatabase->setChecked(qmc2Config->value(QMC2_EMULATOR_PREFIX + "IconCacheDatabase/Enabled", true).toBool());
21 lineEditIconCacheDatabase->setText(qmc2Config->value(QMC2_FRONTEND_PREFIX + "FilesAndDirectories/IconCacheDatabase", QString(Options::configPath() + "/%1-icon-cache.db").arg(QMC2_EMU_NAME.toLower())).toString());
22 }
23
adjustIconSizes()24 void IconCacheSetupDialog::adjustIconSizes()
25 {
26 QFont f(qApp->font());
27 QFontMetrics fm(f);
28 QSize iconSize(fm.height() - 2, fm.height() - 2);
29 toolButtonImportIcons->setIconSize(iconSize);
30 toolButtonBrowseIconCacheDatabase->setIconSize(iconSize);
31 }
32
on_toolButtonImportIcons_clicked()33 void IconCacheSetupDialog::on_toolButtonImportIcons_clicked()
34 {
35 toolButtonImportIcons->setEnabled(false);
36 qApp->processEvents();
37 on_pushButtonOk_clicked();
38 qmc2Config->remove(QMC2_EMULATOR_PREFIX + "IconCacheDatabase/ImportDates");
39 qmc2MainWindow->on_actionClearIconCache_triggered();
40 qmc2MachineList->loadIcon(QString(), 0);
41 toolButtonImportIcons->setEnabled(true);
42 }
43
on_toolButtonBrowseIconCacheDatabase_clicked()44 void IconCacheSetupDialog::on_toolButtonBrowseIconCacheDatabase_clicked()
45 {
46 QString s(QFileDialog::getSaveFileName(this, tr("Choose icon cache database file"), lineEditIconCacheDatabase->text(), tr("All files (*)"), 0, qmc2Options->useNativeFileDialogs() ? (QFileDialog::Options)0 : QFileDialog::DontUseNativeDialog));
47 if ( !s.isNull() )
48 lineEditIconCacheDatabase->setText(s);
49 }
50
on_pushButtonOk_clicked()51 void IconCacheSetupDialog::on_pushButtonOk_clicked()
52 {
53 qmc2Config->setValue(QMC2_EMULATOR_PREFIX + "IconCacheDatabase/Enabled", checkBoxEnableIconCacheDatabase->isChecked());
54 QString oldDbFile(qmc2Config->value(QMC2_FRONTEND_PREFIX + "FilesAndDirectories/IconCacheDatabase", QString(Options::configPath() + "/%1-icon-cache.db").arg(QMC2_EMU_NAME.toLower())).toString());
55 qmc2Config->setValue(QMC2_FRONTEND_PREFIX + "FilesAndDirectories/IconCacheDatabase", lineEditIconCacheDatabase->text());
56 if ( oldDbFile != lineEditIconCacheDatabase->text() )
57 qmc2MachineList->reopenIconCacheDb();
58 }
59
showEvent(QShowEvent * e)60 void IconCacheSetupDialog::showEvent(QShowEvent *e)
61 {
62 adjustIconSizes();
63 adjustSize();
64 QDialog::showEvent(e);
65 }
66