mirror of
https://port.numenaute.org/aleajactaest/khanat-opennel-code.git
synced 2024-11-26 00:56:19 +00:00
Fixed: #1190 Run Georges Editor Qt on Mac OS X
This commit is contained in:
parent
7f9f4954bc
commit
8c147111e9
5 changed files with 76 additions and 37 deletions
|
@ -17,7 +17,7 @@ QT4_WRAP_CPP( OBJECT_VIEWER_WIDGET_MOC_SRCS ${OBJECT_VIEWER_WIDGET_HDR} )
|
||||||
|
|
||||||
SOURCE_GROUP(QtGeneratedMocSrc FILES ${OBJECT_VIEWER_WIDGET_MOC_SRCS})
|
SOURCE_GROUP(QtGeneratedMocSrc FILES ${OBJECT_VIEWER_WIDGET_MOC_SRCS})
|
||||||
|
|
||||||
ADD_LIBRARY(object_viewer_widget_qt SHARED
|
ADD_LIBRARY(object_viewer_widget_qt MODULE
|
||||||
${OBJECT_VIEWER_WIDGET_SRC}
|
${OBJECT_VIEWER_WIDGET_SRC}
|
||||||
${OBJECT_VIEWER_WIDGET_MOC_SRCS})
|
${OBJECT_VIEWER_WIDGET_MOC_SRCS})
|
||||||
|
|
||||||
|
|
|
@ -63,6 +63,8 @@ namespace NLQT
|
||||||
CObjectViewerWidget(QWidget *parent = 0);
|
CObjectViewerWidget(QWidget *parent = 0);
|
||||||
virtual ~CObjectViewerWidget();
|
virtual ~CObjectViewerWidget();
|
||||||
|
|
||||||
|
virtual QPaintEngine* paintEngine() const { return NULL; }
|
||||||
|
|
||||||
void setNelContext(NLMISC::INelContext &nelContext);
|
void setNelContext(NLMISC::INelContext &nelContext);
|
||||||
|
|
||||||
static CObjectViewerWidget &objViewWid() { return *_objectViewerWidget; }
|
static CObjectViewerWidget &objViewWid() { return *_objectViewerWidget; }
|
||||||
|
@ -159,13 +161,13 @@ namespace NLQT
|
||||||
|
|
||||||
virtual QString name() const {return ("ObjectViewerWidget");}
|
virtual QString name() const {return ("ObjectViewerWidget");}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
#if defined(NL_OS_WINDOWS)
|
#if defined(NL_OS_WINDOWS)
|
||||||
virtual bool winEvent(MSG * message, long * result);
|
virtual bool winEvent(MSG * message, long * result);
|
||||||
#elif defined(NL_OS_MAC)
|
#elif defined(NL_OS_MAC)
|
||||||
virtual bool macEvent(EventHandlerCallRef caller, EventRef event);
|
virtual bool macEvent(EventHandlerCallRef caller, EventRef event);
|
||||||
#elif defined(NL_OS_UNIX)
|
#elif defined(NL_OS_UNIX)
|
||||||
virtual bool x11Event(XEvent *event);
|
virtual bool x11Event(XEvent *event);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
private Q_SLOTS:
|
private Q_SLOTS:
|
||||||
|
|
|
@ -24,6 +24,17 @@ SOURCE_GROUP(QtResources FILES ${GEORGES_EDITOR_UIS} ${GEORGES_EDITOR_RCS})
|
||||||
SOURCE_GROUP(QtGeneratedUiHdr FILES ${GEORGES_EDITOR_UI_HDRS})
|
SOURCE_GROUP(QtGeneratedUiHdr FILES ${GEORGES_EDITOR_UI_HDRS})
|
||||||
SOURCE_GROUP(QtGeneratedMocSrc FILES ${GEORGES_EDITOR_MOC_SRCS})
|
SOURCE_GROUP(QtGeneratedMocSrc FILES ${GEORGES_EDITOR_MOC_SRCS})
|
||||||
|
|
||||||
|
if(APPLE)
|
||||||
|
SET(MACOSX_BUNDLE_INFO_STRING "Georges Editor Qt")
|
||||||
|
SET(MACOSX_BUNDLE_ICON_FILE "georges_logo.icns")
|
||||||
|
SET(MACOSX_BUNDLE_GUI_IDENTIFIER "")
|
||||||
|
SET(MACOSX_BUNDLE_LONG_VERSION_STRING ${NL_VERSION})
|
||||||
|
SET(MACOSX_BUNDLE_BUNDLE_NAME "Georges Editor Qt")
|
||||||
|
SET(MACOSX_BUNDLE_SHORT_VERSION_STRING "0.9")
|
||||||
|
SET(MACOSX_BUNDLE_BUNDLE_VERSION "0.9")
|
||||||
|
SET(MACOSX_BUNDLE_COPYRIGHT "Winchgate and The Ryzom Core Community")
|
||||||
|
ENDIF(APPLE)
|
||||||
|
|
||||||
ADD_EXECUTABLE(georges_editor_qt WIN32 MACOSX_BUNDLE ${GEORGES_EDITOR_SRC} ${GEORGES_EDITOR_MOC_SRCS} ${GEORGES_EDITOR_RC_SRCS} ${GEORGES_EDITOR_UI_HDRS})
|
ADD_EXECUTABLE(georges_editor_qt WIN32 MACOSX_BUNDLE ${GEORGES_EDITOR_SRC} ${GEORGES_EDITOR_MOC_SRCS} ${GEORGES_EDITOR_RC_SRCS} ${GEORGES_EDITOR_UI_HDRS})
|
||||||
|
|
||||||
TARGET_LINK_LIBRARIES(georges_editor_qt
|
TARGET_LINK_LIBRARIES(georges_editor_qt
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Georges Editor Qt
|
Georges Editor Qt
|
||||||
Copyright (C) 2010 Adrian Jaekel <aj at elane2k dot com>
|
Copyright (C) 2010 Adrian Jaekel <aj at elane2k dot com>
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
@ -23,6 +23,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
#include <QString>
|
#include <QString>
|
||||||
|
|
||||||
|
#include <nel/misc/debug.h>
|
||||||
|
|
||||||
NLQT::CConfiguration *Modules::_configuration = NULL;
|
NLQT::CConfiguration *Modules::_configuration = NULL;
|
||||||
NLQT::IObjectViewer *Modules::_objViewerInterface = NULL;
|
NLQT::IObjectViewer *Modules::_objViewerInterface = NULL;
|
||||||
NLQT::CMainWindow *Modules::_mainWindow = NULL;
|
NLQT::CMainWindow *Modules::_mainWindow = NULL;
|
||||||
|
@ -47,30 +49,55 @@ void Modules::release()
|
||||||
delete _configuration; _configuration = NULL;
|
delete _configuration; _configuration = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Modules::loadPlugin()
|
bool Modules::loadPlugin()
|
||||||
{
|
{
|
||||||
QDir pluginsDir(qApp->applicationDirPath());
|
#if defined(Q_OS_WIN)
|
||||||
/*#if defined(Q_OS_WIN)
|
QString pluginPath = qApp->applicationDirPath();
|
||||||
if (pluginsDir.dirName().toLower() == "debug" || pluginsDir.dirName().toLower() == "release")
|
QString pluginFilename = "object_viewer_widget_qt.dll";
|
||||||
pluginsDir.cdUp();
|
#elif defined(Q_OS_MAC)
|
||||||
#elif defined(Q_OS_MAC)
|
QString pluginPath = qApp->applicationDirPath() + "/../PlugIns/";
|
||||||
if (pluginsDir.dirName() == "MacOS") {
|
QString pluginFilename = "libobject_viewer_widget_qt.so";
|
||||||
pluginsDir.cdUp();
|
#else // LINUX
|
||||||
pluginsDir.cdUp();
|
QString pluginPath = qApp->applicationDirPath();
|
||||||
pluginsDir.cdUp();
|
QString pluginFilename = "libobject_viewer_widget_qt.so";
|
||||||
}
|
#endif
|
||||||
#endif*/
|
|
||||||
//pluginsDir.cd("plugins");
|
// if(!QFile::exists(pluginPath + pluginFilename))
|
||||||
//Q_FOREACH (QString fileName, pluginsDir.entryList(QDir::Files)) {
|
// {
|
||||||
QPluginLoader pluginLoader(pluginsDir.absoluteFilePath("object_viewer_widget_qt.dll"));
|
// nlwarning("Cannot find %s in %s, fallback to working dir",
|
||||||
QObject *plugin = pluginLoader.instance();
|
// pluginFilename.toStdString().c_str(), pluginPath.toStdString().c_str());
|
||||||
if (plugin)
|
//
|
||||||
{
|
// pluginPath = "";
|
||||||
_objViewerInterface = qobject_cast<NLQT::IObjectViewer *>(plugin);
|
//
|
||||||
if (_objViewerInterface)
|
// Q_FOREACH (QString path, qApp->libraryPaths())
|
||||||
return true;
|
// nlwarning("libraryPaths %s", path.toStdString().c_str());
|
||||||
}
|
// }
|
||||||
//}
|
|
||||||
|
QDir pluginsDir(pluginPath);
|
||||||
return false;
|
QPluginLoader pluginLoader(pluginsDir.absoluteFilePath(pluginFilename));
|
||||||
}
|
|
||||||
|
QObject *plugin = pluginLoader.instance();
|
||||||
|
if (plugin)
|
||||||
|
{
|
||||||
|
_objViewerInterface = qobject_cast<NLQT::IObjectViewer *>(plugin);
|
||||||
|
if (_objViewerInterface)
|
||||||
|
{
|
||||||
|
nlinfo("Loaded %s",
|
||||||
|
pluginsDir.absoluteFilePath(pluginFilename).toStdString().c_str());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
nlwarning("Loaded %s, but cannot cast to NLQT::IObjectViewer*",
|
||||||
|
pluginFilename.toStdString().c_str());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
nlwarning("Cannot get plugin instance for %s (searched in %s)",
|
||||||
|
pluginFilename.toStdString().c_str(),
|
||||||
|
(qApp->applicationDirPath() + pluginPath).toStdString().c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
|
@ -59,7 +59,6 @@ namespace NLQT
|
||||||
~CObjectViewerDialog();
|
~CObjectViewerDialog();
|
||||||
|
|
||||||
virtual void setVisible(bool visible);
|
virtual void setVisible(bool visible);
|
||||||
virtual QPaintEngine* paintEngine() const { return NULL; }
|
|
||||||
|
|
||||||
QAction *createSaveScreenshotAction(QObject *parent);
|
QAction *createSaveScreenshotAction(QObject *parent);
|
||||||
QAction *createSetBackgroundColor(QObject *parent);
|
QAction *createSetBackgroundColor(QObject *parent);
|
||||||
|
|
Loading…
Reference in a new issue