Fixed icon loading (failed after new dir structure)

In same step improved paths in project (static const)
This commit is contained in:
Klaus Basan
2015-10-15 03:52:18 +02:00
committed by Mathew Sutcliffe
parent 3a0ab1aff7
commit 6466260d8c
5 changed files with 51 additions and 14 deletions

View File

@@ -76,7 +76,8 @@ namespace BlackMisc
{
if (this->m_designator.length() > 2)
{
return CIcon("images/airlines/" + m_designator.toLower() + ".png",
// relative to images
return CIcon("airlines/" + m_designator.toLower() + ".png",
this->convertToQString());
}
else

View File

@@ -22,7 +22,8 @@ namespace BlackMisc
{
if (this->m_dbKey.length() == 2)
{
return CIcon("images/flags/" + m_dbKey.toLower() + ".png",
// relative to images
return CIcon("flags/" + m_dbKey.toLower() + ".png",
this->convertToQString());
}
else

View File

@@ -8,6 +8,8 @@
*/
#include "icons.h"
#include "blackmisc/project.h"
#include "blackmisc/fileutilities.h"
#include <QImage>
#include <QIcon>
#include <QPainter>
@@ -1079,9 +1081,7 @@ namespace BlackMisc
Q_ASSERT_X(!fileName.isEmpty(), Q_FUNC_INFO, "missing filename");
if (!getResourceFileCache().contains(fileName))
{
QString path = fileName.contains("resources") ?
QCoreApplication::applicationDirPath().append("/").append(fileName) :
QCoreApplication::applicationDirPath().append("/resources/").append(fileName);
QString path = CFileUtils::appendFilePaths(CProject::getImagesDir(), fileName);
QPixmap pm;
bool s = pm.load(path);
if (s)

View File

@@ -8,6 +8,7 @@
*/
#include "project.h"
#include "blackmisc/fileutilities.h"
#include <QStringList>
#include <QCoreApplication>
#include <QProcessEnvironment>
@@ -254,35 +255,66 @@ namespace BlackMisc
return QProcessEnvironment::systemEnvironment().value(envVarPrivateSetupDir());
}
QString CProject::getApplicationDir()
QString getApplicationDir_()
{
QFileInfo executable(QCoreApplication::applicationFilePath());
QDir p(executable.dir());
return p.absolutePath();
}
QString CProject::getSwiftResourceDir()
const QString &CProject::getApplicationDir()
{
QDir dir(getApplicationDir());
static const QString s(getApplicationDir_());
return s;
}
QString getSwiftResourceDir_()
{
QDir dir(CProject::getApplicationDir());
if (dir.cdUp()) { return dir.absolutePath(); }
return "";
}
const QString &CProject::getSwiftResourceDir()
{
static const QString s(getSwiftResourceDir_());
return s;
}
QString CProject::getSwiftPrivateResourceDir()
{
static const QString dir(envVarPrivateSetupDirValue());
return dir;
}
QString CProject::getSwiftStaticDbFilesDir()
QString getSwiftStaticDbFilesDir_()
{
QString d(getSwiftResourceDir());
QString d(CProject::getSwiftResourceDir());
if (d.isEmpty()) { return ""; }
QDir dir(d);
if (dir.cd("swiftDB")) { return dir.absolutePath(); }
return "";
}
const QString &CProject::getSwiftStaticDbFilesDir()
{
static QString s(getSwiftResourceDir_());
return s;
}
QString getImagesDir_()
{
QString d(CProject::getSwiftResourceDir());
if (d.isEmpty()) return "";
return CFileUtils::appendFilePaths(d, "data/images");
}
const QString &CProject::getImagesDir()
{
static const QString s(getImagesDir_());
return s;
}
QString CProject::getEnvironmentVariables(const QString &separator)
{
QString e(envDevelopmentSetup());

View File

@@ -100,16 +100,19 @@ namespace BlackMisc
static bool isRunningInBetaOrDeveloperEnvironment();
//! Application directory where current application is located
static QString getApplicationDir();
static const QString &getApplicationDir();
//! Where resource files (static DB files, ...) etc are located
static QString getSwiftResourceDir();
static const QString &getSwiftResourceDir();
//! Private resource dir for developer's own resource files
static QString getSwiftPrivateResourceDir();
//! Where resource files (static DB files, ...) etc are located
static QString getSwiftStaticDbFilesDir();
//! Where static DB files are located
static const QString &getSwiftStaticDbFilesDir();
//! Where images are located
static const QString &getImagesDir();
//! Dump all env.variables
static QString getEnvironmentVariables(const QString &separator = QString("\n"));