Add a dataPath() generater function instead of using static DataPath methods.

This commit is contained in:
Felix Geyer 2012-01-05 22:36:06 +01:00
parent 5db102d668
commit bda22394f5
4 changed files with 22 additions and 18 deletions

View File

@ -22,23 +22,13 @@
#include "config-keepassx.h" #include "config-keepassx.h"
DataPath* DataPath::m_instance(0);
QString DataPath::getPath(const QString& name) QString DataPath::getPath(const QString& name)
{ {
if (!m_instance) { return m_basePath + name;
m_instance = new DataPath();
}
return m_instance->m_basePath + name;
} }
QIcon DataPath::applicationIcon() QIcon DataPath::applicationIcon()
{ {
if (!m_instance) {
m_instance = new DataPath();
}
QIcon icon = QIcon::fromTheme("keepassx"); QIcon icon = QIcon::fromTheme("keepassx");
#if defined(QT_DEBUG) || defined(Q_WS_MAC) || defined(Q_WS_WIN) #if defined(QT_DEBUG) || defined(Q_WS_MAC) || defined(Q_WS_WIN)
@ -46,9 +36,9 @@ QIcon DataPath::applicationIcon()
QStringList pngSizes; QStringList pngSizes;
pngSizes << "16" << "24" << "32" << "48" << "64" << "128"; pngSizes << "16" << "24" << "32" << "48" << "64" << "128";
Q_FOREACH (const QString& size, pngSizes) { Q_FOREACH (const QString& size, pngSizes) {
icon.addFile(QString("%1/icons/application/%2x%2/apps/keepassx.png").arg(m_instance->m_basePath, size)); icon.addFile(QString("%1/icons/application/%2x%2/apps/keepassx.png").arg(m_basePath, size));
} }
icon.addFile(QString("%1/icons/application/scalable/apps/keepassx.svgz").arg(m_instance->m_basePath)); icon.addFile(QString("%1/icons/application/scalable/apps/keepassx.svgz").arg(m_basePath));
} }
#endif #endif
@ -94,3 +84,14 @@ bool DataPath::testSetDir(const QString& dir)
return false; return false;
} }
} }
DataPath* dataPath()
{
static DataPath* instance = 0;
if (!instance) {
instance = new DataPath();
}
return instance;
}

View File

@ -24,15 +24,18 @@
class DataPath class DataPath
{ {
public: public:
static QString getPath(const QString& name); QString getPath(const QString& name);
static QIcon applicationIcon(); QIcon applicationIcon();
private: private:
DataPath(); DataPath();
bool testSetDir(const QString& dir); bool testSetDir(const QString& dir);
static DataPath* m_instance;
QString m_basePath; QString m_basePath;
friend DataPath* dataPath();
}; };
DataPath* dataPath();
#endif // KEEPASSX_DATAPATH_H #endif // KEEPASSX_DATAPATH_H

View File

@ -31,7 +31,7 @@ QImage DatabaseIcons::icon(int index)
} }
else { else {
QString iconPath = QString("icons/database/").append(m_indexToName.at(index)); QString iconPath = QString("icons/database/").append(m_indexToName.at(index));
QImage icon(DataPath::getPath(iconPath)); QImage icon(dataPath()->getPath(iconPath));
m_iconCache[index] = icon; m_iconCache[index] = icon;
return icon; return icon;

View File

@ -28,7 +28,7 @@ MainWindow::MainWindow()
{ {
m_ui->setupUi(this); m_ui->setupUi(this);
setWindowIcon(DataPath::applicationIcon()); setWindowIcon(dataPath()->applicationIcon());
connect(m_ui->tabWidget, SIGNAL(currentChanged(int)), SLOT(currentTabChanged(int))); connect(m_ui->tabWidget, SIGNAL(currentChanged(int)), SLOT(currentTabChanged(int)));
connect(m_ui->tabWidget, SIGNAL(entrySelectionChanged(bool)), m_ui->actionEntryEdit, SLOT(setEnabled(bool))); connect(m_ui->tabWidget, SIGNAL(entrySelectionChanged(bool)), m_ui->actionEntryEdit, SLOT(setEnabled(bool)));