Merge remote-tracking branch 'upstream/master' into stop_motion_improvements
This commit is contained in:
commit
962b2cd89e
6 changed files with 136 additions and 64 deletions
|
@ -283,6 +283,8 @@ public:
|
||||||
void pressButton(EGadget buttonId);
|
void pressButton(EGadget buttonId);
|
||||||
|
|
||||||
void showHideAllParts(bool);
|
void showHideAllParts(bool);
|
||||||
|
void showHidePlaybar(bool);
|
||||||
|
void showHideFrameSlider(bool);
|
||||||
|
|
||||||
void enableProgressBar(bool enable);
|
void enableProgressBar(bool enable);
|
||||||
void setProgressBarStatus(const std::vector<UCHAR> *status);
|
void setProgressBarStatus(const std::vector<UCHAR> *status);
|
||||||
|
|
|
@ -467,7 +467,7 @@ void cloneSubXsheets(TXsheet *xsh) {
|
||||||
// PasteColumnsUndo
|
// PasteColumnsUndo
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
class PasteColumnsUndo final : public TUndo {
|
class PasteColumnsUndo : public TUndo {
|
||||||
std::set<int> m_indices;
|
std::set<int> m_indices;
|
||||||
StageObjectsData *m_data;
|
StageObjectsData *m_data;
|
||||||
QMap<TFxPort *, TFx *> m_columnLinks;
|
QMap<TFxPort *, TFx *> m_columnLinks;
|
||||||
|
@ -1349,3 +1349,23 @@ ColumnsStatusCommand
|
||||||
c16(MI_LockSelectedColumns, CMD_LOCK, TARGET_SELECTED),
|
c16(MI_LockSelectedColumns, CMD_LOCK, TARGET_SELECTED),
|
||||||
c17(MI_UnlockSelectedColumns, CMD_UNLOCK, TARGET_SELECTED);
|
c17(MI_UnlockSelectedColumns, CMD_UNLOCK, TARGET_SELECTED);
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
// ConvertToVectorUndo
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Same in functionality to PasteColumnsUndo; think of it perhaps like
|
||||||
|
// pasting the newly created vector column.
|
||||||
|
class ConvertToVectorUndo final : public PasteColumnsUndo {
|
||||||
|
public:
|
||||||
|
ConvertToVectorUndo(std::set<int> indices) : PasteColumnsUndo(indices) {};
|
||||||
|
|
||||||
|
QString getHistoryString() override {
|
||||||
|
return QObject::tr("Convert to Vectors");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
void ColumnCmd::addConvertToVectorUndo(std::set<int> &newColumnIndices)
|
||||||
|
{
|
||||||
|
TUndoManager::manager()->add(new ConvertToVectorUndo(newColumnIndices));
|
||||||
|
}
|
||||||
|
|
|
@ -32,6 +32,9 @@ bool canResequence(int index);
|
||||||
void cloneChild(int index);
|
void cloneChild(int index);
|
||||||
void clearCells(int index);
|
void clearCells(int index);
|
||||||
|
|
||||||
|
//! Adds an undo object for converting layer to vector.
|
||||||
|
void addConvertToVectorUndo(std::set<int> &newColumnIndices);
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -46,6 +46,7 @@
|
||||||
#include "tcolorstyles.h"
|
#include "tcolorstyles.h"
|
||||||
#include "tstroke.h"
|
#include "tstroke.h"
|
||||||
#include "tpersistset.h"
|
#include "tpersistset.h"
|
||||||
|
#include "columncommand.h"
|
||||||
|
|
||||||
// Qt includes
|
// Qt includes
|
||||||
#include <QFrame>
|
#include <QFrame>
|
||||||
|
@ -950,6 +951,7 @@ bool VectorizerPopup::apply() {
|
||||||
SLOT(onFinished()), Qt::QueuedConnection);
|
SLOT(onFinished()), Qt::QueuedConnection);
|
||||||
assert(ret);
|
assert(ret);
|
||||||
|
|
||||||
|
std::set<int> newColumnIndices;
|
||||||
int newIndexColumn = c1 + 1;
|
int newIndexColumn = c1 + 1;
|
||||||
for (auto const level : levels) {
|
for (auto const level : levels) {
|
||||||
TXshSimpleLevel *sl = dynamic_cast<TXshSimpleLevel *>(level);
|
TXshSimpleLevel *sl = dynamic_cast<TXshSimpleLevel *>(level);
|
||||||
|
@ -1017,9 +1019,11 @@ bool VectorizerPopup::apply() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
newColumnIndices.insert(newIndexColumn);
|
||||||
newIndexColumn += 1;
|
newIndexColumn += 1;
|
||||||
} else if (vl) {
|
} else if (vl) {
|
||||||
std::vector<TFrameId> gomi;
|
std::vector<TFrameId> gomi;
|
||||||
|
newColumnIndices.insert(scene->getXsheet()->getFirstFreeColumnIndex());
|
||||||
scene->getXsheet()->exposeLevel(
|
scene->getXsheet()->exposeLevel(
|
||||||
0, scene->getXsheet()->getFirstFreeColumnIndex(), vl, gomi);
|
0, scene->getXsheet()->getFirstFreeColumnIndex(), vl, gomi);
|
||||||
}
|
}
|
||||||
|
@ -1027,6 +1031,10 @@ bool VectorizerPopup::apply() {
|
||||||
if (m_vectorizer->isCanceled()) break;
|
if (m_vectorizer->isCanceled()) break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Add undo object
|
||||||
|
if (!m_vectorizer->isCanceled())
|
||||||
|
ColumnCmd::addConvertToVectorUndo(newColumnIndices);
|
||||||
|
|
||||||
m_progressDialog->close();
|
m_progressDialog->close();
|
||||||
delete m_vectorizer;
|
delete m_vectorizer;
|
||||||
|
|
||||||
|
|
|
@ -67,11 +67,10 @@
|
||||||
|
|
||||||
enum CV_Parts {
|
enum CV_Parts {
|
||||||
CVPARTS_None = 0,
|
CVPARTS_None = 0,
|
||||||
CVPARTS_TOOLBAR = 0x1,
|
CVPARTS_PLAYBAR = 0x1,
|
||||||
CVPARTS_TOOLOPTIONS = 0x2,
|
CVPARTS_FRAMESLIDER = 0x4,
|
||||||
CVPARTS_FLIPCONSOLE = 0x4,
|
|
||||||
CVPARTS_End = 0x8,
|
CVPARTS_End = 0x8,
|
||||||
CVPARTS_ALL = CVPARTS_TOOLBAR | CVPARTS_TOOLOPTIONS | CVPARTS_FLIPCONSOLE
|
CVPARTS_ALL = CVPARTS_PLAYBAR | CVPARTS_FRAMESLIDER
|
||||||
};
|
};
|
||||||
|
|
||||||
using namespace DVGui;
|
using namespace DVGui;
|
||||||
|
@ -182,7 +181,6 @@ SceneViewerPanel::SceneViewerPanel(QWidget *parent, Qt::WFlags flags)
|
||||||
->getFrameRate());
|
->getFrameRate());
|
||||||
updateFrameRange(), updateFrameMarkers();
|
updateFrameRange(), updateFrameMarkers();
|
||||||
|
|
||||||
|
|
||||||
setLayout(mainLayout);
|
setLayout(mainLayout);
|
||||||
|
|
||||||
m_visiblePartsFlag = CVPARTS_ALL;
|
m_visiblePartsFlag = CVPARTS_ALL;
|
||||||
|
@ -199,7 +197,8 @@ SceneViewerPanel::SceneViewerPanel(QWidget *parent, Qt::WFlags flags)
|
||||||
|
|
||||||
void SceneViewerPanel::updateShowHide() {
|
void SceneViewerPanel::updateShowHide() {
|
||||||
// flip console
|
// flip console
|
||||||
m_flipConsole->showHideAllParts(m_visiblePartsFlag & CVPARTS_FLIPCONSOLE);
|
m_flipConsole->showHidePlaybar(m_visiblePartsFlag & CVPARTS_PLAYBAR);
|
||||||
|
m_flipConsole->showHideFrameSlider(m_visiblePartsFlag & CVPARTS_FRAMESLIDER);
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -213,21 +212,27 @@ void SceneViewerPanel::contextMenuEvent(QContextMenuEvent* event) {
|
||||||
menu->exec(event->globalPos());
|
menu->exec(event->globalPos());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
void SceneViewerPanel::addShowHideContextMenu(QMenu *menu) {
|
void SceneViewerPanel::addShowHideContextMenu(QMenu *menu) {
|
||||||
QMenu *showHideMenu = menu->addMenu(tr("GUI Show / Hide"));
|
QMenu *showHideMenu = menu->addMenu(tr("GUI Show / Hide"));
|
||||||
// actions
|
|
||||||
|
|
||||||
QAction* flipConsoleSHAct = showHideMenu->addAction(tr("Console"));
|
// actions
|
||||||
flipConsoleSHAct->setCheckable(true);
|
QAction *playbarSHAct = showHideMenu->addAction(tr("Playback Toolbar"));
|
||||||
flipConsoleSHAct->setChecked(m_visiblePartsFlag & CVPARTS_FLIPCONSOLE);
|
QAction *frameSliderSHAct = showHideMenu->addAction(tr("Frame Slider"));
|
||||||
flipConsoleSHAct->setData((UINT)CVPARTS_FLIPCONSOLE);
|
|
||||||
|
playbarSHAct->setCheckable(true);
|
||||||
|
playbarSHAct->setChecked(m_visiblePartsFlag & CVPARTS_PLAYBAR);
|
||||||
|
playbarSHAct->setData((UINT)CVPARTS_PLAYBAR);
|
||||||
|
|
||||||
|
frameSliderSHAct->setCheckable(true);
|
||||||
|
frameSliderSHAct->setChecked(m_visiblePartsFlag & CVPARTS_FRAMESLIDER);
|
||||||
|
frameSliderSHAct->setData((UINT)CVPARTS_FRAMESLIDER);
|
||||||
|
|
||||||
QActionGroup *showHideActGroup = new QActionGroup(this);
|
QActionGroup *showHideActGroup = new QActionGroup(this);
|
||||||
showHideActGroup->setExclusive(false);
|
showHideActGroup->setExclusive(false);
|
||||||
showHideActGroup->addAction(flipConsoleSHAct);
|
showHideActGroup->addAction(playbarSHAct);
|
||||||
|
showHideActGroup->addAction(frameSliderSHAct);
|
||||||
|
|
||||||
connect(showHideActGroup, SIGNAL(triggered(QAction *)), this,
|
connect(showHideActGroup, SIGNAL(triggered(QAction *)), this,
|
||||||
SLOT(onShowHideActionTriggered(QAction *)));
|
SLOT(onShowHideActionTriggered(QAction *)));
|
||||||
|
|
|
@ -429,7 +429,9 @@ enum {
|
||||||
eShowDefineLoadBox = 0x400,
|
eShowDefineLoadBox = 0x400,
|
||||||
eShowUseLoadBox = 0x800,
|
eShowUseLoadBox = 0x800,
|
||||||
eShowViewerControls = 0x1000,
|
eShowViewerControls = 0x1000,
|
||||||
eShowHowMany = 0x2000
|
eShowSound = 0x2000,
|
||||||
|
eShowLocator = 0x4000,
|
||||||
|
eShowHowMany = 0x8000
|
||||||
};
|
};
|
||||||
|
|
||||||
FlipConsole::FlipConsole(QVBoxLayout *mainLayout, std::vector<int> gadgetsMask,
|
FlipConsole::FlipConsole(QVBoxLayout *mainLayout, std::vector<int> gadgetsMask,
|
||||||
|
@ -542,6 +544,18 @@ void FlipConsole::showHideAllParts(bool isShow) {
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
void FlipConsole::showHidePlaybar(bool isShow) {
|
||||||
|
m_playToolBarContainer->setVisible(isShow);
|
||||||
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
void FlipConsole::showHideFrameSlider(bool isShow) {
|
||||||
|
m_frameSliderFrame->setVisible(isShow);
|
||||||
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
void showEvent(QShowEvent *);
|
void showEvent(QShowEvent *);
|
||||||
void hideEvent(QHideEvent *);
|
void hideEvent(QHideEvent *);
|
||||||
|
|
||||||
|
@ -992,10 +1006,20 @@ void FlipConsole::applyCustomizeMask() {
|
||||||
enableButton(eDefineSubCamera, m_customizeMask & eShowDefineSubCamera);
|
enableButton(eDefineSubCamera, m_customizeMask & eShowDefineSubCamera);
|
||||||
enableButton(eDefineLoadBox, m_customizeMask & eShowDefineLoadBox);
|
enableButton(eDefineLoadBox, m_customizeMask & eShowDefineLoadBox);
|
||||||
enableButton(eUseLoadBox, m_customizeMask & eShowUseLoadBox);
|
enableButton(eUseLoadBox, m_customizeMask & eShowUseLoadBox);
|
||||||
if (m_subcamSep)
|
if (m_subcamSep) {
|
||||||
m_subcamSep->setVisible(m_customizeMask & eShowDefineSubCamera ||
|
int count = m_gadgetsMask.size();
|
||||||
m_customizeMask & eShowDefineLoadBox ||
|
bool hasDefineLoadBox =
|
||||||
m_customizeMask & eShowUseLoadBox);
|
std::find(m_gadgetsMask.begin(), m_gadgetsMask.end(), eDefineLoadBox) ==
|
||||||
|
m_gadgetsMask.end();
|
||||||
|
bool hasUseLoadBox = std::find(m_gadgetsMask.begin(), m_gadgetsMask.end(),
|
||||||
|
eUseLoadBox) == m_gadgetsMask.end();
|
||||||
|
bool hasDefineSubCam = std::find(m_gadgetsMask.begin(), m_gadgetsMask.end(),
|
||||||
|
eDefineSubCamera) == m_gadgetsMask.end();
|
||||||
|
m_subcamSep->setVisible(
|
||||||
|
(hasDefineSubCam && m_customizeMask & eShowDefineSubCamera) ||
|
||||||
|
(hasDefineLoadBox && m_customizeMask & eShowDefineLoadBox) ||
|
||||||
|
(hasUseLoadBox && m_customizeMask & eShowUseLoadBox));
|
||||||
|
}
|
||||||
|
|
||||||
enableButton(eWhiteBg, m_customizeMask & eShowBg);
|
enableButton(eWhiteBg, m_customizeMask & eShowBg);
|
||||||
enableButton(eBlackBg, m_customizeMask & eShowBg);
|
enableButton(eBlackBg, m_customizeMask & eShowBg);
|
||||||
|
@ -1016,6 +1040,9 @@ void FlipConsole::applyCustomizeMask() {
|
||||||
enableButton(eNext, m_customizeMask & eShowVcr);
|
enableButton(eNext, m_customizeMask & eShowVcr);
|
||||||
enableButton(eLast, m_customizeMask & eShowVcr);
|
enableButton(eLast, m_customizeMask & eShowVcr);
|
||||||
|
|
||||||
|
enableButton(eSound, m_customizeMask & eShowSound);
|
||||||
|
enableButton(eLocator, m_customizeMask & eShowLocator);
|
||||||
|
|
||||||
if (m_vcrSep) m_vcrSep->setVisible(m_customizeMask & eShowVcr);
|
if (m_vcrSep) m_vcrSep->setVisible(m_customizeMask & eShowVcr);
|
||||||
|
|
||||||
enableButton(eMatte, m_customizeMask & eShowcolorFilter);
|
enableButton(eMatte, m_customizeMask & eShowcolorFilter);
|
||||||
|
@ -1094,8 +1121,6 @@ void FlipConsole::createCustomizeMenu(bool withCustomWidget) {
|
||||||
hasButton(m_gadgetsMask, eBlackBg) ||
|
hasButton(m_gadgetsMask, eBlackBg) ||
|
||||||
hasButton(m_gadgetsMask, eCheckBg))
|
hasButton(m_gadgetsMask, eCheckBg))
|
||||||
addMenuItem(eShowBg, tr("Background Colors"), menu);
|
addMenuItem(eShowBg, tr("Background Colors"), menu);
|
||||||
if (hasButton(m_gadgetsMask, eRate))
|
|
||||||
addMenuItem(eShowFramerate, tr("Framerate"), menu);
|
|
||||||
|
|
||||||
addMenuItem(eShowVcr, tr("Playback Controls"), menu);
|
addMenuItem(eShowVcr, tr("Playback Controls"), menu);
|
||||||
|
|
||||||
|
@ -1103,11 +1128,17 @@ void FlipConsole::createCustomizeMenu(bool withCustomWidget) {
|
||||||
hasButton(m_gadgetsMask, eBlue) || hasButton(m_gadgetsMask, eMatte))
|
hasButton(m_gadgetsMask, eBlue) || hasButton(m_gadgetsMask, eMatte))
|
||||||
addMenuItem(eShowcolorFilter, tr("Color Channels"), menu);
|
addMenuItem(eShowcolorFilter, tr("Color Channels"), menu);
|
||||||
|
|
||||||
if (withCustomWidget) addMenuItem(eShowCustom, tr("Set Key"), menu);
|
if (hasButton(m_gadgetsMask, eSound))
|
||||||
|
addMenuItem(eShowSound, tr("Sound"), menu);
|
||||||
|
|
||||||
if (hasButton(m_gadgetsMask, eHisto))
|
if (hasButton(m_gadgetsMask, eHisto))
|
||||||
addMenuItem(eShowHisto, tr("Histogram"), menu);
|
addMenuItem(eShowHisto, tr("Histogram"), menu);
|
||||||
|
|
||||||
|
if (hasButton(m_gadgetsMask, eLocator))
|
||||||
|
addMenuItem(eShowLocator, tr("Locator"), menu);
|
||||||
|
|
||||||
|
if (withCustomWidget) addMenuItem(eShowCustom, tr("Set Key"), menu);
|
||||||
|
|
||||||
if (hasButton(m_gadgetsMask, eFilledRaster))
|
if (hasButton(m_gadgetsMask, eFilledRaster))
|
||||||
addMenuItem(eFilledRaster, tr("Display Areas as Filled"), menu);
|
addMenuItem(eFilledRaster, tr("Display Areas as Filled"), menu);
|
||||||
|
|
||||||
|
@ -1118,6 +1149,9 @@ void FlipConsole::createCustomizeMenu(bool withCustomWidget) {
|
||||||
hasButton(m_gadgetsMask, eResetView))
|
hasButton(m_gadgetsMask, eResetView))
|
||||||
addMenuItem(eShowViewerControls, tr("Viewer Controls"), menu);
|
addMenuItem(eShowViewerControls, tr("Viewer Controls"), menu);
|
||||||
|
|
||||||
|
if (hasButton(m_gadgetsMask, eRate))
|
||||||
|
addMenuItem(eShowFramerate, tr("Framerate"), menu);
|
||||||
|
|
||||||
bool ret = connect(menu, SIGNAL(triggered(QAction *)), this,
|
bool ret = connect(menu, SIGNAL(triggered(QAction *)), this,
|
||||||
SLOT(onCustomizeButtonPressed(QAction *)));
|
SLOT(onCustomizeButtonPressed(QAction *)));
|
||||||
assert(ret);
|
assert(ret);
|
||||||
|
|
Loading…
Reference in a new issue