Allow to Hide Console in Viewer
This commit is contained in:
parent
ea71a3e51c
commit
bda484cac8
5 changed files with 236 additions and 86 deletions
|
@ -75,7 +75,7 @@ namespace {
|
||||||
|
|
||||||
void initToonzEvent(TMouseEvent &toonzEvent, QMouseEvent *event,
|
void initToonzEvent(TMouseEvent &toonzEvent, QMouseEvent *event,
|
||||||
int widgetHeight, double pressure, int devPixRatio) {
|
int widgetHeight, double pressure, int devPixRatio) {
|
||||||
toonzEvent.m_pos = TPointD(event->pos().x() * devPixRatio,
|
toonzEvent.m_pos = TPointD(event->pos().x() * devPixRatio,
|
||||||
widgetHeight - 1 - event->pos().y() * devPixRatio);
|
widgetHeight - 1 - event->pos().y() * devPixRatio);
|
||||||
toonzEvent.m_mousePos = event->pos();
|
toonzEvent.m_mousePos = event->pos();
|
||||||
toonzEvent.m_pressure = 1.0;
|
toonzEvent.m_pressure = 1.0;
|
||||||
|
@ -310,7 +310,7 @@ void SceneViewer::tabletEvent(QTabletEvent *e) {
|
||||||
#ifdef LINUX
|
#ifdef LINUX
|
||||||
// for Linux, create context menu on right click here.
|
// for Linux, create context menu on right click here.
|
||||||
// could possibly merge with OSX code above
|
// could possibly merge with OSX code above
|
||||||
if(e->button() == Qt::RightButton) {
|
if (e->button() == Qt::RightButton) {
|
||||||
m_mouseButton = Qt::NoButton;
|
m_mouseButton = Qt::NoButton;
|
||||||
onContextMenu(e->pos(), e->globalPos());
|
onContextMenu(e->pos(), e->globalPos());
|
||||||
}
|
}
|
||||||
|
@ -931,12 +931,12 @@ void SceneViewer::wheelEvent(QWheelEvent *event) {
|
||||||
|
|
||||||
default: // Qt::MouseEventSynthesizedByQt,
|
default: // Qt::MouseEventSynthesizedByQt,
|
||||||
// Qt::MouseEventSynthesizedByApplication
|
// Qt::MouseEventSynthesizedByApplication
|
||||||
{
|
{
|
||||||
std::cout << "not supported event: Qt::MouseEventSynthesizedByQt, "
|
std::cout << "not supported event: Qt::MouseEventSynthesizedByQt, "
|
||||||
"Qt::MouseEventSynthesizedByApplication"
|
"Qt::MouseEventSynthesizedByApplication"
|
||||||
<< std::endl;
|
<< std::endl;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // end switch
|
} // end switch
|
||||||
|
|
||||||
|
@ -1032,8 +1032,8 @@ void SceneViewer::gestureEvent(QGestureEvent *e) {
|
||||||
qreal rotationDelta =
|
qreal rotationDelta =
|
||||||
gesture->rotationAngle() - gesture->lastRotationAngle();
|
gesture->rotationAngle() - gesture->lastRotationAngle();
|
||||||
if (m_isFlippedX != m_isFlippedY) rotationDelta = -rotationDelta;
|
if (m_isFlippedX != m_isFlippedY) rotationDelta = -rotationDelta;
|
||||||
TAffine aff = getViewMatrix().inv();
|
TAffine aff = getViewMatrix().inv();
|
||||||
TPointD center = aff * TPointD(0, 0);
|
TPointD center = aff * TPointD(0, 0);
|
||||||
if (!m_rotating && !m_zooming) {
|
if (!m_rotating && !m_zooming) {
|
||||||
m_rotationDelta += rotationDelta;
|
m_rotationDelta += rotationDelta;
|
||||||
double absDelta = abs(m_rotationDelta);
|
double absDelta = abs(m_rotationDelta);
|
||||||
|
@ -1174,9 +1174,10 @@ bool SceneViewer::event(QEvent *e) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
if (e->type() == QEvent::Gesture && CommandManager::instance()
|
if (e->type() == QEvent::Gesture &&
|
||||||
->getAction(MI_TouchGestureControl)
|
CommandManager::instance()
|
||||||
->isChecked()) {
|
->getAction(MI_TouchGestureControl)
|
||||||
|
->isChecked()) {
|
||||||
gestureEvent(static_cast<QGestureEvent *>(e));
|
gestureEvent(static_cast<QGestureEvent *>(e));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1216,7 +1217,7 @@ bool SceneViewer::event(QEvent *e) {
|
||||||
|
|
||||||
// Disable keyboard shortcuts while the tool is busy with a mouse drag
|
// Disable keyboard shortcuts while the tool is busy with a mouse drag
|
||||||
// operation.
|
// operation.
|
||||||
if ( tool->isDragging() ) {
|
if (tool->isDragging()) {
|
||||||
e->accept();
|
e->accept();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1597,6 +1598,13 @@ void SceneViewer::onContextMenu(const QPoint &pos, const QPoint &globalPos) {
|
||||||
cvp->addShowHideContextMenu(menu);
|
cvp->addShowHideContextMenu(menu);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SceneViewerPanel *svp = qobject_cast<SceneViewerPanel *>(
|
||||||
|
parentWidget()->parentWidget()->parentWidget());
|
||||||
|
if (svp) {
|
||||||
|
menu->addSeparator();
|
||||||
|
svp->addShowHideContextMenu(menu);
|
||||||
|
}
|
||||||
|
|
||||||
menu->exec(globalPos);
|
menu->exec(globalPos);
|
||||||
delete menu;
|
delete menu;
|
||||||
menuVisible = false;
|
menuVisible = false;
|
||||||
|
@ -1644,13 +1652,13 @@ void SceneViewer::dropEvent(QDropEvent *e) {
|
||||||
|
|
||||||
IoCmd::loadResources(args);
|
IoCmd::loadResources(args);
|
||||||
|
|
||||||
if (acceptResourceOrFolderDrop(mimeData->urls())) {
|
if (acceptResourceOrFolderDrop(mimeData->urls())) {
|
||||||
// Force Copy Action
|
// Force Copy Action
|
||||||
e->setDropAction(Qt::CopyAction);
|
e->setDropAction(Qt::CopyAction);
|
||||||
// For files, don't accept original proposed action in case it's a move
|
// For files, don't accept original proposed action in case it's a move
|
||||||
e->accept();
|
e->accept();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
e->acceptProposedAction();
|
e->acceptProposedAction();
|
||||||
}
|
}
|
||||||
|
@ -1664,8 +1672,8 @@ void SceneViewer::onToolSwitched() {
|
||||||
|
|
||||||
TTool *tool = TApp::instance()->getCurrentTool()->getTool();
|
TTool *tool = TApp::instance()->getCurrentTool()->getTool();
|
||||||
if (tool) {
|
if (tool) {
|
||||||
tool->updateMatrix();
|
tool->updateMatrix();
|
||||||
if (tool->getViewer()) tool->getViewer()->setGuidedStrokePickerMode(0);
|
if (tool->getViewer()) tool->getViewer()->setGuidedStrokePickerMode(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
onLevelChanged();
|
onLevelChanged();
|
||||||
|
|
|
@ -861,33 +861,6 @@ OpenFloatingPanel openStyleEditorCommand(MI_OpenStyleControl, "StyleEditor",
|
||||||
QObject::tr("Style Editor"));
|
QObject::tr("Style Editor"));
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
//=============================================================================
|
|
||||||
// SceneViewer
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
class SceneViewerFactory final : public TPanelFactory {
|
|
||||||
public:
|
|
||||||
SceneViewerFactory() : TPanelFactory("SceneViewer") {}
|
|
||||||
|
|
||||||
TPanel *createPanel(QWidget *parent) override {
|
|
||||||
SceneViewerPanel *panel = new SceneViewerPanel(parent);
|
|
||||||
panel->setObjectName(getPanelType());
|
|
||||||
panel->setWindowTitle(QObject::tr("Viewer"));
|
|
||||||
panel->setMinimumSize(220, 280);
|
|
||||||
return panel;
|
|
||||||
}
|
|
||||||
|
|
||||||
void initialize(TPanel *panel) override { assert(0); }
|
|
||||||
|
|
||||||
} sceneViewerFactory;
|
|
||||||
|
|
||||||
//=============================================================================
|
|
||||||
OpenFloatingPanel openSceneViewerCommand(MI_OpenLevelView, "SceneViewer",
|
|
||||||
QObject::tr("Viewer"));
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
class ToolbarFactory final : public TPanelFactory {
|
class ToolbarFactory final : public TPanelFactory {
|
||||||
public:
|
public:
|
||||||
ToolbarFactory() : TPanelFactory("ToolBar") {}
|
ToolbarFactory() : TPanelFactory("ToolBar") {}
|
||||||
|
@ -1332,6 +1305,53 @@ OpenFloatingPanel openComboViewerCommand(MI_OpenComboViewer, "ComboViewer",
|
||||||
QObject::tr("Combo Viewer"));
|
QObject::tr("Combo Viewer"));
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
// SceneViewer
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
SceneViewerPanelContainer::SceneViewerPanelContainer(QWidget* parent)
|
||||||
|
: StyleShortcutSwitchablePanel(parent) {
|
||||||
|
m_sceneViewer = new SceneViewerPanel(parent);
|
||||||
|
setFocusProxy(m_sceneViewer);
|
||||||
|
setWidget(m_sceneViewer);
|
||||||
|
|
||||||
|
m_sceneViewer->initializeTitleBar(getTitleBar());
|
||||||
|
}
|
||||||
|
// reimplementation of TPanel::widgetInThisPanelIsFocused
|
||||||
|
bool SceneViewerPanelContainer::widgetInThisPanelIsFocused() {
|
||||||
|
return m_sceneViewer->hasFocus();
|
||||||
|
}
|
||||||
|
// reimplementation of TPanel::widgetFocusOnEnter
|
||||||
|
void SceneViewerPanelContainer::widgetFocusOnEnter() {
|
||||||
|
m_sceneViewer->onEnterPanel();
|
||||||
|
}
|
||||||
|
void SceneViewerPanelContainer::widgetClearFocusOnLeave() {
|
||||||
|
m_sceneViewer->onLeavePanel();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class SceneViewerFactory final : public TPanelFactory {
|
||||||
|
public:
|
||||||
|
SceneViewerFactory() : TPanelFactory("SceneViewer") {}
|
||||||
|
|
||||||
|
TPanel* createPanel(QWidget* parent) override {
|
||||||
|
SceneViewerPanelContainer* panel = new SceneViewerPanelContainer(parent);
|
||||||
|
panel->setObjectName(getPanelType());
|
||||||
|
panel->setWindowTitle(QObject::tr("Viewer"));
|
||||||
|
panel->setMinimumSize(220, 280);
|
||||||
|
//panel->resize(700, 600);
|
||||||
|
return panel;
|
||||||
|
}
|
||||||
|
void initialize(TPanel* panel) override { assert(0); }
|
||||||
|
} sceneViewerFactory;
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
OpenFloatingPanel openSceneViewerCommand(MI_OpenLevelView, "SceneViewer",
|
||||||
|
QObject::tr("Viewer"));
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
// CleanupSettings DockWindow
|
// CleanupSettings DockWindow
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
|
@ -26,6 +26,7 @@ class FunctionViewer;
|
||||||
class FlipBook;
|
class FlipBook;
|
||||||
class ToolOptions;
|
class ToolOptions;
|
||||||
class ComboViewerPanel;
|
class ComboViewerPanel;
|
||||||
|
class SceneViewerPanel;
|
||||||
class FxSettings;
|
class FxSettings;
|
||||||
class VectorGuidedDrawingPane;
|
class VectorGuidedDrawingPane;
|
||||||
|
|
||||||
|
@ -271,6 +272,25 @@ protected:
|
||||||
void widgetClearFocusOnLeave() override;
|
void widgetClearFocusOnLeave() override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//=========================================================
|
||||||
|
// SceneViewerPanel
|
||||||
|
//---------------------------------------------------------
|
||||||
|
|
||||||
|
class SceneViewerPanelContainer final : public StyleShortcutSwitchablePanel {
|
||||||
|
Q_OBJECT
|
||||||
|
SceneViewerPanel *m_sceneViewer;
|
||||||
|
|
||||||
|
public:
|
||||||
|
SceneViewerPanelContainer(QWidget* parent);
|
||||||
|
// reimplementation of TPanel::widgetInThisPanelIsFocused
|
||||||
|
bool widgetInThisPanelIsFocused() override;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
// reimplementation of TPanel::widgetFocusOnEnter
|
||||||
|
void widgetFocusOnEnter() override;
|
||||||
|
void widgetClearFocusOnLeave() override;
|
||||||
|
};
|
||||||
|
|
||||||
//=========================================================
|
//=========================================================
|
||||||
// FxSettingsPanel
|
// FxSettingsPanel
|
||||||
//---------------------------------------------------------
|
//---------------------------------------------------------
|
||||||
|
|
|
@ -61,9 +61,19 @@
|
||||||
#include <QMenu>
|
#include <QMenu>
|
||||||
#include <QToolBar>
|
#include <QToolBar>
|
||||||
#include <QMainWindow>
|
#include <QMainWindow>
|
||||||
|
#include <QSettings>
|
||||||
|
|
||||||
#include "viewerpane.h"
|
#include "viewerpane.h"
|
||||||
|
|
||||||
|
enum CV_Parts {
|
||||||
|
CVPARTS_None = 0,
|
||||||
|
CVPARTS_TOOLBAR = 0x1,
|
||||||
|
CVPARTS_TOOLOPTIONS = 0x2,
|
||||||
|
CVPARTS_FLIPCONSOLE = 0x4,
|
||||||
|
CVPARTS_End = 0x8,
|
||||||
|
CVPARTS_ALL = CVPARTS_TOOLBAR | CVPARTS_TOOLOPTIONS | CVPARTS_FLIPCONSOLE
|
||||||
|
};
|
||||||
|
|
||||||
using namespace DVGui;
|
using namespace DVGui;
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
@ -77,17 +87,16 @@ SceneViewerPanel::SceneViewerPanel(QWidget *parent, Qt::WindowFlags flags)
|
||||||
#else
|
#else
|
||||||
SceneViewerPanel::SceneViewerPanel(QWidget *parent, Qt::WFlags flags)
|
SceneViewerPanel::SceneViewerPanel(QWidget *parent, Qt::WFlags flags)
|
||||||
#endif
|
#endif
|
||||||
: StyleShortcutSwitchablePanel(parent) {
|
: QFrame(parent) {
|
||||||
QFrame *hbox = new QFrame(this);
|
setFrameStyle(QFrame::StyledPanel);
|
||||||
hbox->setFrameStyle(QFrame::StyledPanel);
|
setObjectName("ViewerPanel");
|
||||||
hbox->setObjectName("ViewerPanel");
|
|
||||||
|
|
||||||
QVBoxLayout *mainLayout = new QVBoxLayout(hbox);
|
QVBoxLayout *mainLayout = new QVBoxLayout(this);
|
||||||
mainLayout->setMargin(0);
|
mainLayout->setMargin(0);
|
||||||
mainLayout->setSpacing(0);
|
mainLayout->setSpacing(0);
|
||||||
|
|
||||||
// Viewer
|
// Viewer
|
||||||
QWidget *viewer = new QWidget(hbox);
|
QWidget *viewer = new QWidget(this);
|
||||||
QGridLayout *viewerL = new QGridLayout(viewer);
|
QGridLayout *viewerL = new QGridLayout(viewer);
|
||||||
|
|
||||||
ImageUtils::FullScreenWidget *fsWidget =
|
ImageUtils::FullScreenWidget *fsWidget =
|
||||||
|
@ -173,16 +182,80 @@ SceneViewerPanel::SceneViewerPanel(QWidget *parent, Qt::WFlags flags)
|
||||||
->getFrameRate());
|
->getFrameRate());
|
||||||
updateFrameRange(), updateFrameMarkers();
|
updateFrameRange(), updateFrameMarkers();
|
||||||
|
|
||||||
hbox->setLayout(mainLayout);
|
|
||||||
|
|
||||||
setWidget(hbox);
|
setLayout(mainLayout);
|
||||||
|
|
||||||
initializeTitleBar(
|
m_visiblePartsFlag = CVPARTS_ALL;
|
||||||
getTitleBar()); // note: initializeTitleBar() refers to m_sceneViewer
|
updateShowHide();
|
||||||
|
|
||||||
|
setFocusProxy(m_sceneViewer);
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
/*! toggle show/hide of the widgets according to m_visibleFlag
|
||||||
|
*/
|
||||||
|
|
||||||
|
void SceneViewerPanel::updateShowHide() {
|
||||||
|
// flip console
|
||||||
|
m_flipConsole->showHideAllParts(m_visiblePartsFlag & CVPARTS_FLIPCONSOLE);
|
||||||
|
update();
|
||||||
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
/*! showing the show/hide commands
|
||||||
|
*/
|
||||||
|
|
||||||
|
void SceneViewerPanel::contextMenuEvent(QContextMenuEvent* event) {
|
||||||
|
QMenu* menu = new QMenu(this);
|
||||||
|
addShowHideContextMenu(menu);
|
||||||
|
menu->exec(event->globalPos());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
void SceneViewerPanel::addShowHideContextMenu(QMenu* menu) {
|
||||||
|
QMenu* showHideMenu = menu->addMenu(tr("GUI Show / Hide"));
|
||||||
|
// actions
|
||||||
|
|
||||||
|
QAction* flipConsoleSHAct = showHideMenu->addAction(tr("Console"));
|
||||||
|
flipConsoleSHAct->setCheckable(true);
|
||||||
|
flipConsoleSHAct->setChecked(m_visiblePartsFlag & CVPARTS_FLIPCONSOLE);
|
||||||
|
flipConsoleSHAct->setData((UINT)CVPARTS_FLIPCONSOLE);
|
||||||
|
|
||||||
|
QActionGroup* showHideActGroup = new QActionGroup(this);
|
||||||
|
showHideActGroup->setExclusive(false);
|
||||||
|
showHideActGroup->addAction(flipConsoleSHAct);
|
||||||
|
|
||||||
|
connect(showHideActGroup, SIGNAL(triggered(QAction*)), this,
|
||||||
|
SLOT(onShowHideActionTriggered(QAction*)));
|
||||||
|
|
||||||
|
showHideMenu->addSeparator();
|
||||||
|
showHideMenu->addAction(CommandManager::instance()->getAction(MI_ViewCamera));
|
||||||
|
showHideMenu->addAction(CommandManager::instance()->getAction(MI_ViewTable));
|
||||||
|
showHideMenu->addAction(CommandManager::instance()->getAction(MI_FieldGuide));
|
||||||
|
showHideMenu->addAction(CommandManager::instance()->getAction(MI_SafeArea));
|
||||||
|
showHideMenu->addAction(CommandManager::instance()->getAction(MI_ViewBBox));
|
||||||
|
showHideMenu->addAction(
|
||||||
|
CommandManager::instance()->getAction(MI_ViewColorcard));
|
||||||
|
showHideMenu->addAction(CommandManager::instance()->getAction(MI_ViewRuler));
|
||||||
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
/*! slot function for show/hide the parts
|
||||||
|
*/
|
||||||
|
|
||||||
|
void SceneViewerPanel::onShowHideActionTriggered(QAction* act) {
|
||||||
|
CV_Parts part = (CV_Parts)act->data().toUInt();
|
||||||
|
assert(part < CVPARTS_End);
|
||||||
|
|
||||||
|
m_visiblePartsFlag ^= part;
|
||||||
|
|
||||||
|
updateShowHide();
|
||||||
|
}
|
||||||
|
|
||||||
void SceneViewerPanel::onDrawFrame(
|
void SceneViewerPanel::onDrawFrame(
|
||||||
int frame, const ImagePainter::VisualSettings &settings) {
|
int frame, const ImagePainter::VisualSettings &settings) {
|
||||||
TApp *app = TApp::instance();
|
TApp *app = TApp::instance();
|
||||||
|
@ -229,7 +302,6 @@ SceneViewerPanel::~SceneViewerPanel() {}
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
void SceneViewerPanel::showEvent(QShowEvent *event) {
|
void SceneViewerPanel::showEvent(QShowEvent *event) {
|
||||||
StyleShortcutSwitchablePanel::showEvent(event);
|
|
||||||
TApp *app = TApp::instance();
|
TApp *app = TApp::instance();
|
||||||
TFrameHandle *frameHandle = app->getCurrentFrame();
|
TFrameHandle *frameHandle = app->getCurrentFrame();
|
||||||
TSceneHandle *sceneHandle = app->getCurrentScene();
|
TSceneHandle *sceneHandle = app->getCurrentScene();
|
||||||
|
@ -250,7 +322,9 @@ void SceneViewerPanel::showEvent(QShowEvent *event) {
|
||||||
|
|
||||||
ret = ret && connect(sceneHandle, SIGNAL(nameSceneChanged()), this,
|
ret = ret && connect(sceneHandle, SIGNAL(nameSceneChanged()), this,
|
||||||
SLOT(changeWindowTitle()));
|
SLOT(changeWindowTitle()));
|
||||||
|
ret =
|
||||||
|
ret && connect(sceneHandle, SIGNAL(preferenceChanged(const QString&)),
|
||||||
|
m_flipConsole, SLOT(onPreferenceChanged(const QString&)));
|
||||||
ret = ret && connect(levelHandle, SIGNAL(xshLevelSwitched(TXshLevel *)), this,
|
ret = ret && connect(levelHandle, SIGNAL(xshLevelSwitched(TXshLevel *)), this,
|
||||||
SLOT(onXshLevelSwitched(TXshLevel *)));
|
SLOT(onXshLevelSwitched(TXshLevel *)));
|
||||||
ret = ret && connect(levelHandle, SIGNAL(xshLevelChanged()), this,
|
ret = ret && connect(levelHandle, SIGNAL(xshLevelChanged()), this,
|
||||||
|
@ -275,12 +349,12 @@ void SceneViewerPanel::showEvent(QShowEvent *event) {
|
||||||
// Aggiorno FPS al valore definito nel viewer corrente.
|
// Aggiorno FPS al valore definito nel viewer corrente.
|
||||||
// frameHandle->setPreviewFrameRate(m_fpsSlider->value());
|
// frameHandle->setPreviewFrameRate(m_fpsSlider->value());
|
||||||
m_flipConsole->setActive(true);
|
m_flipConsole->setActive(true);
|
||||||
|
m_flipConsole->onPreferenceChanged("");
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
void SceneViewerPanel::hideEvent(QHideEvent *event) {
|
void SceneViewerPanel::hideEvent(QHideEvent *event) {
|
||||||
StyleShortcutSwitchablePanel::hideEvent(event);
|
|
||||||
TApp *app = TApp::instance();
|
TApp *app = TApp::instance();
|
||||||
TFrameHandle *frameHandle = app->getCurrentFrame();
|
TFrameHandle *frameHandle = app->getCurrentFrame();
|
||||||
TSceneHandle *sceneHandle = app->getCurrentScene();
|
TSceneHandle *sceneHandle = app->getCurrentScene();
|
||||||
|
@ -313,6 +387,8 @@ void SceneViewerPanel::hideEvent(QHideEvent *event) {
|
||||||
|
|
||||||
disconnect(app->getCurrentTool(), SIGNAL(toolSwitched()), m_sceneViewer,
|
disconnect(app->getCurrentTool(), SIGNAL(toolSwitched()), m_sceneViewer,
|
||||||
SLOT(onToolSwitched()));
|
SLOT(onToolSwitched()));
|
||||||
|
disconnect(app->getCurrentScene(), SIGNAL(preferenceChanged(const QString&)),
|
||||||
|
m_flipConsole, SLOT(onPreferenceChanged(const QString&)));
|
||||||
|
|
||||||
m_flipConsole->setActive(false);
|
m_flipConsole->setActive(false);
|
||||||
}
|
}
|
||||||
|
@ -522,6 +598,7 @@ void SceneViewerPanel::changeWindowTitle() {
|
||||||
// zoom = sqrt(m_sceneViewer->getViewMatrix().det());
|
// zoom = sqrt(m_sceneViewer->getViewMatrix().det());
|
||||||
ToonzScene *scene = app->getCurrentScene()->getScene();
|
ToonzScene *scene = app->getCurrentScene()->getScene();
|
||||||
if (!scene) return;
|
if (!scene) return;
|
||||||
|
if (!parentWidget()) return;
|
||||||
int frame = app->getCurrentFrame()->getFrame();
|
int frame = app->getCurrentFrame()->getFrame();
|
||||||
QString name;
|
QString name;
|
||||||
if (app->getCurrentFrame()->isEditingScene()) {
|
if (app->getCurrentFrame()->isEditingScene()) {
|
||||||
|
@ -535,7 +612,7 @@ void SceneViewerPanel::changeWindowTitle() {
|
||||||
name + tr(" :: Frame: ") + tr(std::to_string(frame + 1).c_str());
|
name + tr(" :: Frame: ") + tr(std::to_string(frame + 1).c_str());
|
||||||
int col = app->getCurrentColumn()->getColumnIndex();
|
int col = app->getCurrentColumn()->getColumnIndex();
|
||||||
if (col < 0) {
|
if (col < 0) {
|
||||||
setWindowTitle(name);
|
parentWidget()->setWindowTitle(name);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
TXsheet *xsh = app->getCurrentXsheet()->getXsheet();
|
TXsheet *xsh = app->getCurrentXsheet()->getXsheet();
|
||||||
|
@ -552,7 +629,7 @@ void SceneViewerPanel::changeWindowTitle() {
|
||||||
name = name + tr(" (Flipped)");
|
name = name + tr(" (Flipped)");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
setWindowTitle(name);
|
parentWidget()->setWindowTitle(name);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
assert(cell.m_level.getPointer());
|
assert(cell.m_level.getPointer());
|
||||||
|
@ -581,7 +658,7 @@ void SceneViewerPanel::changeWindowTitle() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
setWindowTitle(name);
|
parentWidget()->setWindowTitle(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
@ -692,13 +769,6 @@ void SceneViewerPanel::onFrameTypeChanged() {
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
void SceneViewerPanel::onPreferenceChanged(const QString &prefName) {
|
|
||||||
m_flipConsole->onPreferenceChanged(prefName);
|
|
||||||
StyleShortcutSwitchablePanel::onPreferenceChanged(prefName);
|
|
||||||
}
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
void SceneViewerPanel::playAudioFrame(int frame) {
|
void SceneViewerPanel::playAudioFrame(int frame) {
|
||||||
if (m_first) {
|
if (m_first) {
|
||||||
m_first = false;
|
m_first = false;
|
||||||
|
@ -756,3 +826,20 @@ void SceneViewerPanel::setFlipHButtonChecked(bool checked) {
|
||||||
void SceneViewerPanel::setFlipVButtonChecked(bool checked) {
|
void SceneViewerPanel::setFlipVButtonChecked(bool checked) {
|
||||||
m_flipConsole->setChecked(FlipConsole::eFlipVertical, checked);
|
m_flipConsole->setChecked(FlipConsole::eFlipVertical, checked);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
void SceneViewerPanel::setVisiblePartsFlag(UINT flag) {
|
||||||
|
m_visiblePartsFlag = flag;
|
||||||
|
updateShowHide();
|
||||||
|
}
|
||||||
|
|
||||||
|
// SaveLoadQSettings
|
||||||
|
void SceneViewerPanel::save(QSettings& settings) const {
|
||||||
|
settings.setValue("visibleParts", m_visiblePartsFlag);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SceneViewerPanel::load(QSettings& settings) {
|
||||||
|
m_visiblePartsFlag = settings.value("visibleParts", CVPARTS_ALL).toUInt();
|
||||||
|
updateShowHide();
|
||||||
|
}
|
|
@ -3,11 +3,13 @@
|
||||||
#ifndef VIEWER_PANE_INCLUDED
|
#ifndef VIEWER_PANE_INCLUDED
|
||||||
#define VIEWER_PANE_INCLUDED
|
#define VIEWER_PANE_INCLUDED
|
||||||
|
|
||||||
#include "styleshortcutswitchablepanel.h"
|
|
||||||
#include "sceneviewer.h"
|
#include "sceneviewer.h"
|
||||||
#include "toonzqt/intfield.h"
|
#include "toonzqt/intfield.h"
|
||||||
#include "toonzqt/keyframenavigator.h"
|
#include "toonzqt/keyframenavigator.h"
|
||||||
#include "toonzqt/flipconsoleowner.h"
|
#include "toonzqt/flipconsoleowner.h"
|
||||||
|
#include "saveloadqsettings.h"
|
||||||
|
|
||||||
|
#include <QFrame>
|
||||||
|
|
||||||
class SceneViewer;
|
class SceneViewer;
|
||||||
class QPoint;
|
class QPoint;
|
||||||
|
@ -25,8 +27,9 @@ class Ruler;
|
||||||
|
|
||||||
class FlipConsole;
|
class FlipConsole;
|
||||||
class TXshLevel;
|
class TXshLevel;
|
||||||
class SceneViewerPanel final : public StyleShortcutSwitchablePanel,
|
class SceneViewerPanel final : public QFrame,
|
||||||
public FlipConsoleOwner {
|
public FlipConsoleOwner,
|
||||||
|
public SaveLoadQSettings {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
friend class SceneViewer;
|
friend class SceneViewer;
|
||||||
|
@ -38,6 +41,7 @@ class SceneViewerPanel final : public StyleShortcutSwitchablePanel,
|
||||||
TPanelTitleBarButton *m_previewButton;
|
TPanelTitleBarButton *m_previewButton;
|
||||||
TPanelTitleBarButton *m_subcameraPreviewButton;
|
TPanelTitleBarButton *m_subcameraPreviewButton;
|
||||||
bool m_onionSkinActive = false;
|
bool m_onionSkinActive = false;
|
||||||
|
UINT m_visiblePartsFlag;
|
||||||
bool m_playSound = true;
|
bool m_playSound = true;
|
||||||
bool m_hasSoundtrack = false;
|
bool m_hasSoundtrack = false;
|
||||||
bool m_playing = false;
|
bool m_playing = false;
|
||||||
|
@ -55,30 +59,40 @@ public:
|
||||||
#endif
|
#endif
|
||||||
~SceneViewerPanel();
|
~SceneViewerPanel();
|
||||||
|
|
||||||
|
// toggle show/hide of the widgets according to m_visiblePartsFlag
|
||||||
|
void setVisiblePartsFlag(UINT flag);
|
||||||
|
void updateShowHide();
|
||||||
|
void addShowHideContextMenu(QMenu*);
|
||||||
|
|
||||||
void onDrawFrame(int frame,
|
void onDrawFrame(int frame,
|
||||||
const ImagePainter::VisualSettings &settings) override;
|
const ImagePainter::VisualSettings &settings) override;
|
||||||
bool widgetInThisPanelIsFocused() override {
|
|
||||||
return m_sceneViewer->hasFocus();
|
void onEnterPanel() {
|
||||||
|
m_sceneViewer->setFocus(Qt::OtherFocusReason);
|
||||||
|
// activate shortcut key for this flipconsole
|
||||||
|
m_flipConsole->makeCurrent();
|
||||||
}
|
}
|
||||||
|
void onLeavePanel() { m_sceneViewer->clearFocus(); }
|
||||||
|
|
||||||
|
// SaveLoadQSettings
|
||||||
|
virtual void save(QSettings& settings) const override;
|
||||||
|
virtual void load(QSettings& settings) override;
|
||||||
|
|
||||||
|
void initializeTitleBar(TPanelTitleBar* titleBar);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void showEvent(QShowEvent *) override;
|
void showEvent(QShowEvent *) override;
|
||||||
void hideEvent(QHideEvent *) override;
|
void hideEvent(QHideEvent *) override;
|
||||||
void resizeEvent(QResizeEvent *) override;
|
void resizeEvent(QResizeEvent *) override;
|
||||||
void initializeTitleBar(TPanelTitleBar *titleBar);
|
|
||||||
void createFrameToolBar();
|
void createFrameToolBar();
|
||||||
void createPlayToolBar();
|
void createPlayToolBar();
|
||||||
void addColorMaskButton(QWidget *parent, const char *iconSVGName, int id);
|
void addColorMaskButton(QWidget *parent, const char *iconSVGName, int id);
|
||||||
// reimplementation of TPanel::widgetFocusOnEnter
|
// reimplementation of TPanel::widgetFocusOnEnter
|
||||||
void widgetFocusOnEnter() override {
|
|
||||||
m_sceneViewer->setFocus(Qt::OtherFocusReason);
|
|
||||||
// activate shortcut key for this flipconsole
|
|
||||||
m_flipConsole->makeCurrent();
|
|
||||||
};
|
|
||||||
void widgetClearFocusOnLeave() override { m_sceneViewer->clearFocus(); };
|
|
||||||
void enableFlipConsoleForCamerastand(bool on);
|
void enableFlipConsoleForCamerastand(bool on);
|
||||||
void playAudioFrame(int frame);
|
void playAudioFrame(int frame);
|
||||||
bool hasSoundtrack();
|
bool hasSoundtrack();
|
||||||
|
void contextMenuEvent(QContextMenuEvent* event) override;
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
|
||||||
|
@ -97,9 +111,10 @@ protected slots:
|
||||||
void onSceneSwitched();
|
void onSceneSwitched();
|
||||||
void onFrameTypeChanged();
|
void onFrameTypeChanged();
|
||||||
void onPlayingStatusChanged(bool playing);
|
void onPlayingStatusChanged(bool playing);
|
||||||
|
// for showing/hiding the parts
|
||||||
|
void onShowHideActionTriggered(QAction*);
|
||||||
void enableFullPreview(bool enabled);
|
void enableFullPreview(bool enabled);
|
||||||
void enableSubCameraPreview(bool enabled);
|
void enableSubCameraPreview(bool enabled);
|
||||||
void onPreferenceChanged(const QString &prefName) override;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue