From 4060ca35fe82c15fed8195dbe02b6c519bf4e595 Mon Sep 17 00:00:00 2001 From: shun_iwasawa Date: Apr 20 2016 07:15:01 +0000 Subject: fix save mesh --- diff --git a/toonz/sources/toonz/iocommand.cpp b/toonz/sources/toonz/iocommand.cpp index 8ab77b4..d058c27 100644 --- a/toonz/sources/toonz/iocommand.cpp +++ b/toonz/sources/toonz/iocommand.cpp @@ -1631,11 +1631,14 @@ bool IoCmd::saveLevel(const TFilePath &fp, TXshSimpleLevel *sl, bool overwrite) FileBrowser::refreshFolder(fp.getParentDir()); History::instance()->addItem(fp); - if (overwritePalette || - sl->getPath().getType() == "pli") - sl->getPalette()->setDirtyFlag(false); - else // ask only once for save palette - sl->getPalette()->setAskOverwriteFlag(false); + if (sl->getPalette()) + { + if (overwritePalette || + sl->getPath().getType() == "pli") + sl->getPalette()->setDirtyFlag(false); + else // ask only once for save palette + sl->getPalette()->setAskOverwriteFlag(false); + } RecentFiles::instance()->addFilePath(toQString(fp), RecentFiles::Level); QApplication::restoreOverrideCursor(); @@ -2604,10 +2607,6 @@ public: MsgBox(WARNING, QObject::tr("No Current Level")); return; } - if (!sl->getPalette()) { - MsgBox(WARNING, QObject::tr("Toonz cannot Save this Level")); - return; - } ToonzScene *scene = TApp::instance()->getCurrentScene()->getScene(); if (!scene) { MsgBox(WARNING, QObject::tr("No Current Scene")); diff --git a/toonz/sources/toonz/meshifypopup.cpp b/toonz/sources/toonz/meshifypopup.cpp index 81d0af4..f99f971 100644 --- a/toonz/sources/toonz/meshifypopup.cpp +++ b/toonz/sources/toonz/meshifypopup.cpp @@ -979,6 +979,8 @@ void createMeshifiedLevels(std::map &meshLevels, progressDialog->setValue(progressDialog->value() + 1); } + + ml->setDirtyFlag(true); } } diff --git a/toonz/sources/toonz/xshcellviewer.cpp b/toonz/sources/toonz/xshcellviewer.cpp index 5225407..ceac3b1 100644 --- a/toonz/sources/toonz/xshcellviewer.cpp +++ b/toonz/sources/toonz/xshcellviewer.cpp @@ -756,9 +756,7 @@ void CellArea::drawCells(QPainter &p, const QRect toBeUpdated) //check if the column is reference bool isReference = true; if (column) { // Verifico se la colonna e' una mask - if (column->isControl()) - isReference = false; - if (column->isRendered()) + if (column->isControl() || column->isRendered() || column->getMeshColumn()) isReference = false; } diff --git a/toonz/sources/toonz/xshcolumnviewer.cpp b/toonz/sources/toonz/xshcolumnviewer.cpp index c5e60e9..d8faa00 100644 --- a/toonz/sources/toonz/xshcolumnviewer.cpp +++ b/toonz/sources/toonz/xshcolumnviewer.cpp @@ -641,7 +641,7 @@ void ColumnArea::drawLevelColumnHead(QPainter &p, int col) if (column) { if (column->isControl()) usage = Control; - if (column->isRendered()) + if (column->isRendered() || column->getMeshColumn()) usage = Normal; } diff --git a/toonz/sources/toonz/xsheetviewer.cpp b/toonz/sources/toonz/xsheetviewer.cpp index 9a6bef2..47f800b 100644 --- a/toonz/sources/toonz/xsheetviewer.cpp +++ b/toonz/sources/toonz/xsheetviewer.cpp @@ -97,8 +97,8 @@ void XsheetViewer::getCellTypeAndColors( sideColor = XsheetGUI::SoundTextColumnBorderColor; break; case MESH_XSHLEVEL: - cellColor = XsheetGUI::MeshColumnColor; - sideColor = XsheetGUI::MeshColumnBorderColor; + cellColor = (isSelected) ? getSelectedMeshColumnColor() : getMeshColumnColor(); + sideColor = getMeshColumnBorderColor(); break; case UNKNOWN_XSHLEVEL: case NO_XSHLEVEL: diff --git a/toonz/sources/toonz/xsheetviewer.h b/toonz/sources/toonz/xsheetviewer.h index b40f36f..2ea9e12 100644 --- a/toonz/sources/toonz/xsheetviewer.h +++ b/toonz/sources/toonz/xsheetviewer.h @@ -97,6 +97,7 @@ const QColor SoundTextColumnBorderColor(140, 140, 140); const QColor MeshColumnColor(200, 130, 255); const QColor MeshColumnBorderColor(105, 70, 135); +const QColor SelectedMeshColumnColor(216, 180, 245); //Empty column const QColor EmptyColumnColor(124, 124, 124); @@ -252,7 +253,14 @@ class XsheetViewer : public QFrame, public Spreadsheet::FrameScroller Q_PROPERTY(QColor PaletteColumnColor READ getPaletteColumnColor WRITE setPaletteColumnColor) Q_PROPERTY(QColor PaletteColumnBorderColor READ getPaletteColumnBorderColor WRITE setPaletteColumnBorderColor) Q_PROPERTY(QColor SelectedPaletteColumnColor READ getSelectedPaletteColumnColor WRITE setSelectedPaletteColumnColor) - + //Mesh column + QColor m_meshColumnColor; + QColor m_meshColumnBorderColor; + QColor m_selectedMeshColumnColor; + Q_PROPERTY(QColor MeshColumnColor READ getMeshColumnColor WRITE setMeshColumnColor) + Q_PROPERTY(QColor MeshColumnBorderColor READ getMeshColumnBorderColor WRITE setMeshColumnBorderColor) + Q_PROPERTY(QColor SelectedMeshColumnColor READ getSelectedMeshColumnColor WRITE setSelectedMeshColumnColor) + //for making the column head lighter (255,255,255,50); QColor m_columnHeadPastelizer; Q_PROPERTY(QColor ColumnHeadPastelizer READ getColumnHeadPastelizer WRITE setColumnHeadPastelizer) @@ -488,7 +496,14 @@ public: QColor getPaletteColumnColor() const { return m_paletteColumnColor; } QColor getPaletteColumnBorderColor() const { return m_paletteColumnBorderColor; } QColor getSelectedPaletteColumnColor() const { return m_selectedPaletteColumnColor; } - + //Mesh column + void setMeshColumnColor(const QColor &color) { m_meshColumnColor = color; } + void setMeshColumnBorderColor(const QColor &color) { m_meshColumnBorderColor = color; } + void setSelectedMeshColumnColor(const QColor &color) { m_selectedMeshColumnColor = color; } + QColor getMeshColumnColor() const { return m_meshColumnColor; } + QColor getMeshColumnBorderColor() const { return m_meshColumnBorderColor; } + QColor getSelectedMeshColumnColor() const { return m_selectedMeshColumnColor; } + void setColumnHeadPastelizer(const QColor &color) { m_columnHeadPastelizer = color; } QColor getColumnHeadPastelizer() const { return m_columnHeadPastelizer; } void setSelectedColumnHead(const QColor &color) { m_selectedColumnHead = color; } diff --git a/toonz/sources/toonzlib/txshsimplelevel.cpp b/toonz/sources/toonzlib/txshsimplelevel.cpp index de6ac66..91adc28 100644 --- a/toonz/sources/toonzlib/txshsimplelevel.cpp +++ b/toonz/sources/toonzlib/txshsimplelevel.cpp @@ -1134,7 +1134,7 @@ void TXshSimpleLevel::load() if (!getScene()) return; - getProperties()->setDirtyFlag(false); + //getProperties()->setDirtyFlag(false); m_isSubsequence = loadingLevelRange.isEnabled();