From e725323f5c91f4813947e54fc1b9b720eff4efb5 Mon Sep 17 00:00:00 2001 From: dnk-88 Date: Wed, 26 Jan 2011 15:09:08 +0200 Subject: [PATCH] Changed: #1171 Changed the order of initialization. OVQT weather & sun color dock window. --- .../3d/object_viewer_qt/src/CMakeLists.txt | 3 +- .../src/global_wind_dialog.cpp | 11 +- .../object_viewer_qt/src/global_wind_dialog.h | 1 - .../src/graphics_viewport.cpp | 4 +- .../src/images/ico_skelscale.png | Bin 4321 -> 4789 bytes .../3d/object_viewer_qt/src/main_window.cpp | 140 +++++------------- .../3d/object_viewer_qt/src/main_window.h | 6 +- .../object_viewer_qt/src/object_viewer_qt.qrc | 2 + .../object_viewer_qt/src/sun_color_dialog.cpp | 16 +- .../object_viewer_qt/src/sun_color_dialog.h | 1 - 10 files changed, 50 insertions(+), 134 deletions(-) diff --git a/code/nel/tools/3d/object_viewer_qt/src/CMakeLists.txt b/code/nel/tools/3d/object_viewer_qt/src/CMakeLists.txt index 56d425655..ab7b12d51 100644 --- a/code/nel/tools/3d/object_viewer_qt/src/CMakeLists.txt +++ b/code/nel/tools/3d/object_viewer_qt/src/CMakeLists.txt @@ -22,6 +22,7 @@ SET(OBJECT_VIEWER_HDR main_window.h graphics_viewport.h animation_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 extension_system/iplugin_manager.h extension_system/plugin_manager.h) SET(OBJECT_VIEWER_UIS animation_form.ui animation_set_form.ui settings_form.ui @@ -35,7 +36,7 @@ SET(OBJECT_VIEWER_UIS animation_form.ui animation_set_form.ui settings_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) + vegetable_rotate_form.ui vegetable_scale_form.ui tune_mrm_form.ui) SET(OBJECT_VIEWER_RCS object_viewer_qt.qrc) diff --git a/code/nel/tools/3d/object_viewer_qt/src/global_wind_dialog.cpp b/code/nel/tools/3d/object_viewer_qt/src/global_wind_dialog.cpp index fa018d914..b4902b2cb 100644 --- a/code/nel/tools/3d/object_viewer_qt/src/global_wind_dialog.cpp +++ b/code/nel/tools/3d/object_viewer_qt/src/global_wind_dialog.cpp @@ -32,8 +32,9 @@ CGlobalWindDialog::CGlobalWindDialog(QWidget *parent) { _ui.setupUi(this); + _ui.horizontalSlider->setValue(int(Modules::objView().getScene()->getGlobalWindPower() * _ui.horizontalSlider->maximum())); + connect(_ui.horizontalSlider, SIGNAL(valueChanged(int)), this, SLOT(setWndPower(int))); - connect(this, SIGNAL(visibilityChanged(bool)), this, SLOT(updateWnd(bool))); } CGlobalWindDialog::~CGlobalWindDialog() @@ -47,12 +48,4 @@ void CGlobalWindDialog::setWndPower(int value) Modules::objView().getScene()->setGlobalWindPower(fValue); } -void CGlobalWindDialog::updateWnd(bool visible) -{ - if (!visible || !Modules::objView().getScene()) - return; - - _ui.horizontalSlider->setValue(int(Modules::objView().getScene()->getGlobalWindPower() * _ui.horizontalSlider->maximum())); -} - } /* namespace NLQT */ \ No newline at end of file diff --git a/code/nel/tools/3d/object_viewer_qt/src/global_wind_dialog.h b/code/nel/tools/3d/object_viewer_qt/src/global_wind_dialog.h index f69231cdb..dc2e68aaf 100644 --- a/code/nel/tools/3d/object_viewer_qt/src/global_wind_dialog.h +++ b/code/nel/tools/3d/object_viewer_qt/src/global_wind_dialog.h @@ -41,7 +41,6 @@ public: private Q_SLOTS: void setWndPower(int value); - void updateWnd(bool visible); private: diff --git a/code/nel/tools/3d/object_viewer_qt/src/graphics_viewport.cpp b/code/nel/tools/3d/object_viewer_qt/src/graphics_viewport.cpp index 2128cdbd1..04f956c11 100644 --- a/code/nel/tools/3d/object_viewer_qt/src/graphics_viewport.cpp +++ b/code/nel/tools/3d/object_viewer_qt/src/graphics_viewport.cpp @@ -68,6 +68,7 @@ void CGraphicsViewport::init() Modules::objView().init((nlWindow)winId(), width(), height()); Modules::psEdit().init(); + Modules::veget().init(); setMouseTracking(true); setFocusPolicy(Qt::StrongFocus); @@ -77,7 +78,8 @@ void CGraphicsViewport::release() { //H_AUTO2 nldebug("CGraphicsViewport::release"); - + + Modules::veget().release(); Modules::psEdit().release(); Modules::objView().release(); } diff --git a/code/nel/tools/3d/object_viewer_qt/src/images/ico_skelscale.png b/code/nel/tools/3d/object_viewer_qt/src/images/ico_skelscale.png index 9d6455da243ab66633055f7133f53b9560946651..7154a8a05e09f3d7e797798d55834f7cd54a69ac 100644 GIT binary patch delta 4784 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 KMNUMnLSTYBh7hIz delta 4312 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 + _isGraphicsInitialized = true; + + if (_isSoundEnabled) + { + Modules::sound().init(); + _isSoundInitialized = true; + } _SkeletonTreeModel = new CSkeletonTreeModel(this); @@ -96,24 +105,16 @@ CMainWindow::CMainWindow(QWidget *parent) restoreGeometry(settings.value("QtWindowGeometry").toByteArray()); settings.endGroup(); - _isGraphicsEnabled = true; - _isLandscapeEnabled = true; - // As a special case, a QTimer with a timeout of 0 will time out as soon as all the events in the window system's event queue have been processed. // This can be used to do heavy work while providing a snappy user interface. _mainTimer = new QTimer(this); connect(_mainTimer, SIGNAL(timeout()), this, SLOT(updateRender())); - // timer->start(); // <- timeout 0 - // it's heavy on cpu, though, when no 3d driver initialized :) - _mainTimer->start(23); // 25fps _statusBarTimer = new QTimer(this); connect(_statusBarTimer, SIGNAL(timeout()), this, SLOT(updateStatusBar())); - _statusBarTimer->start(1000); _statusInfo = new QLabel(this); this->statusBar()->addPermanentWidget(_statusInfo); - Modules::config().setAndCallback("SoundEnabled", CConfigCallback(this, &CMainWindow::cfcbSoundEnabled)); } CMainWindow::~CMainWindow() @@ -131,15 +132,18 @@ CMainWindow::~CMainWindow() Modules::config().dropCallback("QtPalette"); Modules::config().dropCallback("QtStyle"); - _mainTimer->stop(); - _statusBarTimer->stop(); - delete _AnimationDialog; delete _AnimationSetDialog; delete _SlotManagerDialog; delete _SetupFog; + delete _TuneMRMDialog; delete _ParticleControlDialog; delete _ParticleWorkspaceDialog; + + if (_isSoundInitialized) + Modules::sound().releaseGraphics(); + + _GraphicsViewport->release(); delete _GraphicsViewport; } @@ -152,11 +156,17 @@ void CMainWindow::setVisible(bool visible) if (visible) { QMainWindow::setVisible(true); - updateInitialization(true); + if (_isSoundInitialized) + Modules::sound().initGraphics(); + _mainTimer->start(23); + _statusBarTimer->start(1000); } else { - updateInitialization(false); + _mainTimer->stop(); + _statusBarTimer->stop(); + if (_isSoundInitialized) + Modules::sound().releaseGraphics(); QMainWindow::setVisible(false); } } @@ -273,95 +283,6 @@ void CMainWindow::updateStatusBar() } } -void CMainWindow::updateInitialization(bool visible) -{ - bool done; - do - { - done = true; // set false whenever change - bool wantSound = _isSoundEnabled && visible; - bool wantGraphics = _isGraphicsEnabled && visible; - // TODO WARNING: made Landscape stuff - bool wantLandscape = wantGraphics && _isGraphicsInitialized && _isLandscapeEnabled; - - // .. stuff that depends on other stuff goes on top to prioritize deinitialization - - // Landscape - if (_isLandscapeInitialized) - { - if (!wantLandscape) - { - _isLandscapeInitialized = false; -// if (_isGraphicsInitialized) -// Modules::veget().releaseGraphics(); - Modules::veget().release(); - done = false; - } - } - else - { - if (wantLandscape) - { - Modules::veget().init(); -// if (_isGraphicsInitialized) -// Modules::veget().initGraphics(); - _isLandscapeInitialized = true; - done = false; - } - } - - // Graphics (Driver) - if (_isGraphicsInitialized) - { - if (!wantGraphics) - { - _isGraphicsInitialized = false; - if (_isSoundInitialized) - Modules::sound().releaseGraphics(); - _GraphicsViewport->release(); - done = false; - } - } - else - { - if (wantGraphics) - { - _GraphicsViewport->init(); - if (_isSoundInitialized) - Modules::sound().initGraphics(); - _isGraphicsInitialized = true; - done = false; - } - } - - // Sound (AudioMixer) - if (_isSoundInitialized) - { - if (!wantSound) - { - _isSoundInitialized = false; - if (_isGraphicsInitialized) - Modules::sound().releaseGraphics(); - Modules::sound().release(); - done = false; - } - } - else - { - if (wantSound) - { - Modules::sound().init(); - if (_isGraphicsInitialized) - Modules::sound().initGraphics(); - _isSoundInitialized = true; - done = false; - } - } - - } - while (!done); -} - void CMainWindow::createActions() { _openAction = new QAction(tr("&Open..."), this); @@ -477,6 +398,9 @@ void CMainWindow::createMenus() _toolsMenu->addAction(_SunColorDialog->toggleViewAction()); + //_toolsMenu->addAction(_TuneMRMDialog->toggleViewAction()); + _TuneMRMDialog->toggleViewAction()->setIcon(QIcon(":/images/ico_mrm_mesh.png")); + connect(_ParticleControlDialog->toggleViewAction(), SIGNAL(triggered(bool)), _ParticleWorkspaceDialog, SLOT(setVisible(bool))); @@ -518,6 +442,7 @@ void CMainWindow::createToolBars() _toolsBar->addAction(_VegetableDialog->toggleViewAction()); _toolsBar->addAction(_GlobalWindDialog->toggleViewAction()); _toolsBar->addAction(_SkeletonScaleDialog->toggleViewAction()); +// _toolsBar->addAction(_TuneMRMDialog->toggleViewAction()); } void CMainWindow::createStatusBar() @@ -591,6 +516,11 @@ void CMainWindow::createDialogs() addDockWidget(Qt::RightDockWidgetArea, _SetupFog); _SetupFog->setVisible(false); + // create tune mrm dialog + _TuneMRMDialog = new CTuneMRMDialog(this); + addDockWidget(Qt::BottomDockWidgetArea, _TuneMRMDialog); + _TuneMRMDialog->setVisible(false); + connect(_ParticleControlDialog, SIGNAL(changeState()), _ParticleWorkspaceDialog, SLOT(setNewState())); connect(_ParticleWorkspaceDialog, SIGNAL(changeActiveNode()), _ParticleControlDialog, SLOT(updateActiveNode())); connect(_AnimationSetDialog->ui.setLengthPushButton, SIGNAL(clicked()), _AnimationDialog, SLOT(changeAnimLength())); @@ -637,8 +567,6 @@ void CMainWindow::cfcbSoundEnabled(NLMISC::CConfigFile::CVar &var) void CMainWindow::updateRender() { - updateInitialization(isVisible()); - if (isVisible()) { diff --git a/code/nel/tools/3d/object_viewer_qt/src/main_window.h b/code/nel/tools/3d/object_viewer_qt/src/main_window.h index ee00a84fe..94b8b74cc 100644 --- a/code/nel/tools/3d/object_viewer_qt/src/main_window.h +++ b/code/nel/tools/3d/object_viewer_qt/src/main_window.h @@ -53,6 +53,7 @@ class CVegetableDialog; class CGlobalWindDialog; class CDayNightDialog; class CSunColorDialog; +class CTuneMRMDialog; class CMainWindow : public QMainWindow { @@ -93,7 +94,6 @@ private: void createStatusBar(); void createDialogs(); - void updateInitialization(bool visible); bool loadFile(const QString &fileName, const QString &skelName); void cfcbQtStyle(NLMISC::CConfigFile::CVar &var); @@ -102,7 +102,6 @@ private: bool _isGraphicsInitialized, _isGraphicsEnabled; bool _isSoundInitialized, _isSoundEnabled; - bool _isLandscapeInitialized, _isLandscapeEnabled; CGraphicsViewport *_GraphicsViewport; CAnimationDialog *_AnimationDialog; @@ -117,7 +116,7 @@ private: CSkeletonScaleDialog *_SkeletonScaleDialog; CDayNightDialog *_DayNightDialog; CSunColorDialog *_SunColorDialog; - + CTuneMRMDialog *_TuneMRMDialog; CSkeletonTreeModel *_SkeletonTreeModel; QPalette _originalPalette; @@ -140,7 +139,6 @@ private: QAction *_renderModeAction; QAction *_frameDelayAction; QAction *_lightGroupAction; - QAction *_tuneMRMAction; QAction *_reloadTexturesAction; QAction *_cameraModeAction; QAction *_resetCameraAction; diff --git a/code/nel/tools/3d/object_viewer_qt/src/object_viewer_qt.qrc b/code/nel/tools/3d/object_viewer_qt/src/object_viewer_qt.qrc index 1e63d3f0a..5b14b74f6 100644 --- a/code/nel/tools/3d/object_viewer_qt/src/object_viewer_qt.qrc +++ b/code/nel/tools/3d/object_viewer_qt/src/object_viewer_qt.qrc @@ -27,6 +27,8 @@ images/ico_bgcolor.png images/ico_framedelay.png images/ico_skelscale.png + images/ico_mrm_mesh.png + images/ico_light_group.png images/clear.png images/insert.png images/new.png diff --git a/code/nel/tools/3d/object_viewer_qt/src/sun_color_dialog.cpp b/code/nel/tools/3d/object_viewer_qt/src/sun_color_dialog.cpp index 0a17325ad..9a76b9db1 100644 --- a/code/nel/tools/3d/object_viewer_qt/src/sun_color_dialog.cpp +++ b/code/nel/tools/3d/object_viewer_qt/src/sun_color_dialog.cpp @@ -34,7 +34,11 @@ CSunColorDialog::CSunColorDialog(QWidget *parent) { _ui.setupUi(this); - connect(this, SIGNAL(visibilityChanged(bool)), this, SLOT(updateSunColor(bool))); + _ui.ambientWidget->setColor(Modules::objView().getScene()->getSunAmbient()); + _ui.diffuseWidget->setColor(Modules::objView().getScene()->getSunDiffuse()); + _ui.specularWidget->setColor(Modules::objView().getScene()->getSunSpecular()); + + //connect(this, SIGNAL(visibilityChanged(bool)), this, SLOT(updateSunColor(bool))); connect(_ui.ambientWidget, SIGNAL(colorChanged(NLMISC::CRGBA)), this, SLOT(setAmbientSunColor(NLMISC::CRGBA))); connect(_ui.diffuseWidget, SIGNAL(colorChanged(NLMISC::CRGBA)), this, SLOT(setDiffuseSunColor(NLMISC::CRGBA))); connect(_ui.specularWidget, SIGNAL(colorChanged(NLMISC::CRGBA)), this, SLOT(setSpecularSunColor(NLMISC::CRGBA))); @@ -44,16 +48,6 @@ CSunColorDialog::~CSunColorDialog() { } -void CSunColorDialog::updateSunColor(bool visible) -{ - if (!visible || !Modules::objView().getScene()) - return; - - _ui.ambientWidget->setColor(Modules::objView().getScene()->getSunAmbient()); - _ui.diffuseWidget->setColor(Modules::objView().getScene()->getSunDiffuse()); - _ui.specularWidget->setColor(Modules::objView().getScene()->getSunSpecular()); -} - void CSunColorDialog::setAmbientSunColor(NLMISC::CRGBA color) { Modules::objView().getScene()->setSunAmbient(color); diff --git a/code/nel/tools/3d/object_viewer_qt/src/sun_color_dialog.h b/code/nel/tools/3d/object_viewer_qt/src/sun_color_dialog.h index 1a4592caf..587ab5b1b 100644 --- a/code/nel/tools/3d/object_viewer_qt/src/sun_color_dialog.h +++ b/code/nel/tools/3d/object_viewer_qt/src/sun_color_dialog.h @@ -44,7 +44,6 @@ public: ~CSunColorDialog(); private Q_SLOTS: - void updateSunColor(bool visible); void setAmbientSunColor(NLMISC::CRGBA color); void setDiffuseSunColor(NLMISC::CRGBA color); void setSpecularSunColor(NLMISC::CRGBA color);