Changed: #1193 Object Viewer is converted into a plug-in to the Object Viewer Qt

This commit is contained in:
dnk-88 2011-02-28 15:17:16 +02:00
parent 3a51ef7f07
commit b1535e1981
262 changed files with 4143 additions and 4791 deletions

View file

@ -1,84 +1,40 @@
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${LIBXML2_INCLUDE_DIR} ${NEL_INCLUDE_DIR} ${QT_INCLUDES}) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${LIBXML2_INCLUDE_DIR} ${NEL_INCLUDE_DIR} ${QT_INCLUDES})
INCLUDE( ${QT_USE_FILE} ) INCLUDE( ${QT_USE_FILE} )
FILE(GLOB OBJECT_VIEWER_SRC configuration.h entity.h object_viewer.h particle_editor.h modules.h sound_system.h CONFIGURE_FILE(translations/translations.qrc ${CMAKE_CURRENT_BINARY_DIR}/translations.qrc COPYONLY)
particle_node.h ps_initial_pos.h dup_ps.h vegetable_editor.h vegetable_node.h
extension_system/iplugin_spec.h extension_system/plugin_spec.h
extension_system/*.cpp *.cpp)
SET(OBJECT_VIEWER_HDR main_window.h graphics_viewport.h animation_dialog.h FILE(GLOB OBJECT_VIEWER_SRC extension_system/*.h
animation_set_dialog.h settings_dialog.h setup_fog_dialog.h extension_system/*.cpp
slot_manager_dialog.h particle_control_dialog.h particle_workspace_dialog.h *.h *.cpp)
particle_tree_model.h particle_system_page.h particle_workspace_page.h edit_range_widget.h
emitter_page.h attrib_widget.h located_bindable_page.h located_page.h
particle_force_page.h particle_light_page.h particle_zone_page.h particle_sound_page.h
basic_edit_widget.h direction_widget.h color_edit_widget.h particle_property_dialog.h
ps_mover_page.h value_blender_dialog.h value_gradient_dialog.h
value_from_emitter_dialog.h curve_dialog.h bin_op_dialog.h hoverpoints.h
mesh_widget.h morph_mesh_dialog.h constraint_mesh_widget.h tail_particle_widget.h
auto_lod_dialog.h particle_texture_widget.h particle_texture_anim_widget.h
multi_tex_dialog.h spinner_dialog.h follow_path_dialog.h water_pool_dialog.h
skeleton_scale_dialog.h skeleton_tree_model.h particle_link_skeleton_dialog.h
vegetable_dialog.h global_wind_dialog.h day_night_dialog.h sun_color_dialog.h
vegetable_noise_value_widget.h vegetable_density_page.h vegetable_landscape_page.h
vegetable_scale_page.h vegetable_appearance_page.h vegetable_rotate_page.h
tune_mrm_dialog.h tune_timer_dialog.h camera_control.h
extension_system/iplugin_manager.h extension_system/plugin_manager.h)
SET(OBJECT_VIEWER_UIS animation_form.ui animation_set_form.ui settings_form.ui
setup_fog_form.ui slot_form.ui particle_control_form.ui particle_workspace_form.ui
edit_range_float_form.ui edit_range_uint_form.ui particle_system_form.ui workspace_form.ui
attrib_form.ui emitter_form.ui located_bindable_form.ui located_form.ui
particle_force_form.ui particle_light_form.ui particle_zone_form.ui particle_sound_form.ui
basic_edit_form.ui direction_form.ui color_edit_form.ui ps_mover_form.ui curve_form.ui
mesh_form.ui morph_mesh_form.ui constraint_mesh_form.ui tail_form.ui auto_lod_form.ui
particle_texture_form.ui particle_texture_anim_form.ui multi_tex_form.ui skeleton_scale_form.ui
particle_link_skeleton_form.ui water_pool_form.ui vegetable_dialog_form.ui
vegetable_noise_value_form.ui global_wind_form.ui sun_color_form.ui day_night_form.ui
vegetable_density_form.ui vegetable_apperance_form.ui vegetable_landscape_form.ui
vegetable_rotate_form.ui vegetable_scale_form.ui tune_mrm_form.ui tune_timer_form.ui)
SET(OBJECT_VIEWER_RCS object_viewer_qt.qrc) SET(OBJECT_VIEWER_HDR extension_system/iplugin_manager.h
extension_system/plugin_manager.h)
SET(LANGUAGES en fr de ru) SET(OBJECT_VIEWER_RCS object_viewer_qt.qrc ${CMAKE_CURRENT_BINARY_DIR}/translations.qrc)
SET(OBJECT_VIEWER_TS translations/object_viewer_qt_en.ts
translations/object_viewer_qt_fr.ts
translations/object_viewer_qt_de.ts
translations/object_viewer_qt_ru.ts)
SET(QT_USE_QTGUI TRUE) SET(QT_USE_QTGUI TRUE)
SET(QT_USE_QTOPENGL TRUE) SET(QT_USE_QTOPENGL TRUE)
QT4_ADD_RESOURCES( OBJECT_VIEWER_RC_SRCS ${OBJECT_VIEWER_RCS} ) QT4_ADD_TRANSLATION(OBJECT_VIEWER_QM ${OBJECT_VIEWER_TS})
QT4_ADD_RESOURCES( OBJECT_VIEWER_RC_SRCS ${OBJECT_VIEWER_RCS})
QT4_WRAP_CPP( OBJECT_VIEWER_MOC_SRCS ${OBJECT_VIEWER_HDR} ) QT4_WRAP_CPP( OBJECT_VIEWER_MOC_SRCS ${OBJECT_VIEWER_HDR} )
QT4_WRAP_UI( OBJECT_VIEWER_UI_HDRS ${OBJECT_VIEWER_UIS} )
FOREACH(LANGUAGE ${LANGUAGES}) SOURCE_GROUP(QtResources FILES ${OBJECT_VIEWER_RCS})
SET (TS ${CMAKE_CURRENT_SOURCE_DIR}/translations/object_viewer_qt_${LANGUAGE}.ts) SOURCE_GROUP(QtGeneratedMocQrcSrc FILES ${OBJECT_VIEWER_MOC_SRCS} ${OBJECT_VIEWER_RC_SRCS})
SET (QM ${CMAKE_CURRENT_SOURCE_DIR}/translations/object_viewer_qt_${LANGUAGE}.qm)
SET (TRANSLATIONS ${TRANSLATIONS} ${TS})
SET (TRANSLATIONS_BINARY ${TRANSLATIONS_BINARY} ${QM})
ADD_CUSTOM_COMMAND (OUTPUT ${QM} COMMAND ${QT_LRELEASE_EXECUTABLE} ${TS} MAIN_DEPENDENCY ${TS})
ENDFOREACH()
ADD_CUSTOM_TARGET (translations COMMAND ${QT_LUPDATE_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR} -recursive -no-obsolete -ts ${TRANSLATIONS})
ADD_CUSTOM_COMMAND (TARGET translations COMMAND ${QT_LRELEASE_EXECUTABLE} ${TRANSLATIONS})
SOURCE_GROUP(QtResources FILES ${OBJECT_VIEWER_UIS} ${OBJECT_VIEWER_RCS})
SOURCE_GROUP(QtGeneratedUiHdr FILES ${OBJECT_VIEWER_UI_HDRS})
SOURCE_GROUP(QtGeneratedMocSrc FILES ${OBJECT_VIEWER_MOC_SRCS})
ADD_EXECUTABLE(object_viewer_qt WIN32 MACOSX_BUNDLE ADD_EXECUTABLE(object_viewer_qt WIN32 MACOSX_BUNDLE
${OBJECT_VIEWER_SRC} ${OBJECT_VIEWER_SRC}
${OBJECT_VIEWER_MOC_SRCS} ${OBJECT_VIEWER_MOC_SRCS}
${OBJECT_VIEWER_RC_SRCS} ${OBJECT_VIEWER_RC_SRCS})
${OBJECT_VIEWER_UI_HDRS}
${TRANSLATIONS})
TARGET_LINK_LIBRARIES(object_viewer_qt TARGET_LINK_LIBRARIES(object_viewer_qt
nelmisc nelmisc
nel3d
nelsound
nelligo
nelgeorges
${QT_LIBRARIES} ${QT_LIBRARIES}
${QT_QTOPENGL_LIBRARY}
${QT_QTMAIN_LIBRARY}) ${QT_QTMAIN_LIBRARY})
ADD_DEFINITIONS(-DQT_NO_KEYWORDS ${LIBXML2_DEFINITIONS} ${QT_DEFINITIONS}) ADD_DEFINITIONS(-DQT_NO_KEYWORDS ${LIBXML2_DEFINITIONS} ${QT_DEFINITIONS})

View file

@ -15,9 +15,19 @@
// You should have received a copy of the GNU Affero General Public License // You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "stdpch.h" // Project includes
#include "extension_system/iplugin_spec.h"
#include "extension_system/plugin_manager.h"
// NeL includes
#include <nel/misc/types_nl.h> #include <nel/misc/types_nl.h>
#include <nel/misc/app_context.h> #include <nel/misc/app_context.h>
#include <nel/misc/debug.h>
#include <nel/misc/common.h>
#include <nel/misc/file.h>
#include <nel/misc/dynloadlib.h>
#include <nel/misc/path.h>
#include <nel/misc/command.h>
// Qt includes // Qt includes
#include <QtCore/QDir> #include <QtCore/QDir>
@ -29,19 +39,6 @@
#include <QtGui/QApplication> #include <QtGui/QApplication>
#include <QtGui/QSplashScreen> #include <QtGui/QSplashScreen>
// NeL includes
#include <nel/misc/debug.h>
#include <nel/misc/common.h>
#include <nel/misc/file.h>
#include <nel/misc/dynloadlib.h>
#include <nel/misc/path.h>
#include <nel/misc/command.h>
// Project includes
#include "modules.h"
#include "extension_system/iplugin_spec.h"
#include "extension_system/plugin_manager.h"
static const char *appNameC = "ObjectViewerQt"; static const char *appNameC = "ObjectViewerQt";
// nel_qt log file name // nel_qt log file name
@ -57,17 +54,12 @@ static const char *appNameC = "ObjectViewerQt";
# define NLQT_USE_LOG 1 # define NLQT_USE_LOG 1
#endif #endif
using namespace std;
using namespace NLMISC;
namespace NLQT namespace NLQT
{ {
namespace namespace
{ {
NLMISC::CFileDisplayer *s_FileDisplayer = NULL;
CFileDisplayer *s_FileDisplayer = NULL;
} /* anonymous namespace */ } /* anonymous namespace */
} /* namespace NLQT */ } /* namespace NLQT */
@ -106,28 +98,26 @@ static inline QString msgCoreLoadFailure(const QString &why)
return QCoreApplication::translate("Application", "Failed to load Core plugin: %1").arg(why); return QCoreApplication::translate("Application", "Failed to load Core plugin: %1").arg(why);
} }
#define OVQT_OLD true
sint main(int argc, char **argv) sint main(int argc, char **argv)
{ {
// go nel! // go nel!
new NLMISC::CApplicationContext; new NLMISC::CApplicationContext;
{ {
// use log.log if NEL_LOG_IN_FILE and NLQT_USE_LOG_LOG defined as 1 // use log.log if NEL_LOG_IN_FILE and NLQT_USE_LOG_LOG defined as 1
createDebug(NULL, NLQT_USE_LOG_LOG, false); NLMISC::createDebug(NULL, NLQT_USE_LOG_LOG, false);
#if NLQT_USE_LOG #if NLQT_USE_LOG
// create NLQT_LOG_FILE // create NLQT_LOG_FILE
// filedisplayer only deletes the 001 etc // filedisplayer only deletes the 001 etc
if (NLQT_ERASE_LOG && CFile::isExists(NLQT_LOG_FILE)) if (NLQT_ERASE_LOG && NLMISC::CFile::isExists(NLQT_LOG_FILE))
CFile::deleteFile(NLQT_LOG_FILE); NLMISC::CFile::deleteFile(NLQT_LOG_FILE);
// initialize the log file // initialize the log file
NLQT::s_FileDisplayer = new CFileDisplayer(); NLQT::s_FileDisplayer = new NLMISC::CFileDisplayer();
NLQT::s_FileDisplayer->setParam(NLQT_LOG_FILE, NLQT_ERASE_LOG); NLQT::s_FileDisplayer->setParam(NLQT_LOG_FILE, NLQT_ERASE_LOG);
DebugLog->addDisplayer(NLQT::s_FileDisplayer); NLMISC::DebugLog->addDisplayer(NLQT::s_FileDisplayer);
InfoLog->addDisplayer(NLQT::s_FileDisplayer); NLMISC::InfoLog->addDisplayer(NLQT::s_FileDisplayer);
WarningLog->addDisplayer(NLQT::s_FileDisplayer); NLMISC::WarningLog->addDisplayer(NLQT::s_FileDisplayer);
AssertLog->addDisplayer(NLQT::s_FileDisplayer); NLMISC::AssertLog->addDisplayer(NLQT::s_FileDisplayer);
ErrorLog->addDisplayer(NLQT::s_FileDisplayer); NLMISC::ErrorLog->addDisplayer(NLQT::s_FileDisplayer);
#endif #endif
nlinfo("Welcome to NeL Object Viewer Qt!"); nlinfo("Welcome to NeL Object Viewer Qt!");
@ -145,7 +135,7 @@ sint main(int argc, char **argv)
QTranslator qtTranslator; QTranslator qtTranslator;
QString locale = settings->value("Language", QLocale::system().name()).toString(); QString locale = settings->value("Language", QLocale::system().name()).toString();
QString qtTrPath = QLibraryInfo::location(QLibraryInfo::TranslationsPath); QString qtTrPath = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
translator.load("object_viewer_qt_" + locale, ":/translations"); translator.load("object_viewer_qt_" + locale, ":/");
qtTranslator.load("qt_" + locale, qtTrPath); qtTranslator.load("qt_" + locale, qtTrPath);
app.installTranslator(&translator); app.installTranslator(&translator);
app.installTranslator(&qtTranslator); app.installTranslator(&qtTranslator);
@ -155,41 +145,6 @@ sint main(int argc, char **argv)
CLibrary::addLibPath((qApp->applicationDirPath() + QString("/../PlugIns/nel")).toStdString()); CLibrary::addLibPath((qApp->applicationDirPath() + QString("/../PlugIns/nel")).toStdString());
#endif #endif
#if defined(OVQT_OLD)
Modules::init();
Modules::plugMan().setSettings(settings);
// load and set remap extensions from config
Modules::config().configRemapExtensions();
// load and set search paths from config
Modules::config().configSearchPaths();
Modules::mainWin().showMaximized();
Modules::plugMan().addObject(&Modules::mainWin());
#if !defined(NL_OS_MAC)
Modules::plugMan().setPluginPaths(QStringList() << QString("./plugins"));
#else
Modules::plugMan().setPluginPaths(QStringList() <<
qApp->applicationDirPath() + QString("/../PlugIns/ovqt"));
#endif
Modules::plugMan().loadPlugins();
QStringList errors;
Q_FOREACH (ExtensionSystem::IPluginSpec *spec, Modules::plugMan().plugins())
if (spec->hasError())
errors.append(spec->fileName() + " : " + spec->errorString());
if (!errors.isEmpty())
QMessageBox::warning(0, QCoreApplication::translate("Application", "Object Viewer Qt - Plugin loader messages"),
errors.join(QString::fromLatin1("\n\n")));
splash->finish(&Modules::mainWin());
int result = app.exec();
Modules::release();
#else
ExtensionSystem::CPluginManager pluginManager; ExtensionSystem::CPluginManager pluginManager;
pluginManager.setSettings(settings); pluginManager.setSettings(settings);
QStringList pluginPaths; QStringList pluginPaths;
@ -239,7 +194,5 @@ sint main(int argc, char **argv)
errors.join(QString::fromLatin1("\n\n"))); errors.join(QString::fromLatin1("\n\n")));
int result = app.exec(); int result = app.exec();
#endif
return result; return result;
} }

View file

@ -1,62 +1,5 @@
<RCC> <RCC>
<qresource prefix="/"> <qresource prefix="/">
<file>images/nel.png</file>
<file>images/open-file.png</file>
<file>images/go-down.png</file>
<file>images/go-up.png</file>
<file>images/list-add.png</file>
<file>images/list-remove.png</file>
<file>images/play.png</file>
<file>images/pause.png</file>
<file>images/stop.png</file>
<file>images/seek-backward.png</file>
<file>images/seek-forward.png</file>
<file>images/skip-backward.png</file>
<file>images/skip-forward.png</file>
<file>images/preferences.png</file>
<file>images/time.png</file>
<file>images/anim.png</file>
<file>images/animset.png</file>
<file>images/dqynight.png</file>
<file>images/mixer.png</file>
<file>images/pqrticles.png</file>
<file>images/sound.png</file>
<file>images/veget.png</file>
<file>images/water.png</file>
<file>images/wind.png</file>
<file>images/ico_bgcolor.png</file>
<file>images/ico_framedelay.png</file>
<file>images/ico_skelscale.png</file>
<file>images/ico_mrm_mesh.png</file>
<file>images/ico_light_group.png</file>
<file>images/clear.png</file>
<file>images/insert.png</file>
<file>images/new.png</file>
<file>images/refresh.png</file>
<file>images/save-as.png</file>
<file>images/save.png</file>
<file>images/insert-horizontal.png</file>
<file>images/polymode.png</file>
<file>images/rmfill.png</file>
<file>images/rmline.png</file>
<file>images/rmpoints.png</file>
<file>images/cam_del.png</file>
<file>images/cam_add.png</file>
<file>images/Emitter.bmp</file>
<file>images/Force.bmp</file>
<file>images/nel_ide_load.png</file> <file>images/nel_ide_load.png</file>
<file>images/bad_particle_system_item.png</file> </qresource>
<file>images/particle_system_item.png</file>
<file>images/instance_item.png</file>
<file>images/light_item.png</file>
<file>images/located_item.png</file>
<file>images/particle_item.png</file>
<file>images/sound_item.png</file>
<file>images/workspace_item.png</file>
<file>images/collision_zone_item.png</file>
<file>translations/object_viewer_qt_en.qm</file>
<file>translations/object_viewer_qt_fr.qm</file>
<file>translations/object_viewer_qt_de.qm</file>
<file>translations/object_viewer_qt_ru.qm</file>
</qresource>
</RCC> </RCC>

View file

@ -2,4 +2,5 @@ ADD_SUBDIRECTORY(core)
ADD_SUBDIRECTORY(example) ADD_SUBDIRECTORY(example)
ADD_SUBDIRECTORY(ovqt_sheet_builder) ADD_SUBDIRECTORY(ovqt_sheet_builder)
ADD_SUBDIRECTORY(log) ADD_SUBDIRECTORY(log)
ADD_SUBDIRECTORY(disp_sheet_id) ADD_SUBDIRECTORY(disp_sheet_id)
ADD_SUBDIRECTORY(object_viewer)

View file

@ -49,8 +49,7 @@ CorePlugin::~CorePlugin()
qDeleteAll(_autoReleaseObjects); qDeleteAll(_autoReleaseObjects);
_autoReleaseObjects.clear(); _autoReleaseObjects.clear();
if (_oldOVQT) delete _mainWindow;
delete _mainWindow;
} }
bool CorePlugin::initialize(ExtensionSystem::IPluginManager *pluginManager, QString *errorString) bool CorePlugin::initialize(ExtensionSystem::IPluginManager *pluginManager, QString *errorString)
@ -58,71 +57,26 @@ bool CorePlugin::initialize(ExtensionSystem::IPluginManager *pluginManager, QStr
Q_UNUSED(errorString); Q_UNUSED(errorString);
_plugMan = pluginManager; _plugMan = pluginManager;
// for old ovqt _mainWindow = new MainWindow(pluginManager);
QMainWindow *wnd = qobject_cast<QMainWindow *>(_plugMan->objectByName("CMainWindow")); /* if (QtWin::isCompositionEnabled())
if (wnd)
{ {
_pluginView = new ExtensionSystem::CPluginView(_plugMan); QtWin::extendFrameIntoClientArea(_mainWindow);
QMenu *toolsMenu = qobject_cast<QMenu *>(_plugMan->objectByName("ovqt.Menu.Tools")); _mainWindow->setContentsMargins(0, 0, 0, 0);
QMenu *helpMenu = qobject_cast<QMenu *>(_plugMan->objectByName("ovqt.Menu.Help"));
nlassert(toolsMenu);
nlassert(helpMenu);
QAction *newAction = toolsMenu->addAction(tr("New settings"));
QAction *newAction2 = helpMenu->addAction(tr("About plugins"));
newAction->setIcon(QIcon(Constants::ICON_SETTINGS));
connect(newAction, SIGNAL(triggered()), this, SLOT(execSettings()));
connect(newAction2, SIGNAL(triggered()), _pluginView, SLOT(show()));
_oldOVQT = false;
return true;
}
else
{
_mainWindow = new MainWindow(pluginManager);
#ifdef Q_WS_X11
_mainWindow->setAttribute(Qt::WA_TranslucentBackground);
_mainWindow->setAttribute(Qt::WA_NoSystemBackground, false);
QPalette pal = _mainWindow->palette();
QColor bg = pal.window().color();
bg.setAlpha(180);
pal.setColor(QPalette::Window, bg);
_mainWindow->setPalette(pal);
_mainWindow->ensurePolished(); // workaround Oxygen filling the background
_mainWindow->setAttribute(Qt::WA_StyledBackground, false);
#endif
if (QtWin::isCompositionEnabled())
{
QtWin::extendFrameIntoClientArea(_mainWindow);
_mainWindow->setContentsMargins(0, 0, 0, 0);
}
_oldOVQT = true;
bool success = _mainWindow->initialize(errorString);
CSearchPathsSettingsPage *serchPathPage = new CSearchPathsSettingsPage(this);
serchPathPage->applySearchPaths();
addAutoReleasedObject(serchPathPage);
return success;
} }
*/ bool success = _mainWindow->initialize(errorString);
CSearchPathsSettingsPage *serchPathPage = new CSearchPathsSettingsPage(this);
serchPathPage->applySearchPaths();
addAutoReleasedObject(serchPathPage);
return success;
} }
void CorePlugin::extensionsInitialized() void CorePlugin::extensionsInitialized()
{ {
_pluginView = new ExtensionSystem::CPluginView(_plugMan); _mainWindow->extensionsInitialized();
if (_oldOVQT)
_mainWindow->extensionsInitialized();
} }
void CorePlugin::shutdown() void CorePlugin::shutdown()
{ {
delete _pluginView;
}
void CorePlugin::execSettings()
{
CSettingsDialog settingsDialog(_plugMan);
settingsDialog.show();
settingsDialog.execDialog();
} }
void CorePlugin::setNelContext(NLMISC::INelContext *nelContext) void CorePlugin::setNelContext(NLMISC::INelContext *nelContext)

View file

@ -69,15 +69,10 @@ public:
protected: protected:
NLMISC::CLibraryContext *_LibContext; NLMISC::CLibraryContext *_LibContext;
private Q_SLOTS:
void execSettings();
private: private:
ExtensionSystem::IPluginManager *_plugMan; ExtensionSystem::IPluginManager *_plugMan;
ExtensionSystem::CPluginView *_pluginView;
MainWindow *_mainWindow; MainWindow *_mainWindow;
QList<QObject *> _autoReleaseObjects; QList<QObject *> _autoReleaseObjects;
bool _oldOVQT;
}; };
} // namespace Core } // namespace Core

View file

@ -59,6 +59,7 @@ MainWindow::MainWindow(ExtensionSystem::IPluginManager *pluginManager, QWidget *
m_tabWidget = new QTabWidget(this); m_tabWidget = new QTabWidget(this);
m_tabWidget->setTabPosition(QTabWidget::South); m_tabWidget->setTabPosition(QTabWidget::South);
m_tabWidget->setMovable(true);
setCentralWidget(m_tabWidget); setCentralWidget(m_tabWidget);
setDockNestingEnabled(true); setDockNestingEnabled(true);

View file

@ -44,21 +44,16 @@ bool MyPlugin::initialize(ExtensionSystem::IPluginManager *pluginManager, QStrin
void MyPlugin::extensionsInitialized() void MyPlugin::extensionsInitialized()
{ {
Core::ICore *core = Core::ICore::instance(); Core::ICore *core = Core::ICore::instance();
if (core == 0) Core::IMenuManager *menuManager = core->menuManager();
nlinfo("This not ovqt ng"); //menuManager = _plugMan->getObject<Core::IMenuManager>();
else QAction *exampleAction1 = new QAction("Example1", this);
{ QAction *exampleAction2 = new QAction("Example2", this);
Core::IMenuManager *menuManager = core->menuManager(); QAction *aboutQtAction = menuManager->action(Core::Constants::ABOUT_QT);
//menuManager = _plugMan->getObject<Core::IMenuManager>(); QMenu *helpMenu = menuManager->menu(Core::Constants::M_HELP);
QAction *exampleAction1 = new QAction("Example1", this); helpMenu->insertAction(aboutQtAction, exampleAction1);
QAction *exampleAction2 = new QAction("Example2", this); helpMenu->addSeparator();
QAction *aboutQtAction = menuManager->action(Core::Constants::ABOUT_QT); helpMenu->addAction(exampleAction2);
QMenu *helpMenu = menuManager->menu(Core::Constants::M_HELP); menuManager->menuBar()->addMenu("ExampleMenu");
helpMenu->insertAction(aboutQtAction, exampleAction1);
helpMenu->addSeparator();
helpMenu->addAction(exampleAction2);
menuManager->menuBar()->addMenu("ExampleMenu");
}
} }
void MyPlugin::setNelContext(NLMISC::INelContext *nelContext) void MyPlugin::setNelContext(NLMISC::INelContext *nelContext)

View file

@ -0,0 +1,154 @@
INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
${LIBXML2_INCLUDE_DIR}
${QT_INCLUDES})
FILE(GLOB SRC *.cpp *.h)
SET(OVQT_EXT_SYS_SRC ${CMAKE_CURRENT_SOURCE_DIR}/../../extension_system/iplugin.h
${CMAKE_CURRENT_SOURCE_DIR}/../../extension_system/iplugin_manager.h
${CMAKE_CURRENT_SOURCE_DIR}/../../extension_system/iplugin_spec.h)
SET(OBJECT_VIEWER_PLUGIN_HDR object_viewer_plugin.h
main_window.h
graphics_viewport.h
animation_dialog.h
animation_set_dialog.h
settings_dialog.h
setup_fog_dialog.h
slot_manager_dialog.h
particle_control_dialog.h
particle_workspace_dialog.h
particle_tree_model.h
particle_system_page.h
particle_workspace_page.h
edit_range_widget.h
emitter_page.h
attrib_widget.h
located_bindable_page.h
located_page.h
particle_force_page.h
particle_light_page.h
particle_zone_page.h
particle_sound_page.h
basic_edit_widget.h
direction_widget.h
color_edit_widget.h
particle_property_dialog.h
ps_mover_page.h
value_blender_dialog.h
value_gradient_dialog.h
value_from_emitter_dialog.h
curve_dialog.h
bin_op_dialog.h
hoverpoints.h
mesh_widget.h
morph_mesh_dialog.h
constraint_mesh_widget.h
tail_particle_widget.h
auto_lod_dialog.h
particle_texture_widget.h
particle_texture_anim_widget.h
multi_tex_dialog.h
spinner_dialog.h
follow_path_dialog.h
water_pool_dialog.h
skeleton_scale_dialog.h
skeleton_tree_model.h
particle_link_skeleton_dialog.h
vegetable_dialog.h
global_wind_dialog.h
day_night_dialog.h
sun_color_dialog.h
vegetable_noise_value_widget.h
vegetable_density_page.h
vegetable_landscape_page.h
vegetable_scale_page.h
vegetable_appearance_page.h
vegetable_rotate_page.h
tune_mrm_dialog.h
tune_timer_dialog.h
camera_control.h)
SET(OBJECT_VIEWER_PLUGIN_UIS animation_form.ui
animation_set_form.ui
settings_form.ui
setup_fog_form.ui
slot_form.ui
particle_control_form.ui
particle_workspace_form.ui
edit_range_float_form.ui
edit_range_uint_form.ui
particle_system_form.ui
workspace_form.ui
attrib_form.ui
emitter_form.ui
located_bindable_form.ui
located_form.ui
particle_force_form.ui
particle_light_form.ui
particle_zone_form.ui
particle_sound_form.ui
basic_edit_form.ui
direction_form.ui
color_edit_form.ui
ps_mover_form.ui
curve_form.ui
mesh_form.ui
morph_mesh_form.ui
constraint_mesh_form.ui
tail_form.ui
auto_lod_form.ui
particle_texture_form.ui
particle_texture_anim_form.ui
multi_tex_form.ui
skeleton_scale_form.ui
particle_link_skeleton_form.ui
water_pool_form.ui
vegetable_dialog_form.ui
vegetable_noise_value_form.ui
global_wind_form.ui
sun_color_form.ui
day_night_form.ui
vegetable_density_form.ui
vegetable_apperance_form.ui
vegetable_landscape_form.ui
vegetable_rotate_form.ui
vegetable_scale_form.ui
tune_mrm_form.ui
tune_timer_form.ui)
SET(OBJECT_VIEWER_PLUGIN_RCS object_viewer.qrc)
SET(QT_USE_QTGUI TRUE)
SET(QT_USE_QTOPENGL TRUE)
QT4_ADD_RESOURCES(OBJECT_VIEWER_PLUGIN_RC_SRCS ${OBJECT_VIEWER_PLUGIN_RCS})
QT4_WRAP_CPP(OBJECT_VIEWER_PLUGIN_MOC_SRC ${OBJECT_VIEWER_PLUGIN_HDR})
QT4_WRAP_UI(OBJECT_VIEWER_PLUGIN_UI_HDRS ${OBJECT_VIEWER_PLUGIN_UIS})
SOURCE_GROUP(QtResources FILES ${OBJECT_VIEWER_PLUGIN_UIS})
SOURCE_GROUP(QtGeneratedUiHdr FILES ${OBJECT_VIEWER_PLUGIN_UI_HDRS})
SOURCE_GROUP(QtGeneratedMocSrc FILES ${OBJECT_VIEWER_PLUGIN_MOC_SRC})
SOURCE_GROUP("Object Viewer Plugin" FILES ${SRC})
SOURCE_GROUP("OVQT Extension System" FILES ${OVQT_EXT_SYS_SRC})
ADD_LIBRARY(ovqt_plugin_object_viewer MODULE ${SRC} ${OBJECT_VIEWER_PLUGIN_MOC_SRC} ${OVQT_EXT_SYS_SRC} ${OBJECT_VIEWER_PLUGIN_UI_HDRS} ${OBJECT_VIEWER_PLUGIN_RC_SRCS})
TARGET_LINK_LIBRARIES(ovqt_plugin_object_viewer
ovqt_plugin_core
nelmisc
nel3d
nelsound
nelligo
nelgeorges
${QT_LIBRARIES}
${QT_QTOPENGL_LIBRARY})
NL_DEFAULT_PROPS(ovqt_plugin_object_viewer "NeL, Tools, 3D: Object Viewer Qt Plugin: Object Viewer")
NL_ADD_RUNTIME_FLAGS(ovqt_plugin_object_viewer)
NL_ADD_LIB_SUFFIX(ovqt_plugin_object_viewer)
ADD_DEFINITIONS(-DQT_NO_KEYWORDS ${LIBXML2_DEFINITIONS} -DQT_PLUGIN -DQT_SHARED ${QT_DEFINITIONS})
INSTALL(TARGETS ovqt_plugin_object_viewer LIBRARY DESTINATION lib RUNTIME DESTINATION bin ARCHIVE DESTINATION lib COMPONENT tools3d)

View file

@ -192,7 +192,7 @@
<string/> <string/>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="object_viewer_qt.qrc"> <iconset resource="object_viewer.qrc">
<normaloff>:/images/animset.png</normaloff>:/images/animset.png</iconset> <normaloff>:/images/animset.png</normaloff>:/images/animset.png</iconset>
</property> </property>
<property name="iconSize"> <property name="iconSize">
@ -236,7 +236,7 @@
<string/> <string/>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="object_viewer_qt.qrc"> <iconset resource="object_viewer.qrc">
<normaloff>:/images/mixer.png</normaloff>:/images/mixer.png</iconset> <normaloff>:/images/mixer.png</normaloff>:/images/mixer.png</iconset>
</property> </property>
<property name="iconSize"> <property name="iconSize">
@ -274,7 +274,7 @@
<string/> <string/>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="object_viewer_qt.qrc"> <iconset resource="object_viewer.qrc">
<normaloff>:/images/skip-backward.png</normaloff>:/images/skip-backward.png</iconset> <normaloff>:/images/skip-backward.png</normaloff>:/images/skip-backward.png</iconset>
</property> </property>
<property name="iconSize"> <property name="iconSize">
@ -306,7 +306,7 @@
<string/> <string/>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="object_viewer_qt.qrc"> <iconset resource="object_viewer.qrc">
<normaloff>:/images/seek-backward.png</normaloff>:/images/seek-backward.png</iconset> <normaloff>:/images/seek-backward.png</normaloff>:/images/seek-backward.png</iconset>
</property> </property>
<property name="iconSize"> <property name="iconSize">
@ -344,7 +344,7 @@
<string/> <string/>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="object_viewer_qt.qrc"> <iconset resource="object_viewer.qrc">
<normaloff>:/images/play.png</normaloff> <normaloff>:/images/play.png</normaloff>
<normalon>:/images/pause.png</normalon>:/images/play.png</iconset> <normalon>:/images/pause.png</normalon>:/images/play.png</iconset>
</property> </property>
@ -383,7 +383,7 @@
<string/> <string/>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="object_viewer_qt.qrc"> <iconset resource="object_viewer.qrc">
<normaloff>:/images/stop.png</normaloff>:/images/stop.png</iconset> <normaloff>:/images/stop.png</normaloff>:/images/stop.png</iconset>
</property> </property>
<property name="iconSize"> <property name="iconSize">
@ -418,7 +418,7 @@
<string/> <string/>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="object_viewer_qt.qrc"> <iconset resource="object_viewer.qrc">
<normaloff>:/images/seek-forward.png</normaloff>:/images/seek-forward.png</iconset> <normaloff>:/images/seek-forward.png</normaloff>:/images/seek-forward.png</iconset>
</property> </property>
<property name="iconSize"> <property name="iconSize">
@ -450,7 +450,7 @@
<string/> <string/>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="object_viewer_qt.qrc"> <iconset resource="object_viewer.qrc">
<normaloff>:/images/skip-forward.png</normaloff>:/images/skip-forward.png</iconset> <normaloff>:/images/skip-forward.png</normaloff>:/images/skip-forward.png</iconset>
</property> </property>
<property name="iconSize"> <property name="iconSize">
@ -482,7 +482,7 @@
</widget> </widget>
</widget> </widget>
<resources> <resources>
<include location="object_viewer_qt.qrc"/> <include location="object_viewer.qrc"/>
</resources> </resources>
<connections> <connections>
<connection> <connection>

View file

@ -23,7 +23,7 @@
</size> </size>
</property> </property>
<property name="windowIcon"> <property name="windowIcon">
<iconset resource="object_viewer_qt.qrc"> <iconset resource="object_viewer.qrc">
<normaloff>:/images/animset.png</normaloff>:/images/animset.png</iconset> <normaloff>:/images/animset.png</normaloff>:/images/animset.png</iconset>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -308,7 +308,7 @@
<string/> <string/>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="object_viewer_qt.qrc"> <iconset resource="object_viewer.qrc">
<normaloff>:/images/clear.png</normaloff>:/images/clear.png</iconset> <normaloff>:/images/clear.png</normaloff>:/images/clear.png</iconset>
</property> </property>
<property name="iconSize"> <property name="iconSize">
@ -354,7 +354,7 @@
<string/> <string/>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="object_viewer_qt.qrc"> <iconset resource="object_viewer.qrc">
<normaloff>:/images/list-add.png</normaloff>:/images/list-add.png</iconset> <normaloff>:/images/list-add.png</normaloff>:/images/list-add.png</iconset>
</property> </property>
<property name="iconSize"> <property name="iconSize">
@ -380,7 +380,7 @@
<string/> <string/>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="object_viewer_qt.qrc"> <iconset resource="object_viewer.qrc">
<normaloff>:/images/list-remove.png</normaloff>:/images/list-remove.png</iconset> <normaloff>:/images/list-remove.png</normaloff>:/images/list-remove.png</iconset>
</property> </property>
<property name="iconSize"> <property name="iconSize">
@ -403,7 +403,7 @@
<string/> <string/>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="object_viewer_qt.qrc"> <iconset resource="object_viewer.qrc">
<normaloff>:/images/go-up.png</normaloff>:/images/go-up.png</iconset> <normaloff>:/images/go-up.png</normaloff>:/images/go-up.png</iconset>
</property> </property>
<property name="iconSize"> <property name="iconSize">
@ -426,7 +426,7 @@
<string/> <string/>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="object_viewer_qt.qrc"> <iconset resource="object_viewer.qrc">
<normaloff>:/images/go-down.png</normaloff>:/images/go-down.png</iconset> <normaloff>:/images/go-down.png</normaloff>:/images/go-down.png</iconset>
</property> </property>
<property name="iconSize"> <property name="iconSize">
@ -470,7 +470,7 @@
<string/> <string/>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="object_viewer_qt.qrc"> <iconset resource="object_viewer.qrc">
<normaloff>:/images/time.png</normaloff>:/images/time.png</iconset> <normaloff>:/images/time.png</normaloff>:/images/time.png</iconset>
</property> </property>
<property name="iconSize"> <property name="iconSize">
@ -490,7 +490,7 @@
</widget> </widget>
</widget> </widget>
<resources> <resources>
<include location="object_viewer_qt.qrc"/> <include location="object_viewer.qrc"/>
</resources> </resources>
<connections/> <connections/>
</ui> </ui>

View file

@ -136,7 +136,7 @@ Right click to remove points.</string>
<string/> <string/>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="object_viewer_qt.qrc"> <iconset resource="object_viewer.qrc">
<normaloff>:/images/refresh.png</normaloff>:/images/refresh.png</iconset> <normaloff>:/images/refresh.png</normaloff>:/images/refresh.png</iconset>
</property> </property>
<property name="autoRaise"> <property name="autoRaise">
@ -230,7 +230,7 @@ Right click to remove points.</string>
</customwidget> </customwidget>
</customwidgets> </customwidgets>
<resources> <resources>
<include location="object_viewer_qt.qrc"/> <include location="object_viewer.qrc"/>
</resources> </resources>
<connections> <connections>
<connection> <connection>

View file

@ -108,7 +108,7 @@
</layout> </layout>
</widget> </widget>
<resources> <resources>
<include location="object_viewer_qt.qrc"/> <include location="object_viewer.qrc"/>
</resources> </resources>
<connections/> <connections/>
</ui> </ui>

View file

@ -75,7 +75,7 @@
</layout> </layout>
</widget> </widget>
<resources> <resources>
<include location="object_viewer_qt.qrc"/> <include location="object_viewer.qrc"/>
</resources> </resources>
<connections> <connections>
<connection> <connection>

View file

@ -49,7 +49,6 @@ namespace NLQT
CGraphicsViewport::CGraphicsViewport(QWidget *parent) CGraphicsViewport::CGraphicsViewport(QWidget *parent)
: QNLWidget(parent) : QNLWidget(parent)
{ {
this->setStatusTip("Status ready");
} }
CGraphicsViewport::~CGraphicsViewport() CGraphicsViewport::~CGraphicsViewport()

View file

Before

Width:  |  Height:  |  Size: 246 B

After

Width:  |  Height:  |  Size: 246 B

View file

Before

Width:  |  Height:  |  Size: 8 KiB

After

Width:  |  Height:  |  Size: 8 KiB

View file

Before

Width:  |  Height:  |  Size: 8.8 KiB

After

Width:  |  Height:  |  Size: 8.8 KiB

View file

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

View file

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

View file

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

View file

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View file

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View file

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

View file

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

View file

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View file

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View file

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Some files were not shown because too many files have changed in this diff Show more