Fixed a lot of MSVC problems
This commit is contained in:
		@@ -20,8 +20,6 @@
 | 
			
		||||
#include <QPoint>
 | 
			
		||||
#include <QColor>
 | 
			
		||||
 | 
			
		||||
AppSettings *settings;
 | 
			
		||||
 | 
			
		||||
AppSettings::AppSettings(QObject *parent) :
 | 
			
		||||
	BasicSettingsObject(parent)
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -27,6 +27,4 @@ public:
 | 
			
		||||
	explicit AppSettings(QObject *parent = 0);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
extern AppSettings *settings;
 | 
			
		||||
 | 
			
		||||
#endif // APPSETTINGS_H
 | 
			
		||||
 
 | 
			
		||||
@@ -156,9 +156,9 @@ void MinecraftProcess::finish(int code, ExitStatus status)
 | 
			
		||||
	m_prepostlaunchprocess.processEnvironment().insert("INST_EXITCODE", QString(code));
 | 
			
		||||
	
 | 
			
		||||
	// run post-exit
 | 
			
		||||
    if (!m_instance->getPostExitCommand().isEmpty())
 | 
			
		||||
	if (!m_instance->settings().get("PostExitCommand").toString().isEmpty())
 | 
			
		||||
	{
 | 
			
		||||
        m_prepostlaunchprocess.start(m_instance->getPostExitCommand());
 | 
			
		||||
		m_prepostlaunchprocess.start(m_instance->settings().get("PostExitCommand").toString());
 | 
			
		||||
		m_prepostlaunchprocess.waitForFinished();
 | 
			
		||||
		if (m_prepostlaunchprocess.exitStatus() != NormalExit)
 | 
			
		||||
		{
 | 
			
		||||
@@ -174,9 +174,9 @@ void MinecraftProcess::finish(int code, ExitStatus status)
 | 
			
		||||
 | 
			
		||||
void MinecraftProcess::launch()
 | 
			
		||||
{
 | 
			
		||||
    if (!m_instance->getPreLaunchCommand().isEmpty())
 | 
			
		||||
	if (!m_instance->settings().get("PreLaunchCommand").toString().isEmpty())
 | 
			
		||||
	{
 | 
			
		||||
        m_prepostlaunchprocess.start(m_instance->getPreLaunchCommand());
 | 
			
		||||
		m_prepostlaunchprocess.start(m_instance->settings().get("PreLaunchCommand").toString());
 | 
			
		||||
		m_prepostlaunchprocess.waitForFinished();
 | 
			
		||||
		if (m_prepostlaunchprocess.exitStatus() != NormalExit)
 | 
			
		||||
		{
 | 
			
		||||
@@ -194,7 +194,7 @@ void MinecraftProcess::launch()
 | 
			
		||||
	log(QString("Minecraft folder is: '%1'").arg(workingDirectory()));
 | 
			
		||||
	log(QString("Instance launched with arguments: '%1'").arg(m_arguments.join("' '")));
 | 
			
		||||
	
 | 
			
		||||
    start(m_instance->getJavaPath(), m_arguments);
 | 
			
		||||
	start(m_instance->settings().get("JavaPath").toString(), m_arguments);
 | 
			
		||||
	if (!waitForStarted())
 | 
			
		||||
	{
 | 
			
		||||
		//TODO: error handling
 | 
			
		||||
@@ -211,17 +211,19 @@ void MinecraftProcess::genArgs()
 | 
			
		||||
	
 | 
			
		||||
	// window size
 | 
			
		||||
	QString windowSize;
 | 
			
		||||
    if (m_instance->getLaunchMaximized())
 | 
			
		||||
	if (m_instance->settings().get("LaunchMaximized").toBool())
 | 
			
		||||
		windowSize = "max";
 | 
			
		||||
	else
 | 
			
		||||
        windowSize = QString("%1x%2").arg(m_instance->getMinecraftWinWidth()).arg(m_instance->getMinecraftWinHeight());
 | 
			
		||||
		windowSize = QString("%1x%2").
 | 
			
		||||
				arg(m_instance->settings().get("MinecraftWinWidth").toInt()).
 | 
			
		||||
				arg(m_instance->settings().get("MinecraftWinHeight").toInt());
 | 
			
		||||
	
 | 
			
		||||
	// window title
 | 
			
		||||
	QString windowTitle;
 | 
			
		||||
	windowTitle.append("MultiMC: ").append(m_instance->name());
 | 
			
		||||
	
 | 
			
		||||
	// Java arguments
 | 
			
		||||
    m_arguments.append(splitArgs(m_instance->getJvmArgs()));
 | 
			
		||||
	m_arguments.append(splitArgs(m_instance->settings().get("JvmArgs").toString()));
 | 
			
		||||
	
 | 
			
		||||
#ifdef OSX
 | 
			
		||||
	// OSX dock icon and name
 | 
			
		||||
@@ -232,11 +234,11 @@ void MinecraftProcess::genArgs()
 | 
			
		||||
	// lwjgl
 | 
			
		||||
	QString lwjgl = m_instance->lwjglVersion();
 | 
			
		||||
	if (lwjgl != "Mojang")
 | 
			
		||||
        lwjgl = QDir(settings->getLWJGLDir() + "/" + lwjgl).absolutePath();
 | 
			
		||||
		lwjgl = QDir(globalSettings->get("LWJGLDir").toString() + "/" + lwjgl).absolutePath();
 | 
			
		||||
	
 | 
			
		||||
	// launcher arguments
 | 
			
		||||
    m_arguments << QString("-Xms%1m").arg(m_instance->getMinMemAlloc());
 | 
			
		||||
    m_arguments << QString("-Xmx%1m").arg(m_instance->getMaxMemAlloc());
 | 
			
		||||
	m_arguments << QString("-Xms%1m").arg(m_instance->settings().get("MinMemAlloc").toInt());
 | 
			
		||||
	m_arguments << QString("-Xmx%1m").arg(m_instance->settings().get("MaxMemAlloc").toInt());
 | 
			
		||||
	m_arguments << "-jar" << LAUNCHER_FILE;
 | 
			
		||||
	m_arguments << m_user;
 | 
			
		||||
	m_arguments << m_session;
 | 
			
		||||
 
 | 
			
		||||
@@ -53,7 +53,7 @@ void openInDefaultProgram(QString filename);
 | 
			
		||||
MainWindow::MainWindow(QWidget *parent) :
 | 
			
		||||
	QMainWindow(parent),
 | 
			
		||||
	ui(new Ui::MainWindow),
 | 
			
		||||
	instList(settings->get("InstanceDir").toString())
 | 
			
		||||
	instList(globalSettings->get("InstanceDir").toString())
 | 
			
		||||
{
 | 
			
		||||
	ui->setupUi(this);
 | 
			
		||||
	
 | 
			
		||||
@@ -78,7 +78,7 @@ void MainWindow::on_actionAddInstance_triggered()
 | 
			
		||||
 | 
			
		||||
void MainWindow::on_actionViewInstanceFolder_triggered()
 | 
			
		||||
{
 | 
			
		||||
	openInDefaultProgram(settings->get("InstanceDir").toString());
 | 
			
		||||
	openInDefaultProgram(globalSettings->get("InstanceDir").toString());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MainWindow::on_actionRefresh_triggered()
 | 
			
		||||
@@ -88,7 +88,7 @@ void MainWindow::on_actionRefresh_triggered()
 | 
			
		||||
 | 
			
		||||
void MainWindow::on_actionViewCentralModsFolder_triggered()
 | 
			
		||||
{
 | 
			
		||||
	openInDefaultProgram(settings->get("CentralModsDir").toString());
 | 
			
		||||
	openInDefaultProgram(globalSettings->get("CentralModsDir").toString());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MainWindow::on_actionCheckUpdate_triggered()
 | 
			
		||||
 
 | 
			
		||||
@@ -27,7 +27,7 @@ SettingsDialog::SettingsDialog(QWidget *parent) :
 | 
			
		||||
{
 | 
			
		||||
	ui->setupUi(this);
 | 
			
		||||
	
 | 
			
		||||
	loadSettings(settings);
 | 
			
		||||
	loadSettings(globalSettings);
 | 
			
		||||
	updateCheckboxStuff();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -84,7 +84,7 @@ void SettingsDialog::on_maximizedCheckBox_clicked(bool checked)
 | 
			
		||||
 | 
			
		||||
void SettingsDialog::on_buttonBox_accepted()
 | 
			
		||||
{
 | 
			
		||||
	applySettings(settings);
 | 
			
		||||
	applySettings(globalSettings);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void SettingsDialog::applySettings(SettingsObject *s)
 | 
			
		||||
 
 | 
			
		||||
@@ -19,6 +19,8 @@
 | 
			
		||||
#include <QObject>
 | 
			
		||||
#include <QDateTime>
 | 
			
		||||
 | 
			
		||||
#include <settingsobject.h>
 | 
			
		||||
 | 
			
		||||
#include "inifile.h"
 | 
			
		||||
 | 
			
		||||
#include "libinstance_config.h"
 | 
			
		||||
@@ -280,6 +282,16 @@ public:
 | 
			
		||||
	 */
 | 
			
		||||
	virtual void updateCurrentVersion(bool keepCurrent = false) = 0; 
 | 
			
		||||
	
 | 
			
		||||
	
 | 
			
		||||
	//// Settings System ////
 | 
			
		||||
	
 | 
			
		||||
	/*!
 | 
			
		||||
	 * \brief Gets this instance's settings object.
 | 
			
		||||
	 * This settings object stores instance-specific settings.
 | 
			
		||||
	 * \return A pointer to this instance's settings object.
 | 
			
		||||
	 */
 | 
			
		||||
	virtual SettingsObject &settings();
 | 
			
		||||
	
 | 
			
		||||
protected:
 | 
			
		||||
	/*!
 | 
			
		||||
	 * \brief Gets the value of the given field in the instance's config file.
 | 
			
		||||
 
 | 
			
		||||
@@ -17,6 +17,8 @@
 | 
			
		||||
 | 
			
		||||
#include <QFileInfo>
 | 
			
		||||
 | 
			
		||||
#include "settingsobject.h"
 | 
			
		||||
 | 
			
		||||
#include "pathutils.h"
 | 
			
		||||
 | 
			
		||||
Instance::Instance(const QString &rootDir, QObject *parent) :
 | 
			
		||||
@@ -104,3 +106,8 @@ void Instance::setField(const QString &name, QVariant val)
 | 
			
		||||
{
 | 
			
		||||
	config.set(name, val);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
SettingsObject &Instance::settings()
 | 
			
		||||
{
 | 
			
		||||
	return *globalSettings;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -162,4 +162,9 @@ private:
 | 
			
		||||
	QMap<QString, Setting *> m_settings;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*!
 | 
			
		||||
 * \brief A global settings object.
 | 
			
		||||
 */
 | 
			
		||||
LIBMMCSETTINGS_EXPORT extern SettingsObject *globalSettings;
 | 
			
		||||
 | 
			
		||||
#endif // SETTINGSOBJECT_H
 | 
			
		||||
 
 | 
			
		||||
@@ -18,6 +18,8 @@
 | 
			
		||||
 | 
			
		||||
#include <QVariant>
 | 
			
		||||
 | 
			
		||||
SettingsObject *globalSettings;
 | 
			
		||||
 | 
			
		||||
SettingsObject::SettingsObject(QObject *parent) :
 | 
			
		||||
	QObject(parent)
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -25,6 +25,8 @@
 | 
			
		||||
#include <QHash>
 | 
			
		||||
#include <QStringList>
 | 
			
		||||
 | 
			
		||||
#include "libutil_config.h"
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @file libutil/include/cmdutils.h
 | 
			
		||||
 * @brief commandline parsing utilities
 | 
			
		||||
@@ -37,7 +39,11 @@ namespace Commandline {
 | 
			
		||||
 * @brief The FlagStyle enum
 | 
			
		||||
 * Specifies how flags are decorated
 | 
			
		||||
 */
 | 
			
		||||
enum class FlagStyle {
 | 
			
		||||
 | 
			
		||||
namespace FlagStyle
 | 
			
		||||
{
 | 
			
		||||
enum LIBMMCUTIL_EXPORT Enum
 | 
			
		||||
{
 | 
			
		||||
	GNU,     /**< --option and -o (GNU Style) */
 | 
			
		||||
	Unix,    /**< -option and -o  (Unix Style) */
 | 
			
		||||
	Windows, /**< /option and /o  (Windows Style) */
 | 
			
		||||
@@ -47,11 +53,15 @@ enum class FlagStyle {
 | 
			
		||||
	Default = GNU
 | 
			
		||||
#endif
 | 
			
		||||
};
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief The ArgumentStyle enum
 | 
			
		||||
 */
 | 
			
		||||
enum class ArgumentStyle {
 | 
			
		||||
namespace ArgumentStyle 
 | 
			
		||||
{
 | 
			
		||||
enum LIBMMCUTIL_EXPORT Enum
 | 
			
		||||
{
 | 
			
		||||
	Space,          /**< --option=value */
 | 
			
		||||
	Equals,         /**< --option value */
 | 
			
		||||
	SpaceAndEquals, /**< --option[= ]value */
 | 
			
		||||
@@ -61,11 +71,21 @@ enum class ArgumentStyle {
 | 
			
		||||
	Default = SpaceAndEquals
 | 
			
		||||
#endif
 | 
			
		||||
};
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
namespace OptionType
 | 
			
		||||
{
 | 
			
		||||
enum LIBMMCUTIL_EXPORT Enum
 | 
			
		||||
{
 | 
			
		||||
	Switch,
 | 
			
		||||
	Option
 | 
			
		||||
};
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief The ParsingError class
 | 
			
		||||
 */
 | 
			
		||||
class ParsingError : public std::exception
 | 
			
		||||
class LIBMMCUTIL_EXPORT ParsingError : public std::exception
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
	ParsingError(const QString &what);
 | 
			
		||||
@@ -80,7 +100,7 @@ private:
 | 
			
		||||
/**
 | 
			
		||||
 * @brief The Parser class
 | 
			
		||||
 */
 | 
			
		||||
class Parser
 | 
			
		||||
class LIBMMCUTIL_EXPORT Parser
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
	/**
 | 
			
		||||
@@ -88,45 +108,46 @@ public:
 | 
			
		||||
	 * @param flagStyle the FlagStyle to use in this Parser
 | 
			
		||||
	 * @param argStyle the ArgumentStyle to use in this Parser
 | 
			
		||||
	 */
 | 
			
		||||
	Parser(FlagStyle flagStyle=FlagStyle::Default, ArgumentStyle argStyle=ArgumentStyle::Default);
 | 
			
		||||
	Parser(FlagStyle::Enum flagStyle = FlagStyle::Default, 
 | 
			
		||||
		   ArgumentStyle::Enum argStyle = ArgumentStyle::Default);
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * @brief set the flag style
 | 
			
		||||
	 * @param style
 | 
			
		||||
	 */
 | 
			
		||||
	void setFlagStyle(FlagStyle style);
 | 
			
		||||
	void setFlagStyle(FlagStyle::Enum style);
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * @brief get the flag style
 | 
			
		||||
	 * @return
 | 
			
		||||
	 */
 | 
			
		||||
	FlagStyle flagStyle();
 | 
			
		||||
	FlagStyle::Enum flagStyle();
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * @brief set the argument style
 | 
			
		||||
	 * @param style
 | 
			
		||||
	 */
 | 
			
		||||
	void setArgumentStyle(ArgumentStyle style);
 | 
			
		||||
	void setArgumentStyle(ArgumentStyle::Enum style);
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * @brief get the argument style
 | 
			
		||||
	 * @return
 | 
			
		||||
	 */
 | 
			
		||||
	ArgumentStyle argumentStyle();
 | 
			
		||||
	ArgumentStyle::Enum argumentStyle();
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * @brief define a boolean switch
 | 
			
		||||
	 * @param name the parameter name
 | 
			
		||||
	 * @param def the default value
 | 
			
		||||
	 */
 | 
			
		||||
	void addSwitch(QString name, bool def=false);
 | 
			
		||||
	void addSwitch(QString name, bool def = false);
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * @brief define an option that takes an additional argument
 | 
			
		||||
	 * @param name the parameter name
 | 
			
		||||
	 * @param def the default value
 | 
			
		||||
	 */
 | 
			
		||||
	void addOption(QString name, QVariant def=QVariant());
 | 
			
		||||
	void addOption(QString name, QVariant def = QVariant());
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * @brief define a positional argument
 | 
			
		||||
@@ -134,7 +155,7 @@ public:
 | 
			
		||||
	 * @param required wether this argument is required
 | 
			
		||||
	 * @param def the default value
 | 
			
		||||
	 */
 | 
			
		||||
	void addArgument(QString name, bool required=true, QVariant def=QVariant());
 | 
			
		||||
	void addArgument(QString name, bool required = true, QVariant def = QVariant());
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * @brief adds a flag to an existing parameter
 | 
			
		||||
@@ -153,7 +174,7 @@ public:
 | 
			
		||||
	 * Note: on positional arguments, metavar replaces the name as displayed.
 | 
			
		||||
	 *       on options , metavar replaces the value placeholder
 | 
			
		||||
	 */
 | 
			
		||||
	void addDocumentation(QString name, QString doc, QString metavar=QString());
 | 
			
		||||
	void addDocumentation(QString name, QString doc, QString metavar = QString());
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * @brief generate a help message
 | 
			
		||||
@@ -162,7 +183,7 @@ public:
 | 
			
		||||
	 * @param flagsInUsage whether we should use flags instead of options in the usage
 | 
			
		||||
	 * @return a help message
 | 
			
		||||
	 */
 | 
			
		||||
	QString compileHelp(QString progName, int helpIndent=22, bool flagsInUsage=true);
 | 
			
		||||
	QString compileHelp(QString progName, int helpIndent = 22, bool flagsInUsage = true);
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * @brief generate a short usage message
 | 
			
		||||
@@ -170,7 +191,7 @@ public:
 | 
			
		||||
	 * @param useFlags whether we should use flags instead of options
 | 
			
		||||
	 * @return a usage message
 | 
			
		||||
	 */
 | 
			
		||||
	QString compileUsage(QString progName, bool useFlags=true);
 | 
			
		||||
	QString compileUsage(QString progName, bool useFlags = true);
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * @brief parse
 | 
			
		||||
@@ -187,13 +208,8 @@ public:
 | 
			
		||||
	~Parser();
 | 
			
		||||
	
 | 
			
		||||
private:
 | 
			
		||||
	FlagStyle m_flagStyle;
 | 
			
		||||
	ArgumentStyle m_argStyle;
 | 
			
		||||
	
 | 
			
		||||
	enum class OptionType {
 | 
			
		||||
		Switch,
 | 
			
		||||
		Option
 | 
			
		||||
	};
 | 
			
		||||
	FlagStyle::Enum m_flagStyle;
 | 
			
		||||
	ArgumentStyle::Enum m_argStyle;
 | 
			
		||||
	
 | 
			
		||||
	// Important: the common part MUST BE COMMON ON ALL THREE structs
 | 
			
		||||
	struct CommonDef {
 | 
			
		||||
@@ -210,7 +226,7 @@ private:
 | 
			
		||||
		QString metavar;
 | 
			
		||||
		QVariant def;
 | 
			
		||||
		// option
 | 
			
		||||
		OptionType type;
 | 
			
		||||
		OptionType::Enum type;
 | 
			
		||||
		QChar flag;
 | 
			
		||||
	};
 | 
			
		||||
	
 | 
			
		||||
 
 | 
			
		||||
@@ -3,15 +3,17 @@
 | 
			
		||||
 | 
			
		||||
#include <QString>
 | 
			
		||||
 | 
			
		||||
#include "libutil_config.h"
 | 
			
		||||
 | 
			
		||||
namespace Util
 | 
			
		||||
{
 | 
			
		||||
// Get the Directory representing the User's Desktop
 | 
			
		||||
QString getDesktopDir();
 | 
			
		||||
LIBMMCUTIL_EXPORT QString getDesktopDir();
 | 
			
		||||
 | 
			
		||||
// Create a shortcut at *location*, pointing to *dest* called with the arguments *args*
 | 
			
		||||
// call it *name* and assign it the icon *icon*
 | 
			
		||||
// return true if operation succeeded
 | 
			
		||||
bool createShortCut(QString location, QString dest, QStringList args, QString name, QString iconLocation);
 | 
			
		||||
LIBMMCUTIL_EXPORT bool createShortCut(QString location, QString dest, QStringList args, QString name, QString iconLocation);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif // USERUTILS_H
 | 
			
		||||
 
 | 
			
		||||
@@ -24,27 +24,27 @@
 | 
			
		||||
namespace Util {
 | 
			
		||||
namespace Commandline {
 | 
			
		||||
 | 
			
		||||
Parser::Parser(FlagStyle flagStyle, ArgumentStyle argStyle)
 | 
			
		||||
Parser::Parser(FlagStyle::Enum flagStyle, ArgumentStyle::Enum argStyle)
 | 
			
		||||
{
 | 
			
		||||
	m_flagStyle = flagStyle;
 | 
			
		||||
	m_argStyle = argStyle;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// styles setter/getter
 | 
			
		||||
void Parser::setArgumentStyle(ArgumentStyle style)
 | 
			
		||||
void Parser::setArgumentStyle(ArgumentStyle::Enum style)
 | 
			
		||||
{
 | 
			
		||||
	m_argStyle = style;
 | 
			
		||||
}
 | 
			
		||||
ArgumentStyle Parser::argumentStyle()
 | 
			
		||||
ArgumentStyle::Enum Parser::argumentStyle()
 | 
			
		||||
{
 | 
			
		||||
	return m_argStyle;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Parser::setFlagStyle(FlagStyle style)
 | 
			
		||||
void Parser::setFlagStyle(FlagStyle::Enum style)
 | 
			
		||||
{
 | 
			
		||||
	m_flagStyle = style;
 | 
			
		||||
}
 | 
			
		||||
FlagStyle Parser::flagStyle()
 | 
			
		||||
FlagStyle::Enum Parser::flagStyle()
 | 
			
		||||
{
 | 
			
		||||
	return m_flagStyle;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -20,7 +20,7 @@
 | 
			
		||||
 | 
			
		||||
bool called_coinit = false;
 | 
			
		||||
 | 
			
		||||
HRESULT CreateLink(LPCSTR linkPath, LPCWSTR targetPath, LPCWSTR args)
 | 
			
		||||
HRESULT CreateLink(LPCSTR linkPath, LPCSTR targetPath, LPCSTR args)
 | 
			
		||||
{
 | 
			
		||||
	HRESULT hres;
 | 
			
		||||
	
 | 
			
		||||
@@ -98,14 +98,24 @@ bool Util::createShortCut(QString location, QString dest, QStringList args, QStr
 | 
			
		||||
	
 | 
			
		||||
	return true;
 | 
			
		||||
#elif WINDOWS
 | 
			
		||||
    QFile file(path, name + ".lnk");
 | 
			
		||||
    WCHAR *file_w;
 | 
			
		||||
    WCHAR *dest_w;
 | 
			
		||||
    WCHAR *args_w;
 | 
			
		||||
    file.fileName().toWCharArray(file_w);
 | 
			
		||||
    dest.toWCharArray(dest_w);
 | 
			
		||||
    args.toWCharArray(args_w);
 | 
			
		||||
    return SUCCEEDED(CreateLink(file_w, dest_w, args_w));
 | 
			
		||||
	// TODO: Fix
 | 
			
		||||
//	QFile file(PathCombine(location, name + ".lnk"));
 | 
			
		||||
//	WCHAR *file_w;
 | 
			
		||||
//	WCHAR *dest_w;
 | 
			
		||||
//	WCHAR *args_w;
 | 
			
		||||
//	file.fileName().toWCharArray(file_w);
 | 
			
		||||
//	dest.toWCharArray(dest_w);
 | 
			
		||||
	
 | 
			
		||||
//	QString argStr;
 | 
			
		||||
//	for (int i = 0; i < args.count(); i++)
 | 
			
		||||
//	{
 | 
			
		||||
//		argStr.append(args[i]);
 | 
			
		||||
//		argStr.append(" ");
 | 
			
		||||
//	}
 | 
			
		||||
//	argStr.toWCharArray(args_w);
 | 
			
		||||
	
 | 
			
		||||
//	return SUCCEEDED(CreateLink(file_w, dest_w, args_w));
 | 
			
		||||
	return false;
 | 
			
		||||
#else
 | 
			
		||||
	qWarning("Desktop Shortcuts not supported on your platform!");
 | 
			
		||||
	return false;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								main.cpp
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								main.cpp
									
									
									
									
									
								
							@@ -52,7 +52,7 @@ private:
 | 
			
		||||
	MinecraftProcess *proc;
 | 
			
		||||
	ConsoleWindow *console;
 | 
			
		||||
public:
 | 
			
		||||
	InstanceLauncher(QString instId) : QObject(), instances(settings->get("InstanceDir").toString())
 | 
			
		||||
	InstanceLauncher(QString instId) : QObject(), instances(globalSettings->get("InstanceDir").toString())
 | 
			
		||||
	{
 | 
			
		||||
		this->instId = instId;
 | 
			
		||||
	}
 | 
			
		||||
@@ -85,7 +85,7 @@ private slots:
 | 
			
		||||
	{
 | 
			
		||||
		// TODO: console
 | 
			
		||||
		console = new ConsoleWindow();
 | 
			
		||||
		proc = new MinecraftProcess(instance, response.getUsername(), response.getSessionID(), console);
 | 
			
		||||
		proc = new MinecraftProcess(instance, response.username(), response.sessionID(), console);
 | 
			
		||||
		//if (instance->getShowConsole())
 | 
			
		||||
		console->show();
 | 
			
		||||
		connect(proc, SIGNAL(ended()), SLOT(onTerminated()));
 | 
			
		||||
@@ -217,7 +217,7 @@ int main(int argc, char *argv[])
 | 
			
		||||
	QDir::setCurrent(args["dir"].toString());
 | 
			
		||||
	
 | 
			
		||||
	// load settings
 | 
			
		||||
	settings = new AppSettings(&app);
 | 
			
		||||
	globalSettings = new AppSettings(&app);
 | 
			
		||||
	
 | 
			
		||||
	// Register meta types.
 | 
			
		||||
	qRegisterMetaType<LoginResponse>("LoginResponse");
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user