@@ -2,6 +2,7 @@
#include "ui_png2gifs_gui.h"
#include <QMessageBox>
#include <QFileDialog>
#include "../common_features/app_path.h"
#include "../dev_console/devconsole.h"

png2gifs_gui::png2gifs_gui(QWidget *parent) :
@@ -21,7 +22,7 @@ png2gifs_gui::~png2gifs_gui()
void png2gifs_gui::on_BrowseInput_clicked()
{
QString dir = QFileDialog::getExistingDirectory(this, tr("Open Source Directory"),
(ui->inputDir->text().isEmpty() ? QApplication::applicationDirPath() : ui->inputDir->text()),
(ui->inputDir->text().isEmpty() ? ApplicationPath : ui->inputDir->text()),
QFileDialog::ShowDirsOnly
| QFileDialog::DontResolveSymlinks);
if(dir.isEmpty()) return;
@@ -33,7 +34,7 @@ void png2gifs_gui::on_BrowseInput_clicked()
void png2gifs_gui::on_BrowseOutput_clicked()
{
QString dir = QFileDialog::getExistingDirectory(this, tr("Open Target Directory"),
(ui->outputDir->text().isEmpty() ? QApplication::applicationDirPath():ui->outputDir->text() ),
(ui->outputDir->text().isEmpty() ? ApplicationPath:ui->outputDir->text() ),
QFileDialog::ShowDirsOnly
| QFileDialog::DontResolveSymlinks);
if(dir.isEmpty()) return;
@@ -52,9 +53,9 @@ void png2gifs_gui::on_startTool_clicked()
QString command;

#ifdef _WIN32
command = QApplication::applicationDirPath()+"/PNG2GIFs.exe";
command = ApplicationPath+"/PNG2GIFs.exe";
#else
command = QApplication::applicationDirPath()+"/PNG2GIFs";
command = ApplicationPath+"/PNG2GIFs";
#endif

if(!QFile(command).exists())
@@ -85,6 +85,7 @@ LevelData LvlScene::copy(bool cut)
{
LvlData->modified = true;
addRemoveHistory(copyData);
Debugger_updateItemList();
}
}

@@ -16,6 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

#include "../common_features/app_path.h"

#include "lvlscene.h"
#include "../edit_level/level_edit.h"

@@ -152,7 +154,7 @@ void LvlScene::setSectionBG(LevelSection section, bool forceTiled)
QGraphicsRectItem * itemRect=NULL;
QBrush brush;
QPen pen;
QPixmap image = QPixmap(QApplication::applicationDirPath() + "/" + "data/nobg.gif");
QPixmap image = QPixmap(ApplicationPath + "/" + "data/nobg.gif");
QPixmap img;
QPixmap img2; //Second image buffer
//need a BGitem
@@ -17,6 +17,8 @@
*/

#include "lvlscene.h"
#include "../common_features/app_path.h"

#include "../edit_level/level_edit.h"

#include "item_block.h"
@@ -71,9 +73,9 @@ LvlScene::LvlScene(dataconfigs &configs, LevelData &FileData, QObject *parent) :
resetCursor();

//set dummy images if target not exist or wrong
uBlockImg = QPixmap(QApplication::applicationDirPath() + "/" + "data/unknown_block.png");
uNpcImg = QPixmap(QApplication::applicationDirPath() + "/" + "data/unknown_npc.png");
uBgoImg = QPixmap(QApplication::applicationDirPath() + "/" + "data/unknown_bgo.png");
uBlockImg = QPixmap(ApplicationPath + "/" + "data/unknown_block.png");
uNpcImg = QPixmap(ApplicationPath + "/" + "data/unknown_npc.png");
uBgoImg = QPixmap(ApplicationPath + "/" + "data/unknown_bgo.png");


//set Default Z Indexes
@@ -31,11 +31,16 @@
#include <iostream>
#include <stdlib.h>

#include "common_features/app_path.h"

#undef main
#include <SDL2/SDL.h>
#include <SDL2/SDL_mixer.h>
#undef main

QString ApplicationPath;
QString ApplicationPath_x;

namespace PGECrashHandler {
void crashByFlood(){
QMessageBox::warning(nullptr, QApplication::tr("Crash"), QApplication::tr("We're sorry, but PGE has crashed. Reason: Out of memory! :(\n"
@@ -60,6 +65,26 @@ int main(int argc, char *argv[])
return 0;
}


ApplicationPath = QApplication::applicationDirPath();
ApplicationPath_x = QApplication::applicationDirPath();

#ifdef __APPLE__
//Application path relative bundle folder of application
QString osX_bundle = QApplication::applicationName()+".app/Contents/MacOS";
if(ApplicationPath.endsWith(osX_bundle, Qt::CaseInsensitive))
ApplicationPath.remove(ApplicationPath.length()-osX_bundle.length()-1, osX_bundle.length()+1);
#endif

/*
QString osX_bundle = QApplication::applicationName()+".app/Contents/MacOS";
QString test="/home/vasya/pge/"+osX_bundle;
qDebug() << test << " <- before";
if(test.endsWith(osX_bundle, Qt::CaseInsensitive))
test.remove(test.length()-osX_bundle.length()-1, osX_bundle.length()+1);
qDebug() << test << " <- after";
*/

SDL_Init(SDL_INIT_AUDIO);

a->setApplicationName("Editor - Platformer Game Engine by Wohlstand");
@@ -25,6 +25,8 @@
#include <QProcessEnvironment>
#include <QByteArray>

#include "../common_features/app_path.h"

#include "../common_features/logger_sets.h"
#include "../file_formats/file_formats.h"
#include "../common_features/logger.h"
@@ -216,7 +218,7 @@ void AppSettings::on_AssociateFiles_clicked()
registry_hkcu.setValue("Software/Classes/SMBX64.World/Shell/Open/Command/Default", "\"" + QApplication::applicationFilePath().replace("/", "\\") + "\" \"%1\"");

// User variable(s)
registry_hkcu.setValue("Environment/QT_PLUGIN_PATH", "\"" + QApplication::applicationDirPath().replace("/", "\\") + "\"");
registry_hkcu.setValue("Environment/QT_PLUGIN_PATH", "\"" + QString(ApplicationPath).replace("/", "\\") + "\"");

#elif defined __APPLE__
// only useful when other apps have taken precedence over our file extensions and you want to reset it
@@ -48,6 +48,13 @@ void MainWindow::Debugger_UpdateMousePosition(QPoint p, bool isOffScreen)
}
}

void MainWindow::Debugger_UpdateItemList(QString list)
{
if(!ui->actionDebugger->isVisible()) return; //SpeedUp

ui->DEBUG_Items->setText(list);
}


void MainWindow::on_DEBUG_GotoPoint_clicked()
{
@@ -18,6 +18,8 @@

#include "../ui_mainwindow.h"
#include "../mainwindow.h"
#include "../common_features/app_path.h"

#include "../common_features/logger_sets.h"
#include "../common_features/sdl_music_player.h"

@@ -428,7 +430,7 @@ void MainWindow::setUiDefults()
//////////Load settings from INI file///////////////
void MainWindow::loadSettings()
{
QString inifile = QApplication::applicationDirPath() + "/" + "pge_editor.ini";
QString inifile = ApplicationPath + "/" + "pge_editor.ini";
QSettings settings(inifile, QSettings::IniFormat);

settings.beginGroup("Main");
@@ -509,7 +511,7 @@ void MainWindow::loadSettings()
//////////Save settings into INI file///////////////
void MainWindow::saveSettings()
{
QString inifile = QApplication::applicationDirPath() + "/" + "pge_editor.ini";
QString inifile = ApplicationPath + "/" + "pge_editor.ini";

QSettings settings(inifile, QSettings::IniFormat);
settings.beginGroup("Main");
@@ -266,6 +266,8 @@ void MainWindow::updateMenus(bool force)

ui->actionUndo->setEnabled(activeLvlEditWin()->scene->canUndo());
ui->actionRedo->setEnabled(activeLvlEditWin()->scene->canRedo());

activeLvlEditWin()->scene->Debugger_updateItemList();
}
ui->actionAnimation->setChecked( GlobalSettings::LvlOpts.animationEnabled );
ui->actionCollisions->setChecked( GlobalSettings::LvlOpts.collisionsEnabled );
@@ -21,6 +21,8 @@
#include "../common_features/logger_sets.h"
#include "../dev_console/devconsole.h"

#include "../common_features/app_path.h"

#include "global_settings.h"


@@ -35,7 +37,7 @@ void MainWindow::setDefLang()
QString defaultLocale = QLocale::system().name();
defaultLocale.truncate(defaultLocale.lastIndexOf('_'));

QString inifile = QApplication::applicationDirPath() + "/" + "pge_editor.ini";
QString inifile = ApplicationPath + "/" + "pge_editor.ini";
QSettings settings(inifile, QSettings::IniFormat);

settings.beginGroup("Main");
@@ -48,7 +50,7 @@ void MainWindow::setDefLang()
connect(ui->menuLanguage, SIGNAL(triggered(QAction *)), this, SLOT(slotLanguageChanged(QAction *)));
WriteToLog(QtDebugMsg, QString("Lang->set"));

m_langPath = QApplication::applicationDirPath();
m_langPath = ApplicationPath;
m_langPath.append("/languages");

langListSync();
@@ -21,6 +21,7 @@

#include "npc_dialog/npcdialog.h"
#include "data_configs/config_manager.h"
#include "common_features/app_path.h"

#include <QDesktopServices>

@@ -35,8 +36,8 @@ MainWindow::MainWindow(QMdiArea *parent) :
setDefaults(); // Apply default common settings

//Create empty config directory if not exists
if(!QDir(QApplication::applicationDirPath() + "/" + "configs").exists())
QDir().mkdir(QApplication::applicationDirPath() + "/" + "configs");
if(!QDir(ApplicationPath + "/" + "configs").exists())
QDir().mkdir(ApplicationPath + "/" + "configs");

// Config manager
ConfigManager *cmanager = new ConfigManager();
@@ -173,7 +174,7 @@ void MainWindow::refreshHistoryButtons()

void MainWindow::on_actionContents_triggered()
{
QDesktopServices::openUrl( QUrl::fromLocalFile( QApplication::applicationDirPath() + "/help/manual_editor.html" ) );
QDesktopServices::openUrl( QUrl::fromLocalFile( ApplicationPath + "/help/manual_editor.html" ) );
}

void MainWindow::on_actionNew_triggered()
@@ -302,7 +302,8 @@ HEADERS += mainwindow.h \
SingleApplication/localserver.h \
SingleApplication/singleapplication.h \
level_scene/item_playerpoint.h \
common_features/sdl_music_player.h
common_features/sdl_music_player.h \
common_features/app_path.h

FORMS += \
mainwindow.ui \
@@ -1,5 +1,7 @@
#include "wld_setpoint.h"
#include "ui_wld_setpoint.h"
#include "../common_features/app_path.h"


WLD_SetPoint::WLD_SetPoint(QWidget *parent) :
QDialog(parent),
@@ -13,7 +15,7 @@ WLD_SetPoint::WLD_SetPoint(QWidget *parent) :
mapPointIsNull=true;
currentMusic = 0;
isUntitled = true;
latest_export_path = QApplication::applicationDirPath();
latest_export_path = ApplicationPath;
setWindowIcon(QIcon(QPixmap(":/images/world16.png")));

updateTimer=NULL;
@@ -18,6 +18,7 @@

#include "wld_scene.h"
#include "../edit_world/world_edit.h"
#include "../common_features/app_path.h"

#include "item_tile.h"
#include "item_scene.h"
@@ -73,12 +74,12 @@ WldScene::WldScene(dataconfigs &configs, WorldData &FileData, QObject *parent) :
resetCursor();

//set dummy images if target not exist or wrong
uTileImg=QPixmap(QApplication::applicationDirPath() + "/" + "data/unknown_tile.png");
uSceneImg=QPixmap(QApplication::applicationDirPath() + "/" + "data/unknown_scene.png");
uPathImg=QPixmap(QApplication::applicationDirPath() + "/" + "data/unknown_path.png");
uLevelImg=QPixmap(QApplication::applicationDirPath() + "/" + "data/unknown_wlvl.png");
uTileImg=QPixmap(ApplicationPath + "/" + "data/unknown_tile.png");
uSceneImg=QPixmap(ApplicationPath + "/" + "data/unknown_scene.png");
uPathImg=QPixmap(ApplicationPath + "/" + "data/unknown_path.png");
uLevelImg=QPixmap(ApplicationPath + "/" + "data/unknown_wlvl.png");

musicBoxImg=QPixmap(QApplication::applicationDirPath() + "/" + "data/music_box.png");
musicBoxImg=QPixmap(ApplicationPath + "/" + "data/music_box.png");

//set Default Z Indexes
tileZ=0; // tiles