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