Skip to content

Commit

Permalink
Changes so default plugin and definition file locations are proper fo…
Browse files Browse the repository at this point in the history
…r OSX
  • Loading branch information
malcom2073 committed Dec 19, 2013
1 parent a9a35d6 commit d1f5113
Show file tree
Hide file tree
Showing 6 changed files with 50 additions and 40 deletions.
43 changes: 25 additions & 18 deletions core/src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ int main(int argc, char *argv[])
#else
QString appDataDir = getenv("HOME");
#endif
QDir appDir(appDataDir);
QDir appDir(appDataDir);
if (appDir.exists())
{
if (!appDir.cd("EMStudio"))
Expand All @@ -103,10 +103,8 @@ int main(int argc, char *argv[])
}
const QString sLogPath(QDir(appDataDir + "/EMStudio/applogs").filePath("log.txt"));

QsLogging::DestinationPtr fileDestination(
QsLogging::DestinationFactory::MakeFileDestination(sLogPath, true, 0, 100) );
QsLogging::DestinationPtr debugDestination(
QsLogging::DestinationFactory::MakeDebugOutputDestination() );
QsLogging::DestinationPtr fileDestination(QsLogging::DestinationFactory::MakeFileDestination(sLogPath, true, 0, 100));
QsLogging::DestinationPtr debugDestination(QsLogging::DestinationFactory::MakeDebugOutputDestination());
logger.addDestination(debugDestination);
logger.addDestination(fileDestination);

Expand Down Expand Up @@ -151,26 +149,35 @@ int main(int argc, char *argv[])
}
if (plugin == "")
{
//If no plugin is specified, load some reasonable defaults.
if (QFile::exists("plugins/libfreeemsplugin.so"))
{
plugin = "plugins/libfreeemsplugin.so";
}
else if (QFile::exists("/usr/share/emstudio/plugins/libfreeemsplugin.so"))
{
plugin = "/usr/share/emstudio/plugins/libfreeemsplugin.so";
}
else if (QFile::exists("plugins/freeemsplugin.lib"))
{
plugin = "plugins/freeemsplugin.lib";
}
else if (QFile::exists("plugins/libfreeemsplugin.a"))
{
plugin = "plugins/libfreeemsplugin.a";
}
else if (QFile::exists("plugins/freeemsplugin.dll"))
{
plugin = "plugins/freeemsplugin.dll";
}
}
else if (QFile::exists("plugins/freeemsplugin.lib"))
{
plugin = "plugins/freeemsplugin.lib";
}
else if (QFile::exists("plugins/libfreeemsplugin.a"))
{
plugin = "plugins/libfreeemsplugin.a";
}
else if (QFile::exists("plugins/freeemsplugin.dll"))
{
plugin = "plugins/freeemsplugin.dll";
}
else if (QFile::exists("../../../plugins/libfreeemsplugin.dylib"))
{
plugin = "../../../plugins/libfreeemsplugin.dylib";
}
else if (QFile::exists("/usr/share/emstudio/plugins/libfreeemsplugin.dylib"))
{
plugin = "/usr/share/emstudio/plugins/libfreeemsplugin.dylib";
}
}
w.setPlugin(plugin);
if (autoconnect)
Expand Down
25 changes: 7 additions & 18 deletions core/src/mainwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -946,25 +946,14 @@ void MainWindow::setPlugin(QString plugin)
exit(-1);
}
emsComms->passLogger(&QsLogging::Logger::instance());
QString filestr = "";
if (QFile::exists(m_settingsDir + "/" + "definitions/freeems.config.json"))
{
filestr = m_settingsDir + "/" + "definitions/freeems.config.json";
}
else if (QFile::exists(m_defaultsDir + "/definitions/freeems.config.json"))
{
filestr = m_defaultsDir + "/definitions/freeems.config.json";
}
else if (QFile::exists("freeems.config.json"))
{
filestr = "freeems.config.json";
}
else
{
QMessageBox::information(0,"Error","Error: No freeems.config.json file found!");
}

QStringList searchpaths;
searchpaths.append(m_settingsDir + "/" + "definitions");
searchpaths.append(m_defaultsDir + "/definitions");
searchpaths.append("."); //Local
searchpaths.append("../../.."); //OSX local
m_memoryMetaData = emsComms->getMetaParser();
m_memoryMetaData->loadMetaDataFromFile(filestr);
m_memoryMetaData->loadMetaDataFromFile(searchpaths); //Changed to trigger a load from a file found internally.
//emsData->setMetaData(m_memoryMetaData);
parameterView->passConfigBlockList(m_memoryMetaData->configMetaData());
parameterView->passMenuList(m_memoryMetaData->menuMetaData());
Expand Down
2 changes: 1 addition & 1 deletion lib/core/memorymetadata.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@
class MemoryMetaData
{
public:
virtual bool loadMetaDataFromFile(QString filestr)=0;
virtual bool loadMetaDataFromFile(QStringList searchpaths)=0;
virtual bool parseMetaData(QString json)=0;
virtual const QMap<unsigned short,QString> errorMap()=0;

Expand Down
16 changes: 15 additions & 1 deletion plugins/freeems/fememorymetadata.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
#include <QByteArray>
#include <qjson/parser.h>
#include <QVariant>
#include <QStringList>
#include "QsLog.h"

FEMemoryMetaData::FEMemoryMetaData()
Expand Down Expand Up @@ -227,8 +228,21 @@ bool FEMemoryMetaData::parseMetaData(QString json)
return true;
}

bool FEMemoryMetaData::loadMetaDataFromFile(QString filestr)
bool FEMemoryMetaData::loadMetaDataFromFile(QStringList searchpaths)
{
QString filestr = "";
for (int i=0;i<searchpaths.size();i++)
{
if (QFile::exists(searchpaths[i] + "/freeems.config.json"))
{
filestr = searchpaths[i] + "/freeems.config.json";
i = searchpaths.size();
}
}
if (filestr == "")
{
return false;
}
//QLOG_DEBUG() << "Loading config file from:" << filestr;
QFile file(filestr);
if (!file.open(QIODevice::ReadOnly))
Expand Down
2 changes: 1 addition & 1 deletion plugins/freeems/fememorymetadata.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ class FEMemoryMetaData : public MemoryMetaData
{
public:
FEMemoryMetaData();
bool loadMetaDataFromFile(QString filestr);
bool loadMetaDataFromFile(QStringList searchpaths);
const QMap<unsigned short,QString> errorMap() { return m_errorMap; }
void setMenuMetaData(MenuSetup menu) { m_menuMetaData = menu; }
void passConfigData(QMap<QString,QList<ConfigBlock> > block) { m_configMetaData = block; }
Expand Down
2 changes: 1 addition & 1 deletion plugins/freeems/freeemscomms.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ FreeEmsComms::FreeEmsComms(QObject *parent) : EmsComms(parent)
connect(dataPacketDecoder,SIGNAL(payloadDecoded(QVariantMap)),this,SIGNAL(dataLogPayloadDecoded(QVariantMap)));
connect(dataPacketDecoder,SIGNAL(resetDetected(int)),this,SIGNAL(resetDetected(int)));
m_metaDataParser = new FEMemoryMetaData();
m_metaDataParser->loadMetaDataFromFile("freeems.config.json");
//m_metaDataParser->loadMetaDataFromFile("freeems.config.json");
m_packetDecoder = new PacketDecoder(this);
connect(m_packetDecoder,SIGNAL(locationIdInfo(MemoryLocationInfo)),this,SLOT(locationIdInfoRec(MemoryLocationInfo)));
connect(m_packetDecoder,SIGNAL(packetAcked(unsigned short,QByteArray,QByteArray)),this,SLOT(packetAckedRec(unsigned short,QByteArray,QByteArray)));
Expand Down

0 comments on commit d1f5113

Please sign in to comment.