|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
// TnzCore includes
|
|
Toshihiro Shimizu |
890ddd |
#include "tconvert.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "tgeometry.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "tgl.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "trop.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "tstopwatch.h"
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
// TnzLib includes
|
|
Toshihiro Shimizu |
890ddd |
#include "toonz/tscenehandle.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "toonz/txsheethandle.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "toonz/tframehandle.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "toonz/tcolumnhandle.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "toonz/txshlevelhandle.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "toonz/txsheethandle.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "toonz/toonzscene.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "toonz/sceneproperties.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "toonz/txsheet.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "toonz/stage.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "toonz/stage2.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "toonz/txshlevel.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "toonz/txshcell.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "toonz/tcamera.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "toonz/tstageobjecttree.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "toonz/tobjecthandle.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "toonz/tpalettehandle.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "toonz/tonionskinmaskhandle.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "toutputproperties.h"
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
// TnzQt includes
|
|
Toshihiro Shimizu |
890ddd |
#include "toonzqt/menubarcommand.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "toonzqt/dvdialog.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "toonzqt/gutil.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "toonzqt/imageutils.h"
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
// TnzTools includes
|
|
Toshihiro Shimizu |
890ddd |
#include "tools/toolhandle.h"
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
// Tnz6 includes
|
|
Toshihiro Shimizu |
890ddd |
#include "tapp.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "mainwindow.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "sceneviewer.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "xsheetdragtool.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "ruler.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "menubarcommandids.h"
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
// Qt includes
|
|
Toshihiro Shimizu |
890ddd |
#include <qpainter></qpainter>
|
|
Toshihiro Shimizu |
890ddd |
#include <qvboxlayout></qvboxlayout>
|
|
Toshihiro Shimizu |
890ddd |
#include <qaction></qaction>
|
|
Toshihiro Shimizu |
890ddd |
#include <qdialogbuttonbox></qdialogbuttonbox>
|
|
Toshihiro Shimizu |
890ddd |
#include <qabstractbutton></qabstractbutton>
|
|
Toshihiro Shimizu |
890ddd |
#include <qmouseevent></qmouseevent>
|
|
Toshihiro Shimizu |
890ddd |
#include <qwheelevent></qwheelevent>
|
|
Toshihiro Shimizu |
890ddd |
#include <qlabel></qlabel>
|
|
Toshihiro Shimizu |
890ddd |
#include <qradiobutton></qradiobutton>
|
|
Toshihiro Shimizu |
890ddd |
#include <qslider></qslider>
|
|
Toshihiro Shimizu |
890ddd |
#include <qbuttongroup></qbuttongroup>
|
|
Toshihiro Shimizu |
890ddd |
#include <qmenu></qmenu>
|
|
Toshihiro Shimizu |
890ddd |
#include <qtoolbar></qtoolbar>
|
|
Toshihiro Shimizu |
890ddd |
#include <qmainwindow></qmainwindow>
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#include "viewerpane.h"
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
using namespace DVGui;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//=============================================================================
|
|
Toshihiro Shimizu |
890ddd |
//
|
|
Toshihiro Shimizu |
890ddd |
// SceneViewerPanel
|
|
Toshihiro Shimizu |
890ddd |
//
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#if QT_VERSION >= 0x050500
|
|
Toshihiro Shimizu |
890ddd |
SceneViewerPanel::SceneViewerPanel(QWidget *parent, Qt::WindowFlags flags)
|
|
Toshihiro Shimizu |
890ddd |
#else
|
|
Toshihiro Shimizu |
890ddd |
SceneViewerPanel::SceneViewerPanel(QWidget *parent, Qt::WFlags flags)
|
|
Toshihiro Shimizu |
890ddd |
#endif
|
|
Shinya Kitaoka |
120a6e |
: TPanel(parent) {
|
|
Shinya Kitaoka |
120a6e |
QFrame *hbox = new QFrame(this);
|
|
Shinya Kitaoka |
120a6e |
hbox->setFrameStyle(QFrame::StyledPanel);
|
|
Shinya Kitaoka |
120a6e |
hbox->setObjectName("ViewerPanel");
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
QVBoxLayout *mainLayout = new QVBoxLayout(hbox);
|
|
Shinya Kitaoka |
120a6e |
mainLayout->setMargin(0);
|
|
Shinya Kitaoka |
120a6e |
mainLayout->setSpacing(0);
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
// Viewer
|
|
Shinya Kitaoka |
120a6e |
QWidget *viewer = new QWidget(hbox);
|
|
Shinya Kitaoka |
120a6e |
QGridLayout *viewerL = new QGridLayout(viewer);
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
ImageUtils::FullScreenWidget *fsWidget =
|
|
Shinya Kitaoka |
120a6e |
new ImageUtils::FullScreenWidget(viewer);
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
fsWidget->setWidget(m_sceneViewer = new SceneViewer(fsWidget));
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
bool ret = true;
|
|
Shinya Kitaoka |
120a6e |
ret = ret && connect(m_sceneViewer, SIGNAL(onZoomChanged()),
|
|
Shinya Kitaoka |
120a6e |
SLOT(changeWindowTitle()));
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
Ruler *vRuler = new Ruler(viewer, m_sceneViewer, true);
|
|
Shinya Kitaoka |
120a6e |
Ruler *hRuler = new Ruler(viewer, m_sceneViewer, false);
|
|
Shinya Kitaoka |
120a6e |
m_sceneViewer->setRulers(vRuler, hRuler);
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
viewerL->setMargin(0);
|
|
Shinya Kitaoka |
120a6e |
viewerL->setSpacing(0);
|
|
Shinya Kitaoka |
120a6e |
viewerL->addWidget(vRuler, 1, 0);
|
|
Shinya Kitaoka |
120a6e |
viewerL->addWidget(hRuler, 0, 1);
|
|
Shinya Kitaoka |
120a6e |
viewerL->addWidget(fsWidget, 1, 1, 19, 13);
|
|
Shinya Kitaoka |
120a6e |
viewer->setMinimumHeight(200);
|
|
Shinya Kitaoka |
120a6e |
viewer->setLayout(viewerL);
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
mainLayout->addWidget(viewer, Qt::AlignCenter);
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
TApp *app = TApp::instance();
|
|
Shinya Kitaoka |
120a6e |
m_keyFrameButton = new ViewerKeyframeNavigator(0, app->getCurrentFrame());
|
|
Shinya Kitaoka |
120a6e |
m_keyFrameButton->setObjectHandle(app->getCurrentObject());
|
|
Shinya Kitaoka |
120a6e |
m_keyFrameButton->setXsheetHandle(app->getCurrentXsheet());
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
int buttons = FlipConsole::cFullConsole;
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
buttons &= (~FlipConsole::eSound);
|
|
Shinya Kitaoka |
120a6e |
buttons &= (~FlipConsole::eFilledRaster);
|
|
Shinya Kitaoka |
120a6e |
buttons &= (~FlipConsole::eDefineLoadBox);
|
|
Shinya Kitaoka |
120a6e |
buttons &= (~FlipConsole::eUseLoadBox);
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole = new FlipConsole(mainLayout, buttons, false, m_keyFrameButton,
|
|
Shinya Kitaoka |
120a6e |
"SceneViewerConsole", this, true);
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->enableButton(FlipConsole::eMatte, false, false);
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->enableButton(FlipConsole::eSave, false, false);
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->enableButton(FlipConsole::eCompare, false, false);
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->enableButton(FlipConsole::eSaveImg, false, false);
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->enableButton(FlipConsole::eGRed, false, false);
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->enableButton(FlipConsole::eGGreen, false, false);
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->enableButton(FlipConsole::eGBlue, false, false);
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->enableButton(FlipConsole::eBlackBg, false, false);
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->enableButton(FlipConsole::eWhiteBg, false, false);
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->enableButton(FlipConsole::eCheckBg, false, false);
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->setFrameHandle(TApp::instance()->getCurrentFrame());
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
ret = ret &&
|
|
Shinya Kitaoka |
120a6e |
connect(m_flipConsole, SIGNAL(playStateChanged(bool)),
|
|
Shinya Kitaoka |
120a6e |
TApp::instance()->getCurrentFrame(), SLOT(setPlaying(bool)));
|
|
Shinya Kitaoka |
120a6e |
ret = ret &&
|
|
Shinya Kitaoka |
120a6e |
connect(m_flipConsole, SIGNAL(buttonPressed(FlipConsole::EGadget)),
|
|
Shinya Kitaoka |
120a6e |
m_sceneViewer, SLOT(onButtonPressed(FlipConsole::EGadget)));
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
ret = ret && connect(m_sceneViewer, SIGNAL(previewStatusChanged()), this,
|
|
Shinya Kitaoka |
120a6e |
SLOT(update()));
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
ret = ret && connect(app->getCurrentScene(), SIGNAL(sceneSwitched()), this,
|
|
Shinya Kitaoka |
120a6e |
SLOT(onSceneSwitched()));
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
assert(ret);
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->setFrameRate(app->getCurrentScene()
|
|
Shinya Kitaoka |
120a6e |
->getScene()
|
|
Shinya Kitaoka |
120a6e |
->getProperties()
|
|
Shinya Kitaoka |
120a6e |
->getOutputProperties()
|
|
Shinya Kitaoka |
120a6e |
->getFrameRate());
|
|
Shinya Kitaoka |
120a6e |
updateFrameRange(), updateFrameMarkers();
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
hbox->setLayout(mainLayout);
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
setWidget(hbox);
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
initializeTitleBar(
|
|
Shinya Kitaoka |
120a6e |
getTitleBar()); // note: initializeTitleBar() refers to m_sceneViewer
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
void SceneViewerPanel::onDrawFrame(
|
|
Shinya Kitaoka |
120a6e |
int frame, const ImagePainter::VisualSettings &settings) {
|
|
Shinya Kitaoka |
120a6e |
TApp *app = TApp::instance();
|
|
Shinya Kitaoka |
120a6e |
m_sceneViewer->setVisual(settings);
|
|
Shinya Kitaoka |
120a6e |
TFrameHandle *frameHandle = app->getCurrentFrame();
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
if (m_sceneViewer->isPreviewEnabled()) {
|
|
Shinya Kitaoka |
120a6e |
class Previewer *pr = Previewer::instance(m_sceneViewer->getPreviewMode() ==
|
|
Shinya Kitaoka |
120a6e |
SceneViewer::SUBCAMERA_PREVIEW);
|
|
Shinya Kitaoka |
120a6e |
pr->getRaster(frame - 1, settings.m_recomputeIfNeeded); // the 'getRaster'
|
|
Shinya Kitaoka |
120a6e |
// starts the
|
|
Shinya Kitaoka |
120a6e |
// render of the
|
|
Shinya Kitaoka |
120a6e |
// frame is not
|
|
Shinya Kitaoka |
120a6e |
// already started
|
|
Shinya Kitaoka |
120a6e |
int curFrame = frame;
|
|
Shinya Kitaoka |
120a6e |
if (frameHandle->isPlaying() &&
|
|
Shinya Kitaoka |
120a6e |
!pr->isFrameReady(
|
|
Shinya Kitaoka |
120a6e |
frame - 1)) // stops on last rendered frame until current is ready!
|
|
Shinya Kitaoka |
120a6e |
{
|
|
Shinya Kitaoka |
120a6e |
while (frame > 1 && !pr->isFrameReady(frame - 1)) frame--;
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->setCurrentFrame(frame);
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
assert(frame >= 0);
|
|
Shinya Kitaoka |
120a6e |
if (frame != frameHandle->getFrameIndex() + 1) {
|
|
Shinya Kitaoka |
120a6e |
int oldFrame = frameHandle->getFrame();
|
|
Shinya Kitaoka |
120a6e |
frameHandle->setCurrentFrame(frame);
|
|
Shinya Kitaoka |
120a6e |
if (!frameHandle->isPlaying() && !frameHandle->isEditingLevel() &&
|
|
Shinya Kitaoka |
120a6e |
oldFrame != frameHandle->getFrame())
|
|
Shinya Kitaoka |
120a6e |
frameHandle->scrubXsheet(
|
|
Shinya Kitaoka |
120a6e |
frame - 1, frame - 1,
|
|
Shinya Kitaoka |
120a6e |
TApp::instance()->getCurrentXsheet()->getXsheet());
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
else if (settings.m_blankColor != TPixel::Transparent)
|
|
Shinya Kitaoka |
120a6e |
m_sceneViewer->update();
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
SceneViewerPanel::~SceneViewerPanel() {}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
void SceneViewerPanel::showEvent(QShowEvent *) {
|
|
Shinya Kitaoka |
120a6e |
TApp *app = TApp::instance();
|
|
Shinya Kitaoka |
120a6e |
TFrameHandle *frameHandle = app->getCurrentFrame();
|
|
Shinya Kitaoka |
120a6e |
TSceneHandle *sceneHandle = app->getCurrentScene();
|
|
Shinya Kitaoka |
120a6e |
TXshLevelHandle *levelHandle = app->getCurrentLevel();
|
|
Shinya Kitaoka |
120a6e |
TObjectHandle *objectHandle = app->getCurrentObject();
|
|
Shinya Kitaoka |
120a6e |
TXsheetHandle *xshHandle = app->getCurrentXsheet();
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
updateFrameRange();
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
bool ret = true;
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
ret = ret && connect(xshHandle, SIGNAL(xsheetChanged()), this,
|
|
Shinya Kitaoka |
120a6e |
SLOT(onSceneChanged()));
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
ret = ret && connect(sceneHandle, SIGNAL(sceneChanged()), this,
|
|
Shinya Kitaoka |
120a6e |
SLOT(onSceneChanged()));
|
|
Shinya Kitaoka |
120a6e |
ret = ret && connect(sceneHandle, SIGNAL(nameSceneChanged()), this,
|
|
Shinya Kitaoka |
120a6e |
SLOT(changeWindowTitle()));
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
ret = ret && connect(levelHandle, SIGNAL(xshLevelSwitched(TXshLevel *)), this,
|
|
Shinya Kitaoka |
120a6e |
SLOT(onXshLevelSwitched(TXshLevel *)));
|
|
Shinya Kitaoka |
120a6e |
ret = ret && connect(levelHandle, SIGNAL(xshLevelChanged()), this,
|
|
Shinya Kitaoka |
120a6e |
SLOT(changeWindowTitle()));
|
|
Shinya Kitaoka |
120a6e |
ret = ret && connect(levelHandle, SIGNAL(xshLevelTitleChanged()), this,
|
|
Shinya Kitaoka |
120a6e |
SLOT(changeWindowTitle()));
|
|
Shinya Kitaoka |
120a6e |
ret = ret && connect(levelHandle, SIGNAL(xshLevelChanged()), this,
|
|
Shinya Kitaoka |
120a6e |
SLOT(updateFrameRange()));
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
ret = ret && connect(frameHandle, SIGNAL(frameSwitched()), this,
|
|
Shinya Kitaoka |
120a6e |
SLOT(changeWindowTitle()));
|
|
Shinya Kitaoka |
120a6e |
ret = ret && connect(frameHandle, SIGNAL(frameSwitched()), this,
|
|
Shinya Kitaoka |
120a6e |
SLOT(onFrameSwitched()));
|
|
Shinya Kitaoka |
120a6e |
ret = ret && connect(frameHandle, SIGNAL(frameTypeChanged()), this,
|
|
Shinya Kitaoka |
120a6e |
SLOT(onFrameTypeChanged()));
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
ret = ret && connect(app->getCurrentTool(), SIGNAL(toolSwitched()),
|
|
Shinya Kitaoka |
120a6e |
m_sceneViewer, SLOT(onToolSwitched()));
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
ret = ret && connect(sceneHandle, SIGNAL(preferenceChanged()), m_flipConsole,
|
|
Shinya Kitaoka |
120a6e |
SLOT(onPreferenceChanged()));
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->onPreferenceChanged();
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
assert(ret);
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
// Aggiorno FPS al valore definito nel viewer corrente.
|
|
Shinya Kitaoka |
120a6e |
// frameHandle->setPreviewFrameRate(m_fpsSlider->value());
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->setActive(true);
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
void SceneViewerPanel::hideEvent(QHideEvent *) {
|
|
Shinya Kitaoka |
120a6e |
TApp *app = TApp::instance();
|
|
Shinya Kitaoka |
120a6e |
TFrameHandle *frameHandle = app->getCurrentFrame();
|
|
Shinya Kitaoka |
120a6e |
TSceneHandle *sceneHandle = app->getCurrentScene();
|
|
Shinya Kitaoka |
120a6e |
TXshLevelHandle *levelHandle = app->getCurrentLevel();
|
|
Shinya Kitaoka |
120a6e |
TObjectHandle *objectHandle = app->getCurrentObject();
|
|
Shinya Kitaoka |
120a6e |
TXsheetHandle *xshHandle = app->getCurrentXsheet();
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
disconnect(xshHandle, SIGNAL(xsheetChanged()), this, SLOT(onSceneChanged()));
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
disconnect(sceneHandle, SIGNAL(sceneChanged()), this, SLOT(onSceneChanged()));
|
|
Shinya Kitaoka |
120a6e |
disconnect(sceneHandle, SIGNAL(nameSceneChanged()), this,
|
|
Shinya Kitaoka |
120a6e |
SLOT(changeWindowTitle()));
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
disconnect(levelHandle, SIGNAL(xshLevelSwitched(TXshLevel *)), this,
|
|
Shinya Kitaoka |
120a6e |
SLOT(onXshLevelSwitched(TXshLevel *)));
|
|
Shinya Kitaoka |
120a6e |
disconnect(levelHandle, SIGNAL(xshLevelChanged()), this,
|
|
Shinya Kitaoka |
120a6e |
SLOT(changeWindowTitle()));
|
|
Shinya Kitaoka |
120a6e |
disconnect(levelHandle, SIGNAL(xshLevelTitleChanged()), this,
|
|
Shinya Kitaoka |
120a6e |
SLOT(changeWindowTitle()));
|
|
Shinya Kitaoka |
120a6e |
disconnect(levelHandle, SIGNAL(xshLevelChanged()), this,
|
|
Shinya Kitaoka |
120a6e |
SLOT(updateFrameRange()));
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
disconnect(frameHandle, SIGNAL(frameSwitched()), this,
|
|
Shinya Kitaoka |
120a6e |
SLOT(changeWindowTitle()));
|
|
Shinya Kitaoka |
120a6e |
disconnect(frameHandle, SIGNAL(frameSwitched()), this,
|
|
Shinya Kitaoka |
120a6e |
SLOT(onFrameSwitched()));
|
|
Shinya Kitaoka |
120a6e |
disconnect(frameHandle, SIGNAL(frameTypeChanged()), this,
|
|
Shinya Kitaoka |
120a6e |
SLOT(onFrameTypeChanged()));
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
disconnect(app->getCurrentTool(), SIGNAL(toolSwitched()), m_sceneViewer,
|
|
Shinya Kitaoka |
120a6e |
SLOT(onToolSwitched()));
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
disconnect(sceneHandle, SIGNAL(preferenceChanged()), m_flipConsole,
|
|
Shinya Kitaoka |
120a6e |
SLOT(onPreferenceChanged()));
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->setActive(false);
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
void SceneViewerPanel::resizeEvent(QResizeEvent *e) {
|
|
Shinya Kitaoka |
120a6e |
QWidget::resizeEvent(e);
|
|
Shinya Kitaoka |
120a6e |
repaint();
|
|
Shinya Kitaoka |
120a6e |
m_sceneViewer->updateGL();
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
void SceneViewerPanel::initializeTitleBar(TPanelTitleBar *titleBar) {
|
|
Shinya Kitaoka |
120a6e |
bool ret = true;
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
TPanelTitleBarButtonSet *viewModeButtonSet;
|
|
Shinya Kitaoka |
120a6e |
m_referenceModeBs = viewModeButtonSet = new TPanelTitleBarButtonSet();
|
|
Shinya Kitaoka |
120a6e |
int x = -188;
|
|
Shinya Kitaoka |
120a6e |
int iconWidth = 17;
|
|
Shinya Kitaoka |
120a6e |
TPanelTitleBarButton *button;
|
|
Shinya Kitaoka |
120a6e |
button = new TPanelTitleBarButton(titleBar, ":Resources/freeze.png",
|
|
Shinya Kitaoka |
120a6e |
":Resources/freeze_over.png",
|
|
Shinya Kitaoka |
120a6e |
":Resources/freeze_on.png");
|
|
Shinya Kitaoka |
120a6e |
button->setToolTip(tr("Freeze"));
|
|
Shinya Kitaoka |
120a6e |
titleBar->add(QPoint(x, 2), button);
|
|
Shinya Kitaoka |
120a6e |
ret = ret && connect(button, SIGNAL(toggled(bool)), m_sceneViewer,
|
|
Shinya Kitaoka |
120a6e |
SLOT(freeze(bool)));
|
|
Shinya Kitaoka |
120a6e |
ret = ret && connect(m_sceneViewer, SIGNAL(freezeStateChanged(bool)), button,
|
|
Shinya Kitaoka |
120a6e |
SLOT(setPressed(bool)));
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
button = new TPanelTitleBarButton(titleBar, ":Resources/standard.png",
|
|
Shinya Kitaoka |
120a6e |
":Resources/standard_over.png",
|
|
Shinya Kitaoka |
120a6e |
":Resources/standard_on.png");
|
|
Shinya Kitaoka |
120a6e |
button->setToolTip(tr("Camera Stand View"));
|
|
Shinya Kitaoka |
120a6e |
x += 18 + iconWidth;
|
|
Shinya Kitaoka |
120a6e |
titleBar->add(QPoint(x, 2), button);
|
|
Shinya Kitaoka |
120a6e |
button->setButtonSet(viewModeButtonSet, SceneViewer::NORMAL_REFERENCE);
|
|
Shinya Kitaoka |
120a6e |
button->setPressed(true);
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
button = new TPanelTitleBarButton(titleBar, ":Resources/3D.png",
|
|
Shinya Kitaoka |
120a6e |
":Resources/3D_over.png",
|
|
Shinya Kitaoka |
120a6e |
":Resources/3D_on.png");
|
|
Shinya Kitaoka |
120a6e |
button->setToolTip(tr("3D View"));
|
|
Shinya Kitaoka |
120a6e |
x += 5 + iconWidth;
|
|
Shinya Kitaoka |
120a6e |
titleBar->add(QPoint(x, 2), button);
|
|
Shinya Kitaoka |
120a6e |
button->setButtonSet(viewModeButtonSet, SceneViewer::CAMERA3D_REFERENCE);
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
button = new TPanelTitleBarButton(titleBar, ":Resources/view_camera.png",
|
|
Shinya Kitaoka |
120a6e |
":Resources/view_camera_over.png",
|
|
Shinya Kitaoka |
120a6e |
":Resources/view_camera_on.png");
|
|
Shinya Kitaoka |
120a6e |
button->setToolTip(tr("Camera View"));
|
|
Shinya Kitaoka |
120a6e |
x += 5 + iconWidth;
|
|
Shinya Kitaoka |
120a6e |
titleBar->add(QPoint(x, 2), button);
|
|
Shinya Kitaoka |
120a6e |
button->setButtonSet(viewModeButtonSet, SceneViewer::CAMERA_REFERENCE);
|
|
Shinya Kitaoka |
120a6e |
ret = ret && connect(viewModeButtonSet, SIGNAL(selected(int)), m_sceneViewer,
|
|
Shinya Kitaoka |
120a6e |
SLOT(setReferenceMode(int)));
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
m_previewButton = new TPanelTitleBarButton(
|
|
Shinya Kitaoka |
120a6e |
titleBar, ":Resources/viewpreview.png", ":Resources/viewpreview_over.png",
|
|
Shinya Kitaoka |
120a6e |
":Resources/viewpreview_on.png");
|
|
Shinya Kitaoka |
120a6e |
x += 18 + iconWidth;
|
|
Shinya Kitaoka |
120a6e |
titleBar->add(QPoint(x, 2), m_previewButton);
|
|
Shinya Kitaoka |
120a6e |
m_previewButton->setToolTip(tr("Preview"));
|
|
Shinya Kitaoka |
120a6e |
ret = ret && connect(m_previewButton, SIGNAL(toggled(bool)),
|
|
Shinya Kitaoka |
120a6e |
SLOT(enableFullPreview(bool)));
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
m_subcameraPreviewButton =
|
|
Shinya Kitaoka |
120a6e |
new TPanelTitleBarButton(titleBar, ":Resources/subcamera_preview.png",
|
|
Shinya Kitaoka |
120a6e |
":Resources/subcamera_preview_over.png",
|
|
Shinya Kitaoka |
120a6e |
":Resources/subcamera_preview_on.png");
|
|
Shinya Kitaoka |
120a6e |
x += 5 + iconWidth;
|
|
Shinya Kitaoka |
120a6e |
titleBar->add(QPoint(x, 2), m_subcameraPreviewButton);
|
|
Shinya Kitaoka |
120a6e |
m_subcameraPreviewButton->setToolTip(tr("Sub-camera Preview"));
|
|
Shinya Kitaoka |
120a6e |
ret = ret && connect(m_subcameraPreviewButton, SIGNAL(toggled(bool)),
|
|
Shinya Kitaoka |
120a6e |
SLOT(enableSubCameraPreview(bool)));
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
assert(ret);
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
void SceneViewerPanel::enableFullPreview(bool enabled) {
|
|
Shinya Kitaoka |
120a6e |
m_subcameraPreviewButton->setPressed(false);
|
|
Shinya Kitaoka |
120a6e |
m_sceneViewer->enablePreview(enabled ? SceneViewer::FULL_PREVIEW
|
|
Shinya Kitaoka |
120a6e |
: SceneViewer::NO_PREVIEW);
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->setProgressBarStatus(
|
|
Shinya Kitaoka |
120a6e |
&Previewer::instance(false)->getProgressBarStatus());
|
|
Shinya Kitaoka |
120a6e |
enableFlipConsoleForCamerastand(enabled);
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
void SceneViewerPanel::enableSubCameraPreview(bool enabled) {
|
|
Shinya Kitaoka |
120a6e |
m_previewButton->setPressed(false);
|
|
Shinya Kitaoka |
120a6e |
m_sceneViewer->enablePreview(enabled ? SceneViewer::SUBCAMERA_PREVIEW
|
|
Shinya Kitaoka |
120a6e |
: SceneViewer::NO_PREVIEW);
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->setProgressBarStatus(
|
|
Shinya Kitaoka |
120a6e |
&Previewer::instance(true)->getProgressBarStatus());
|
|
Shinya Kitaoka |
120a6e |
enableFlipConsoleForCamerastand(enabled);
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
void SceneViewerPanel::enableFlipConsoleForCamerastand(bool on) {
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->enableButton(FlipConsole::eMatte, on, false);
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->enableButton(FlipConsole::eSave, on, false);
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->enableButton(FlipConsole::eCompare, on, false);
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->enableButton(FlipConsole::eSaveImg, on, false);
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->enableButton(FlipConsole::eGRed, on, false);
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->enableButton(FlipConsole::eGGreen, on, false);
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->enableButton(FlipConsole::eGBlue, on, false);
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->enableButton(FlipConsole::eBlackBg, on, false);
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->enableButton(FlipConsole::eWhiteBg, on, false);
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->enableButton(FlipConsole::eCheckBg, on, false);
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->enableProgressBar(on);
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->enableBlanks(on);
|
|
Shinya Kitaoka |
120a6e |
// m_flipConsole->update();
|
|
Shinya Kitaoka |
120a6e |
update();
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
void SceneViewerPanel::onXshLevelSwitched(TXshLevel *) { changeWindowTitle(); }
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
void SceneViewerPanel::changeWindowTitle() {
|
|
Shinya Kitaoka |
120a6e |
TApp *app = TApp::instance();
|
|
Shinya Kitaoka |
120a6e |
// zoom = sqrt(m_sceneViewer->getViewMatrix().det());
|
|
Shinya Kitaoka |
120a6e |
ToonzScene *scene = app->getCurrentScene()->getScene();
|
|
Shinya Kitaoka |
120a6e |
if (!scene) return;
|
|
Shinya Kitaoka |
120a6e |
int frame = app->getCurrentFrame()->getFrame();
|
|
Shinya Kitaoka |
120a6e |
QString name;
|
|
Shinya Kitaoka |
120a6e |
if (app->getCurrentFrame()->isEditingScene()) {
|
|
Shinya Kitaoka |
120a6e |
QString sceneName = QString::fromStdWString(scene->getSceneName());
|
|
Shinya Kitaoka |
120a6e |
if (sceneName.isEmpty()) sceneName = tr("Untitled");
|
|
Shinya Kitaoka |
120a6e |
if (app->getCurrentScene()->getDirtyFlag()) sceneName += QString("*");
|
|
Shinya Kitaoka |
120a6e |
name = tr("Scene: ") + sceneName;
|
|
Shinya Kitaoka |
120a6e |
if (frame >= 0)
|
|
Shinya Kitaoka |
120a6e |
name =
|
|
Shinya Kitaoka |
120a6e |
name + tr(" :: Frame: ") + tr(std::to_string(frame + 1).c_str());
|
|
Shinya Kitaoka |
120a6e |
int col = app->getCurrentColumn()->getColumnIndex();
|
|
Shinya Kitaoka |
120a6e |
if (col < 0) {
|
|
Shinya Kitaoka |
120a6e |
setWindowTitle(name);
|
|
Shinya Kitaoka |
120a6e |
return;
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Shinya Kitaoka |
120a6e |
TXsheet *xsh = app->getCurrentXsheet()->getXsheet();
|
|
Shinya Kitaoka |
120a6e |
TXshCell cell = xsh->getCell(frame, col);
|
|
Shinya Kitaoka |
120a6e |
if (cell.isEmpty()) {
|
|
Shinya Kitaoka |
120a6e |
TAffine aff = m_sceneViewer->getViewMatrix() *
|
|
Shinya Kitaoka |
120a6e |
m_sceneViewer->getNormalZoomScale().inv();
|
|
Shinya Kitaoka |
120a6e |
name = name + tr(" :: Zoom : ") +
|
|
Shinya Kitaoka |
120a6e |
QString::number(tround(100.0 * sqrt(aff.det()))) + "%";
|
|
Shinya Kitaoka |
120a6e |
setWindowTitle(name);
|
|
Shinya Kitaoka |
120a6e |
return;
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Shinya Kitaoka |
120a6e |
assert(cell.m_level.getPointer());
|
|
Shinya Kitaoka |
120a6e |
TFilePath fp(cell.m_level->getName());
|
|
Shinya Kitaoka |
120a6e |
QString imageName =
|
|
Shinya Kitaoka |
120a6e |
QString::fromStdWString(fp.withFrame(cell.m_frameId).getWideString());
|
|
Shinya Kitaoka |
120a6e |
name = name + tr(" :: Level: ") + imageName;
|
|
Shinya Kitaoka |
120a6e |
} else {
|
|
Shinya Kitaoka |
120a6e |
TXshLevel *level = app->getCurrentLevel()->getLevel();
|
|
Shinya Kitaoka |
120a6e |
if (level) {
|
|
Shinya Kitaoka |
120a6e |
TFilePath fp(level->getName());
|
|
Shinya Kitaoka |
120a6e |
QString imageName = QString::fromStdWString(
|
|
Shinya Kitaoka |
120a6e |
fp.withFrame(app->getCurrentFrame()->getFid()).getWideString());
|
|
Shinya Kitaoka |
120a6e |
name = name + tr("Level: ") + imageName;
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Shinya Kitaoka |
120a6e |
if (!m_sceneViewer->is3DView()) {
|
|
Shinya Kitaoka |
120a6e |
TAffine aff = m_sceneViewer->getSceneMatrix() *
|
|
Shinya Kitaoka |
120a6e |
m_sceneViewer->getNormalZoomScale().inv();
|
|
Shinya Kitaoka |
120a6e |
name = name + tr(" :: Zoom : ") +
|
|
Shinya Kitaoka |
120a6e |
QString::number(tround(100.0 * sqrt(aff.det()))) + "%";
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
setWindowTitle(name);
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
void SceneViewerPanel::updateFrameRange() {
|
|
Shinya Kitaoka |
120a6e |
TFrameHandle *fh = TApp::instance()->getCurrentFrame();
|
|
Shinya Kitaoka |
120a6e |
int frameIndex = fh->getFrameIndex();
|
|
Shinya Kitaoka |
120a6e |
int maxFrameIndex = fh->getMaxFrameIndex();
|
|
Shinya Kitaoka |
120a6e |
if (frameIndex > maxFrameIndex) maxFrameIndex = frameIndex;
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->setFrameRange(1, maxFrameIndex + 1, 1, frameIndex + 1);
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
void SceneViewerPanel::updateFrameMarkers() {
|
|
Shinya Kitaoka |
120a6e |
int fromIndex, toIndex, dummy;
|
|
Shinya Kitaoka |
120a6e |
XsheetGUI::getPlayRange(fromIndex, toIndex, dummy);
|
|
Shinya Kitaoka |
120a6e |
TFrameHandle *fh = TApp::instance()->getCurrentFrame();
|
|
Shinya Kitaoka |
120a6e |
if (fh->isEditingLevel()) {
|
|
Shinya Kitaoka |
120a6e |
fromIndex = 0;
|
|
Shinya Kitaoka |
120a6e |
toIndex = -1;
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->setMarkers(fromIndex, toIndex);
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
void SceneViewerPanel::onSceneChanged() {
|
|
Shinya Kitaoka |
120a6e |
updateFrameRange();
|
|
Shinya Kitaoka |
120a6e |
updateFrameMarkers();
|
|
Shinya Kitaoka |
120a6e |
changeWindowTitle();
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
TApp *app = TApp::instance();
|
|
Shinya Kitaoka |
120a6e |
ToonzScene *scene = app->getCurrentScene()->getScene();
|
|
Shinya Kitaoka |
120a6e |
assert(scene);
|
|
Shinya Kitaoka |
120a6e |
// vinz: perche veniva fatto?
|
|
Shinya Kitaoka |
120a6e |
// m_flipConsole->updateCurrentFPS(scene->getProperties()->getOutputProperties()->getFrameRate());
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
int frameIndex = TApp::instance()->getCurrentFrame()->getFrameIndex();
|
|
Shinya Kitaoka |
120a6e |
if (m_keyFrameButton->getCurrentFrame() != frameIndex)
|
|
Shinya Kitaoka |
120a6e |
m_keyFrameButton->setCurrentFrame(frameIndex);
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
void SceneViewerPanel::onSceneSwitched() {
|
|
Shinya Kitaoka |
120a6e |
m_previewButton->setPressed(false);
|
|
Shinya Kitaoka |
120a6e |
m_subcameraPreviewButton->setPressed(false);
|
|
Shinya Kitaoka |
120a6e |
enableFlipConsoleForCamerastand(false);
|
|
Shinya Kitaoka |
120a6e |
m_sceneViewer->enablePreview(SceneViewer::NO_PREVIEW);
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->setChecked(FlipConsole::eDefineSubCamera, false);
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->setFrameRate(TApp::instance()
|
|
Shinya Kitaoka |
120a6e |
->getCurrentScene()
|
|
Shinya Kitaoka |
120a6e |
->getScene()
|
|
Shinya Kitaoka |
120a6e |
->getProperties()
|
|
Shinya Kitaoka |
120a6e |
->getOutputProperties()
|
|
Shinya Kitaoka |
120a6e |
->getFrameRate());
|
|
Shinya Kitaoka |
120a6e |
m_sceneViewer->setEditPreviewSubcamera(false);
|
|
Shinya Kitaoka |
120a6e |
onSceneChanged();
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
void SceneViewerPanel::onFrameSwitched() {
|
|
Shinya Kitaoka |
120a6e |
int frameIndex = TApp::instance()->getCurrentFrame()->getFrameIndex();
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->setCurrentFrame(frameIndex + 1);
|
|
Shinya Kitaoka |
120a6e |
if (m_keyFrameButton->getCurrentFrame() != frameIndex)
|
|
Shinya Kitaoka |
120a6e |
m_keyFrameButton->setCurrentFrame(frameIndex);
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
void SceneViewerPanel::onFrameTypeChanged() {
|
|
Shinya Kitaoka |
120a6e |
if (TApp::instance()->getCurrentFrame()->getFrameType() ==
|
|
Shinya Kitaoka |
120a6e |
TFrameHandle::LevelFrame) {
|
|
Shinya Kitaoka |
120a6e |
if (m_sceneViewer->isPreviewEnabled()) {
|
|
Shinya Kitaoka |
120a6e |
m_previewButton->setPressed(false);
|
|
Shinya Kitaoka |
120a6e |
m_subcameraPreviewButton->setPressed(false);
|
|
Shinya Kitaoka |
120a6e |
enableFlipConsoleForCamerastand(false);
|
|
Shinya Kitaoka |
120a6e |
m_sceneViewer->enablePreview(SceneViewer::NO_PREVIEW);
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Shinya Kitaoka |
120a6e |
CameraTestCheck::instance()->setIsEnabled(false);
|
|
Shinya Kitaoka |
120a6e |
CleanupPreviewCheck::instance()->setIsEnabled(false);
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
m_flipConsole->setChecked(FlipConsole::eDefineSubCamera, false);
|
|
Shinya Kitaoka |
120a6e |
m_sceneViewer->setEditPreviewSubcamera(false);
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
updateFrameRange();
|
|
Shinya Kitaoka |
120a6e |
updateFrameMarkers();
|
|
Toshihiro Shimizu |
890ddd |
}
|