Update displaying of Column/Pegbar Number

This commit is contained in:
manongjohn 2022-12-27 11:08:23 -05:00
parent ddbd6ab197
commit d40f4991b6
14 changed files with 236 additions and 165 deletions

View file

@ -264,6 +264,8 @@ public:
class FxSchematicNode : public SchematicNode { class FxSchematicNode : public SchematicNode {
Q_OBJECT Q_OBJECT
int m_columnIndex;
protected: protected:
enum eDropActionMode { eShift, eNone }; enum eDropActionMode { eShift, eNone };
@ -346,6 +348,9 @@ public:
void toggleNormalIconView() { m_isNormalIconView = !m_isNormalIconView; } void toggleNormalIconView() { m_isNormalIconView = !m_isNormalIconView; }
bool isNormalIconView() { return m_isNormalIconView; } bool isNormalIconView() { return m_isNormalIconView; }
void setColumnIndex(int columnIndex) { m_columnIndex = columnIndex; }
int getColumnIndex() { return m_columnIndex; }
signals: signals:
void switchCurrentFx(TFx *fx); void switchCurrentFx(TFx *fx);
@ -436,7 +441,6 @@ class FxSchematicZeraryNode final : public FxSchematicNode {
Q_OBJECT Q_OBJECT
FxPainter *m_painter; FxPainter *m_painter;
int m_columnIndex;
SchematicToggle *m_renderToggle, *m_cameraStandToggle; SchematicToggle *m_renderToggle, *m_cameraStandToggle;
public: public:
@ -449,7 +453,6 @@ public:
void resize(bool maximizeNode) override; void resize(bool maximizeNode) override;
int getColumnIndex() { return m_columnIndex; }
bool isCached() const override; bool isCached() const override;
protected: protected:
@ -473,7 +476,6 @@ class FxSchematicColumnNode final : public FxSchematicNode {
SchematicThumbnailToggle *m_resizeItem; SchematicThumbnailToggle *m_resizeItem;
SchematicToggle *m_renderToggle, *m_cameraStandToggle; SchematicToggle *m_renderToggle, *m_cameraStandToggle;
FxColumnPainter *m_columnPainter; FxColumnPainter *m_columnPainter;
int m_columnIndex;
bool m_isOpened; bool m_isOpened;
public: public:
@ -489,7 +491,6 @@ public:
void getLevelTypeAndName(int &, QString &); void getLevelTypeAndName(int &, QString &);
void resize(bool maximizeNode) override; void resize(bool maximizeNode) override;
int getColumnIndex() { return m_columnIndex; }
protected: protected:
void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *me) override; void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *me) override;
@ -515,7 +516,6 @@ class FxSchematicPaletteNode final : public FxSchematicNode {
SchematicToggle *m_renderToggle; SchematicToggle *m_renderToggle;
FxPalettePainter *m_palettePainter; FxPalettePainter *m_palettePainter;
int m_columnIndex;
public: public:
FxSchematicPaletteNode(FxSchematicScene *scene, TPaletteColumnFx *fx); FxSchematicPaletteNode(FxSchematicScene *scene, TPaletteColumnFx *fx);
@ -526,7 +526,6 @@ public:
QWidget *widget = 0) override; QWidget *widget = 0) override;
QPixmap getPixmap(); QPixmap getPixmap();
bool isOpened() override { return false; } bool isOpened() override { return false; }
int getColumnIndex() { return m_columnIndex; }
QString getPaletteName(); QString getPaletteName();

View file

@ -484,6 +484,7 @@ public:
void resize(bool maximized); void resize(bool maximized);
void getLevelTypeAndName(int &, QString &); void getLevelTypeAndName(int &, QString &);
int getColumnNumber();
private: private:
void updatePortsPosition(); void updatePortsPosition();

View file

@ -1242,8 +1242,7 @@ glPopMatrix();
std::string name; std::string name;
name = (m_parentProbeEnabled ? "Linking " : "Link ") + name = (m_parentProbeEnabled ? "Linking " : "Link ") +
removeTrailingH(magicLink.m_h0.getHandle()) + " to " + removeTrailingH(magicLink.m_h0.getHandle()) + " to " +
obj->getName() + " (Col " + std::to_string(h1.m_columnIndex + 1) + obj->getFullName() + "/" + removeTrailingH(h1.getHandle());
")/" + removeTrailingH(h1.getHandle());
int code = TD_MagicLink + i; int code = TD_MagicLink + i;
glPushName(code); glPushName(code);

View file

@ -413,6 +413,8 @@ ArrowToolOptionsBox::ArrowToolOptionsBox(
// enable to choose target pegbar with combobox // enable to choose target pegbar with combobox
m_currentStageObjectCombo = new QComboBox(this); m_currentStageObjectCombo = new QComboBox(this);
m_currentStageObjectCombo->setSizeAdjustPolicy(
QComboBox::SizeAdjustPolicy::AdjustToContents);
TEnumProperty *activeAxisProp = TEnumProperty *activeAxisProp =
dynamic_cast<TEnumProperty *>(m_pg->getProperty("Active Axis")); dynamic_cast<TEnumProperty *>(m_pg->getProperty("Active Axis"));
@ -989,7 +991,7 @@ void ArrowToolOptionsBox::updateStageObjectComboItems() {
TStageObject *pegbar = xsh->getStageObject(id); TStageObject *pegbar = xsh->getStageObject(id);
QString itemName = (id.isTable()) QString itemName = (id.isTable())
? tr("Table") ? tr("Table")
: QString::fromStdString(pegbar->getName()); : QString::fromStdString(pegbar->getFullName());
// store the item with ObjectId data // store the item with ObjectId data
m_currentStageObjectCombo->addItem(itemName, (int)id.getCode()); m_currentStageObjectCombo->addItem(itemName, (int)id.getCode());
} }
@ -1016,7 +1018,7 @@ void ArrowToolOptionsBox::syncCurrentStageObjectComboItem() {
// column.) // column.)
else { else {
TStageObject *pegbar = m_xshHandle->getXsheet()->getStageObject(curObjId); TStageObject *pegbar = m_xshHandle->getXsheet()->getStageObject(curObjId);
QString itemName = QString::fromStdString(pegbar->getName()); QString itemName = QString::fromStdString(pegbar->getFullName());
std::string itemNameString = itemName.toStdString(); std::string itemNameString = itemName.toStdString();
// store the item with ObjectId data // store the item with ObjectId data
if (itemName == "Peg10000") itemName = "Path"; if (itemName == "Peg10000") itemName = "Path";

View file

@ -1306,7 +1306,7 @@ QString PreferencesPopup::getUIString(PreferencesItemId id) {
{showQuickToolbar, tr("Show Quick Toolbar")}, {showQuickToolbar, tr("Show Quick Toolbar")},
{expandFunctionHeader, {expandFunctionHeader,
tr("Expand Function Editor Header to Match Quick Toolbar Height*")}, tr("Expand Function Editor Header to Match Quick Toolbar Height*")},
{showColumnNumbers, tr("Show Column Numbers in Column Headers")}, {showColumnNumbers, tr("Show Column Numbers")},
{parentColorsInXsheetColumn, {parentColorsInXsheetColumn,
tr("Show Column Parent's Color in the Xsheet")}, tr("Show Column Parent's Color in the Xsheet")},
{highlightLineEverySecond, tr("Highlight Line Every Second")}, {highlightLineEverySecond, tr("Highlight Line Every Second")},

View file

@ -467,7 +467,8 @@ void ChangeObjectParent::refresh() {
TStageObjectId newTextID = id; TStageObjectId newTextID = id;
QString newTextTr; QString newTextTr;
if (tree->getStageObject(i)->hasSpecifiedName()) if (tree->getStageObject(i)->hasSpecifiedName())
newTextTr = QString::fromStdString(tree->getStageObject(i)->getName()); newTextTr =
QString::fromStdString(tree->getStageObject(i)->getFullName());
else else
newTextTr = getNameTr(id); newTextTr = getNameTr(id);
@ -486,7 +487,7 @@ void ChangeObjectParent::refresh() {
continue; continue;
QColor unused; QColor unused;
viewer->getColumnColor(newTextBG, unused, id.getIndex(), xsh); viewer->getColumnColor(newTextBG, unused, id.getIndex(), xsh);
} else } else
continue; continue;
@ -682,8 +683,10 @@ void RenameColumnField::show(const QRect &rect, int col) {
->getName(); ->getName();
TXshColumn *column = xsh->getColumn(col); TXshColumn *column = xsh->getColumn(col);
TXshZeraryFxColumn *zColumn = dynamic_cast<TXshZeraryFxColumn *>(column); TXshZeraryFxColumn *zColumn = dynamic_cast<TXshZeraryFxColumn *>(column);
/*
if (zColumn) if (zColumn)
name = ::to_string(zColumn->getZeraryColumnFx()->getZeraryFx()->getName()); name = ::to_string(zColumn->getZeraryColumnFx()->getZeraryFx()->getName());
*/
setText(QString(name.c_str())); setText(QString(name.c_str()));
selectAll(); selectAll();
@ -705,8 +708,7 @@ void RenameColumnField::renameColumn() {
if (zColumn) if (zColumn)
TFxCommand::renameFx(zColumn->getZeraryColumnFx(), ::to_wstring(newName), TFxCommand::renameFx(zColumn->getZeraryColumnFx(), ::to_wstring(newName),
m_xsheetHandle); m_xsheetHandle);
else TStageObjectCmd::rename(columnId, newName, m_xsheetHandle);
TStageObjectCmd::rename(columnId, newName, m_xsheetHandle);
m_xsheetHandle->notifyXsheetChanged(); m_xsheetHandle->notifyXsheetChanged();
m_col = -1; m_col = -1;
setText(""); setText("");
@ -1080,12 +1082,12 @@ void ColumnArea::DrawHeader::drawColumnName() const {
if (levels.size() == 1) name = to_string((*levels.begin())->getName()); if (levels.size() == 1) name = to_string((*levels.begin())->getName());
} }
// if (col < 0) name = std::string("Camera"); // if (col < 0) name = std::string("Camera");
/*
// ZeraryFx columns store name elsewhere // ZeraryFx columns store name elsewhere
TXshZeraryFxColumn *zColumn = dynamic_cast<TXshZeraryFxColumn *>(column); TXshZeraryFxColumn *zColumn = dynamic_cast<TXshZeraryFxColumn *>(column);
if (zColumn && !isEmpty) if (zColumn && !isEmpty)
name = ::to_string(zColumn->getZeraryColumnFx()->getZeraryFx()->getName()); name = ::to_string(zColumn->getZeraryColumnFx()->getZeraryFx()->getName());
*/
QRect columnName = o->rect((col < 0) ? PredefinedRect::CAMERA_LAYER_NAME QRect columnName = o->rect((col < 0) ? PredefinedRect::CAMERA_LAYER_NAME
: PredefinedRect::LAYER_NAME) : PredefinedRect::LAYER_NAME)
.translated(orig); .translated(orig);

View file

@ -9,6 +9,7 @@
#include "toonz/tcolumnfxset.h" #include "toonz/tcolumnfxset.h"
#include "toonz/txshzeraryfxcolumn.h" #include "toonz/txshzeraryfxcolumn.h"
#include "toonz/tstageobjecttree.h" #include "toonz/tstageobjecttree.h"
#include "toonz/tstageobjectcmd.h"
#include "toonz/txshlevelcolumn.h" #include "toonz/txshlevelcolumn.h"
#include "toonz/txshpalettecolumn.h" #include "toonz/txshpalettecolumn.h"
#include "toonz/toonzscene.h" #include "toonz/toonzscene.h"
@ -843,6 +844,14 @@ void InsertFxUndo::redo() const {
if (m_insertedColumn) { if (m_insertedColumn) {
FxCommandUndo::insertColumn(xsh, m_insertedColumn.getPointer(), m_colIdx, FxCommandUndo::insertColumn(xsh, m_insertedColumn.getPointer(), m_colIdx,
m_columnReplacesHole, true); m_columnReplacesHole, true);
TStageObjectId columnId = TStageObjectId::ColumnId(m_colIdx);
std::wstring wname =
m_insertedColumn->getZeraryColumnFx()->getZeraryFx()->getName();
std::string str(wname.begin(), wname.end());
TStageObjectCmd::rename(columnId, str, m_app->getCurrentXsheet());
return; return;
} }

View file

@ -13,6 +13,7 @@
#include "toonz/tcamera.h" #include "toonz/tcamera.h"
#include "toonz/doubleparamcmd.h" #include "toonz/doubleparamcmd.h"
#include "toonz/tpinnedrangeset.h" #include "toonz/tpinnedrangeset.h"
#include "toonz/preferences.h"
// TnzExt includes // TnzExt includes
#include "ext/plasticskeleton.h" #include "ext/plasticskeleton.h"
@ -557,13 +558,20 @@ string TStageObject::getName() const {
string TStageObject::getFullName() const { string TStageObject::getFullName() const {
string name = getName(); string name = getName();
if (m_id.isColumn()) { if (m_id.isColumn()) {
if (name.find("Col") == 0 && name.length() > 3 && if (!Preferences::instance()->isShowColumnNumbersEnabled()) return name;
name.find_first_not_of("0123456789", 3) == string::npos)
return name; if (name.find("Col") != 0 ||
else (name.length() > 3 &&
return name + " (" + std::to_string(m_id.getIndex() + 1) + ")"; name.find_first_not_of("0123456789", 3) != string::npos))
} else return name + " (Col" + std::to_string(m_id.getIndex() + 1) + ")";
return name; } else if (m_id.isPegbar()) {
if (name.find("Peg") != 0 ||
(name.length() > 3 &&
name.find_first_not_of("0123456789", 3) != string::npos))
return name + " (Peg" + std::to_string(m_id.getIndex() + 1) + ")";
}
return name;
} }
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -343,6 +343,8 @@ void FunctionSheetColumnHeadViewer::paintEvent(QPaintEvent *e) {
painter.fillRect(x0, y0, width, y3 - y0, getViewer()->getBGColor()); painter.fillRect(x0, y0, width, y3 - y0, getViewer()->getBGColor());
} }
int groupChannelCount = 0;
int firstX0 = 0;
for (int c = c0; c <= c1; ++c) { for (int c = c0; c <= c1; ++c) {
FunctionTreeModel::Channel *channel = m_sheet->getChannel(c); FunctionTreeModel::Channel *channel = m_sheet->getChannel(c);
if (!channel) { if (!channel) {
@ -363,8 +365,8 @@ void FunctionSheetColumnHeadViewer::paintEvent(QPaintEvent *e) {
/*---- If the group is different from the before and after, flags are set /*---- If the group is different from the before and after, flags are set
* respectively ---*/ * respectively ---*/
bool firstGroupColumn = prevGroup != group; bool firstGroupColumn = prevGroup != group || c == 0;
bool lastGroupColumn = nextGroup != group; bool lastGroupColumn = nextGroup != group || c == c1;
/*--- The left and right coordinates of the current column ---*/ /*--- The left and right coordinates of the current column ---*/
int x0 = getViewer()->columnToX(c); int x0 = getViewer()->columnToX(c);
@ -372,6 +374,13 @@ void FunctionSheetColumnHeadViewer::paintEvent(QPaintEvent *e) {
// Column width // Column width
int width = x1 - x0 + 1; int width = x1 - x0 + 1;
if (firstGroupColumn) {
groupChannelCount = 0;
firstX0 = x0;
}
groupChannelCount++;
QRect selectedRect = m_sheet->getSelectedCells(); QRect selectedRect = m_sheet->getSelectedCells();
bool isSelected = bool isSelected =
(selectedRect.left() <= c && c <= selectedRect.right()) ? true : false; (selectedRect.left() <= c && c <= selectedRect.right()) ? true : false;
@ -414,13 +423,13 @@ void FunctionSheetColumnHeadViewer::paintEvent(QPaintEvent *e) {
} }
// group name // group name
if (firstGroupColumn) { if (lastGroupColumn) {
int tmpwidth = (lastGroupColumn) ? width : width * 2; int tmpwidth = width * groupChannelCount;
painter.setPen(getViewer()->getTextColor()); painter.setPen(getViewer()->getTextColor());
if (group == currentGroup) if (group == currentGroup)
painter.setPen(m_sheet->getViewer()->getCurrentTextColor()); painter.setPen(m_sheet->getViewer()->getCurrentTextColor());
text = group->getShortName(); text = group->getLongName();
painter.drawText(x0 + d, y0, tmpwidth - d, y1 - y0 + 1, painter.drawText(firstX0 + d, y0, tmpwidth - d, y1 - y0 + 1,
Qt::AlignLeft | Qt::AlignVCenter, text); Qt::AlignLeft | Qt::AlignVCenter, text);
} }
} }

View file

@ -272,12 +272,9 @@ QVariant StageObjectChannelGroup::data(int role) const {
if (role == Qt::DisplayRole) { if (role == Qt::DisplayRole) {
std::string name = (m_stageObject->getId().isTable()) std::string name = (m_stageObject->getId().isTable())
? FunctionTreeView::tr("Table").toStdString() ? FunctionTreeView::tr("Table").toStdString()
: m_stageObject->getName(); : m_stageObject->getFullName();
std::string id = m_stageObject->getId().toString();
return (name == id) ? QString::fromStdString(name)
: QString::fromStdString(name + " (" + id + ")");
return QString::fromStdString(name);
} else if (role == Qt::ForegroundRole) { } else if (role == Qt::ForegroundRole) {
FunctionTreeModel *model = dynamic_cast<FunctionTreeModel *>(getModel()); FunctionTreeModel *model = dynamic_cast<FunctionTreeModel *>(getModel());
if (!model) if (!model)
@ -345,7 +342,9 @@ QString FxChannelGroup::getShortName() const {
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
QString FxChannelGroup::getLongName() const { QString FxChannelGroup::getLongName() const {
return QString::fromStdWString(m_fx->getFxId()); std::wstring name = m_fx->getName();
std::wstring id = m_fx->getFxId();
return QString::fromStdWString(id + L" (" + name + L")");
} }
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -204,15 +204,21 @@ void FxColumnPainter::paint(QPainter *painter,
painter->setPen(viewer->getTextColor()); painter->setPen(viewer->getTextColor());
painter->setBrush(Qt::NoBrush); painter->setBrush(Qt::NoBrush);
bool showColumnNumber = Preferences::instance()->isShowColumnNumbersEnabled();
int rectAdj = 0;
if (showColumnNumber) rectAdj = -20;
QRectF columnNameRect; QRectF columnNameRect;
QRectF levelNameRect; QRectF levelNameRect;
QRectF colNumberRect;
if (m_parent->isNormalIconView()) { if (m_parent->isNormalIconView()) {
columnNameRect = QRect(18, 2, 54, 14); columnNameRect = QRect(18, 2, 74 + rectAdj, 14);
levelNameRect = QRectF(18, 16, 54, 14); levelNameRect = QRectF(18, 16, 74, 14);
colNumberRect = QRectF(72, 2, 20, 14);
} else { } else {
columnNameRect = QRect(4, 2, 78, 22); columnNameRect = QRect(4, 2, 94 + rectAdj, 22);
levelNameRect = QRectF(4, 26, 78, 22); levelNameRect = QRectF(4, 26, 94, 22);
colNumberRect = QRectF(76, 2, 24, 22);
QFont fnt = painter->font(); QFont fnt = painter->font();
fnt.setPixelSize(fnt.pixelSize() * 2); fnt.setPixelSize(fnt.pixelSize() * 2);
painter->setFont(fnt); painter->setFont(fnt);
@ -227,6 +233,12 @@ void FxColumnPainter::paint(QPainter *painter,
elideText(m_name, painter->font(), columnNameRect.width()); elideText(m_name, painter->font(), columnNameRect.width());
painter->drawText(columnNameRect, Qt::AlignLeft | Qt::AlignVCenter, painter->drawText(columnNameRect, Qt::AlignLeft | Qt::AlignVCenter,
elidedName); elidedName);
// column number
if (showColumnNumber) {
QString colNumber = QString::number(m_parent->getColumnIndex() + 1);
painter->drawText(colNumberRect, Qt::AlignCenter, colNumber);
}
} }
// level name // level name
@ -429,18 +441,25 @@ void FxPalettePainter::paint(QPainter *painter,
else else
painter->drawRoundRect(QRectF(0, 0, m_width, m_height), 10, 30); painter->drawRoundRect(QRectF(0, 0, m_width, m_height), 10, 30);
bool showColumnNumber = Preferences::instance()->isShowColumnNumbersEnabled();
int rectAdj = 0;
if (showColumnNumber) rectAdj = -20;
// draw icon // draw icon
QRect paletteRect; QRect paletteRect;
QRectF idRect; QRectF idRect;
QRectF palNameRect; QRectF palNameRect;
QRectF colNumberRect;
if (m_parent->isNormalIconView()) { if (m_parent->isNormalIconView()) {
paletteRect = QRect(-3, -1, 20, 16); paletteRect = QRect(-3, -1, 20, 16);
idRect = QRectF(18, 2, 54, 14); idRect = QRectF(18, 2, 74 + rectAdj, 14);
palNameRect = QRectF(18, 16, 54, 14); palNameRect = QRectF(18, 16, 74, 14);
colNumberRect = QRectF(72, 2, 20, 14);
} else { } else {
paletteRect = QRect(4, -6, 35, 28); paletteRect = QRect(4, -6, 35, 28);
idRect = QRectF(25, 2, 49, 22); idRect = QRectF(25, 2, 69 + rectAdj, 22);
palNameRect = QRectF(4, 26, 78, 22); palNameRect = QRectF(4, 26, 98, 22);
colNumberRect = QRectF(76, 2, 24, 22);
QFont fnt = painter->font(); QFont fnt = painter->font();
fnt.setPixelSize(fnt.pixelSize() * 2); fnt.setPixelSize(fnt.pixelSize() * 2);
@ -461,9 +480,13 @@ void FxPalettePainter::paint(QPainter *painter,
if (m_parent->isNormalIconView()) { if (m_parent->isNormalIconView()) {
QString elidedName = elideText(m_name, painter->font(), w); QString elidedName = elideText(m_name, painter->font(), w);
painter->drawText(idRect, Qt::AlignLeft | Qt::AlignVCenter, elidedName); painter->drawText(idRect, Qt::AlignLeft | Qt::AlignVCenter, elidedName);
} else }
painter->drawText(idRect, Qt::AlignRight | Qt::AlignVCenter,
QString::number(m_parent->getColumnIndex() + 1)); // column number
if (showColumnNumber) {
QString colNumber = QString::number(m_parent->getColumnIndex() + 1);
painter->drawText(colNumberRect, Qt::AlignCenter, colNumber);
}
} }
// level name // level name
@ -618,6 +641,10 @@ void FxPainter::paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
columnFont.setPixelSize(columnFont.pixelSize() - 1); columnFont.setPixelSize(columnFont.pixelSize() - 1);
painter->setFont(columnFont); painter->setFont(columnFont);
bool showColumnNumber = Preferences::instance()->isShowColumnNumbersEnabled();
int rectAdj = 0;
if (showColumnNumber && m_type == eZeraryFx) rectAdj = -20;
// draw fxId in the bottom part // draw fxId in the bottom part
painter->setPen(viewer->getTextColor()); painter->setPen(viewer->getTextColor());
QString label; QString label;
@ -648,7 +675,7 @@ void FxPainter::paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
if (!sceneFx) return; if (!sceneFx) return;
if (sceneFx->getCurrentFx() == m_parent->getFx()) if (sceneFx->getCurrentFx() == m_parent->getFx())
painter->setPen(viewer->getSelectedNodeTextColor()); painter->setPen(viewer->getSelectedNodeTextColor());
QRectF rect(3, 2, m_width - 21, 14); QRectF rect(3, 2, m_width + rectAdj - 21, 14);
int w = rect.width(); int w = rect.width();
if (label == m_name) { if (label == m_name) {
rect.adjust(0, 0, 0, 14); rect.adjust(0, 0, 0, 14);
@ -656,6 +683,13 @@ void FxPainter::paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
} }
QString elidedName = elideText(m_name, painter->font(), w); QString elidedName = elideText(m_name, painter->font(), w);
painter->drawText(rect, Qt::TextWrapAnywhere, elidedName); painter->drawText(rect, Qt::TextWrapAnywhere, elidedName);
// column number
if (showColumnNumber && m_type == eZeraryFx) {
QString colNumber = QString::number(m_parent->getColumnIndex() + 1);
QRectF colNumberRect(72, 2, 20, 14);
painter->drawText(colNumberRect, Qt::AlignCenter, colNumber);
}
} }
} }
@ -865,20 +899,21 @@ void FxPainter::paint_small(QPainter *painter) {
QRectF rect(14, 2, 68, 22); QRectF rect(14, 2, 68, 22);
int w = rect.width(); int w = rect.width();
QString elidedName = elideText(m_name, painter->font(), w); QString elidedName = elideText(m_name, painter->font(), w);
painter->drawText(rect, elidedName); painter->drawText(rect, elidedName, Qt::AlignLeft | Qt::AlignVCenter);
} }
} else { } else {
painter->drawPixmap(16, 6, 38, 38, painter->drawPixmap(22, 6, 44, 38,
FxIconPixmapManager::instance()->getFxIconPm(m_fxType)); FxIconPixmapManager::instance()->getFxIconPm(m_fxType));
} }
// show column number on the right side of icon // show column number on the right side of icon
if (m_type == eZeraryFx) { if (Preferences::instance()->isShowColumnNumbersEnabled() &&
m_type == eZeraryFx) {
FxSchematicZeraryNode *zeraryNode = FxSchematicZeraryNode *zeraryNode =
dynamic_cast<FxSchematicZeraryNode *>(m_parent); dynamic_cast<FxSchematicZeraryNode *>(m_parent);
if (zeraryNode) { if (zeraryNode) {
QRect idRect(30, 10, 46, 38); QRectF idRect(76, 2, 24, 22);
painter->drawText(idRect, Qt::AlignRight | Qt::AlignBottom, painter->drawText(idRect, Qt::AlignCenter,
QString::number(zeraryNode->getColumnIndex() + 1)); QString::number(zeraryNode->getColumnIndex() + 1));
} }
} }
@ -2412,14 +2447,14 @@ bool isMatteFx(std::string id) {
FxSchematicNormalFxNode::FxSchematicNormalFxNode(FxSchematicScene *scene, FxSchematicNormalFxNode::FxSchematicNormalFxNode(FxSchematicScene *scene,
TFx *fx) TFx *fx)
: FxSchematicNode(scene, fx, 90, 32, eNormalFx) { : FxSchematicNode(scene, fx, 110, 32, eNormalFx) {
SchematicViewer *viewer = scene->getSchematicViewer(); SchematicViewer *viewer = scene->getSchematicViewer();
checkDynamicInputPortSize(); checkDynamicInputPortSize();
// resize if small scaled // resize if small scaled
if (!m_isNormalIconView) { if (!m_isNormalIconView) {
setWidth(70); setWidth(90);
setHeight(50); setHeight(50);
} }
@ -2480,7 +2515,7 @@ FxSchematicNormalFxNode::FxSchematicNormalFxNode(FxSchematicScene *scene,
break; break;
} }
m_nameItem = new SchematicName(this, 72, 20); // for rename m_nameItem = new SchematicName(this, 92, 20); // for rename
m_outDock = new FxSchematicDock(this, "", 0, eFxOutputPort); m_outDock = new FxSchematicDock(this, "", 0, eFxOutputPort);
m_linkDock = new FxSchematicDock(this, "", 0, eFxLinkPort); m_linkDock = new FxSchematicDock(this, "", 0, eFxLinkPort);
@ -2504,18 +2539,18 @@ FxSchematicNormalFxNode::FxSchematicNormalFxNode(FxSchematicScene *scene,
if (m_isNormalIconView) { if (m_isNormalIconView) {
m_nameItem->setPos(1, -1); m_nameItem->setPos(1, -1);
m_outDock->setPos(72, 14); m_outDock->setPos(92, 14);
m_linkDock->setPos(72, 7); m_linkDock->setPos(92, 7);
m_renderToggle->setPos(72, 0); m_renderToggle->setPos(92, 0);
} else { } else {
QFont fnt = m_nameItem->font(); QFont fnt = m_nameItem->font();
fnt.setPixelSize(fnt.pixelSize() * 2); fnt.setPixelSize(fnt.pixelSize() * 2);
m_nameItem->setFont(fnt); m_nameItem->setFont(fnt);
m_nameItem->setPos(-1, 0); m_nameItem->setPos(-1, 0);
m_outDock->setPos(60, 0); m_outDock->setPos(80, 0);
m_linkDock->setPos(60, -5); m_linkDock->setPos(80, -5);
m_renderToggle->setPos(30, -5); m_renderToggle->setPos(50, -5);
} }
m_nameItem->setZValue(3); m_nameItem->setZValue(3);
@ -2721,24 +2756,24 @@ void FxSchematicNormalFxNode::resize(bool maximized) {}
FxSchematicZeraryNode::FxSchematicZeraryNode(FxSchematicScene *scene, FxSchematicZeraryNode::FxSchematicZeraryNode(FxSchematicScene *scene,
TZeraryColumnFx *fx) TZeraryColumnFx *fx)
: FxSchematicNode(scene, fx, 90, 32, eZeraryFx) { : FxSchematicNode(scene, fx, 110, 32, eZeraryFx) {
SchematicViewer *viewer = scene->getSchematicViewer(); SchematicViewer *viewer = scene->getSchematicViewer();
checkDynamicInputPortSize(); checkDynamicInputPortSize();
if (!m_isNormalIconView) { if (!m_isNormalIconView) {
setWidth(90); setWidth(110);
setHeight(50); setHeight(50);
} }
m_columnIndex = fx->getColumnIndex(); setColumnIndex(fx->getColumnIndex());
TXshColumn *column = scene->getXsheet()->getColumn(m_columnIndex); TXshColumn *column = scene->getXsheet()->getColumn(getColumnIndex());
TFx *zeraryFx = fx->getZeraryFx(); TFx *zeraryFx = fx->getZeraryFx();
TStageObjectId id = TStageObjectId::ColumnId(m_columnIndex); TStageObjectId id = TStageObjectId::ColumnId(getColumnIndex());
std::string name = scene->getXsheet()->getStageObject(id)->getName(); std::string name = scene->getXsheet()->getStageObject(id)->getName();
/*
if (column) { if (column) {
// ZeraryFx columns store name elsewhere // ZeraryFx columns store name elsewhere
TXshZeraryFxColumn *zColumn = dynamic_cast<TXshZeraryFxColumn *>(column); TXshZeraryFxColumn *zColumn = dynamic_cast<TXshZeraryFxColumn *>(column);
@ -2746,13 +2781,13 @@ FxSchematicZeraryNode::FxSchematicZeraryNode(FxSchematicScene *scene,
name = name =
::to_string(zColumn->getZeraryColumnFx()->getZeraryFx()->getName()); ::to_string(zColumn->getZeraryColumnFx()->getZeraryFx()->getName());
} }
*/
m_name = QString::fromStdString(name); m_name = QString::fromStdString(name);
setToolTip(QString("%1 : %2").arg( setToolTip(QString("%1 : %2").arg(
m_name, QString::fromStdWString(zeraryFx->getFxId()))); m_name, QString::fromStdWString(zeraryFx->getFxId())));
m_nameItem = new SchematicName(this, 72, 20); // for rename m_nameItem = new SchematicName(this, 92, 20); // for rename
m_outDock = new FxSchematicDock(this, "", 0, eFxOutputPort); m_outDock = new FxSchematicDock(this, "", 0, eFxOutputPort);
m_linkDock = new FxSchematicDock(this, "", 0, eFxLinkPort); m_linkDock = new FxSchematicDock(this, "", 0, eFxLinkPort);
m_renderToggle = m_renderToggle =
@ -2794,10 +2829,10 @@ FxSchematicZeraryNode::FxSchematicZeraryNode(FxSchematicScene *scene,
// define positions // define positions
if (m_isNormalIconView) { if (m_isNormalIconView) {
m_nameItem->setPos(1, -1); m_nameItem->setPos(1, -1);
m_outDock->setPos(72, 14); m_outDock->setPos(92, 14);
m_linkDock->setPos(72, m_height); m_linkDock->setPos(92, m_height);
m_renderToggle->setPos(72, 0); m_renderToggle->setPos(92, 0);
m_cameraStandToggle->setPos(72, 7); m_cameraStandToggle->setPos(92, 7);
} else { } else {
QFont fnt = m_nameItem->font(); QFont fnt = m_nameItem->font();
@ -2805,10 +2840,10 @@ FxSchematicZeraryNode::FxSchematicZeraryNode(FxSchematicScene *scene,
m_nameItem->setFont(fnt); m_nameItem->setFont(fnt);
m_nameItem->setPos(-1, 0); m_nameItem->setPos(-1, 0);
m_outDock->setPos(80, 0); m_outDock->setPos(100, 0);
m_linkDock->setPos(80, -5); m_linkDock->setPos(100, -5);
m_renderToggle->setPos(50, -5); m_renderToggle->setPos(70, -5);
m_cameraStandToggle->setPos(20, -5); m_cameraStandToggle->setPos(40, -5);
} }
m_nameItem->setZValue(3); m_nameItem->setZValue(3);
@ -2875,7 +2910,7 @@ void FxSchematicZeraryNode::paint(QPainter *painter,
void FxSchematicZeraryNode::onRenderToggleClicked(bool toggled) { void FxSchematicZeraryNode::onRenderToggleClicked(bool toggled) {
FxSchematicScene *fxScene = dynamic_cast<FxSchematicScene *>(scene()); FxSchematicScene *fxScene = dynamic_cast<FxSchematicScene *>(scene());
if (!fxScene) return; if (!fxScene) return;
TXshColumn *column = fxScene->getXsheet()->getColumn(m_columnIndex); TXshColumn *column = fxScene->getXsheet()->getColumn(getColumnIndex());
if (column) { if (column) {
column->setPreviewVisible(toggled); column->setPreviewVisible(toggled);
emit sceneChanged(); emit sceneChanged();
@ -2888,7 +2923,7 @@ void FxSchematicZeraryNode::onRenderToggleClicked(bool toggled) {
void FxSchematicZeraryNode::onCameraStandToggleClicked(int state) { void FxSchematicZeraryNode::onCameraStandToggleClicked(int state) {
FxSchematicScene *fxScene = dynamic_cast<FxSchematicScene *>(scene()); FxSchematicScene *fxScene = dynamic_cast<FxSchematicScene *>(scene());
if (!fxScene) return; if (!fxScene) return;
TXshColumn *column = fxScene->getXsheet()->getColumn(m_columnIndex); TXshColumn *column = fxScene->getXsheet()->getColumn(getColumnIndex());
if (column) { if (column) {
column->setCamstandVisible(!column->isCamstandVisible()); column->setCamstandVisible(!column->isCamstandVisible());
// column->setCamstandVisible(toggled); // column->setCamstandVisible(toggled);
@ -2918,10 +2953,10 @@ void FxSchematicZeraryNode::mouseDoubleClickEvent(
QRectF nameArea(0, 0, m_width, 14); QRectF nameArea(0, 0, m_width, 14);
if (nameArea.contains(me->pos()) && me->modifiers() == Qt::ControlModifier) { if (nameArea.contains(me->pos()) && me->modifiers() == Qt::ControlModifier) {
FxSchematicScene *fxScene = dynamic_cast<FxSchematicScene *>(scene()); FxSchematicScene *fxScene = dynamic_cast<FxSchematicScene *>(scene());
TXshColumn *column = fxScene->getXsheet()->getColumn(m_columnIndex); TXshColumn *column = fxScene->getXsheet()->getColumn(getColumnIndex());
TStageObjectId id = TStageObjectId::ColumnId(m_columnIndex); TStageObjectId id = TStageObjectId::ColumnId(getColumnIndex());
std::string name = fxScene->getXsheet()->getStageObject(id)->getName(); std::string name = fxScene->getXsheet()->getStageObject(id)->getName();
/*
if (column) { if (column) {
// ZeraryFx columns store name elsewhere // ZeraryFx columns store name elsewhere
TXshZeraryFxColumn *zColumn = dynamic_cast<TXshZeraryFxColumn *>(column); TXshZeraryFxColumn *zColumn = dynamic_cast<TXshZeraryFxColumn *>(column);
@ -2929,7 +2964,7 @@ void FxSchematicZeraryNode::mouseDoubleClickEvent(
name = name =
::to_string(zColumn->getZeraryColumnFx()->getZeraryFx()->getName()); ::to_string(zColumn->getZeraryColumnFx()->getZeraryFx()->getName());
} }
*/
m_name = QString::fromStdString(name); m_name = QString::fromStdString(name);
m_nameItem->setPlainText(m_name); m_nameItem->setPlainText(m_name);
@ -2969,15 +3004,17 @@ void FxSchematicZeraryNode::onNameChanged() {
if (!fxScene) return; if (!fxScene) return;
TXshZeraryFxColumn *zColumn = dynamic_cast<TXshZeraryFxColumn *>( TXshZeraryFxColumn *zColumn = dynamic_cast<TXshZeraryFxColumn *>(
fxScene->getXsheet()->getColumn(m_columnIndex)); fxScene->getXsheet()->getColumn(getColumnIndex()));
if (zColumn) { if (zColumn) {
TFx *fx = zColumn->getZeraryColumnFx()->getZeraryFx(); TFx *fx = zColumn->getZeraryColumnFx()->getZeraryFx();
setToolTip( setToolTip(
QString("%1 : %2").arg(m_name, QString::fromStdWString(fx->getFxId()))); QString("%1 : %2").arg(m_name, QString::fromStdWString(fx->getFxId())));
} }
TStageObjectId id = TStageObjectId::ColumnId(getColumnIndex());
TFxCommand::renameFx(m_fx.getPointer(), m_name.toStdWString(), TFxCommand::renameFx(m_fx.getPointer(), m_name.toStdWString(),
fxScene->getXsheetHandle()); fxScene->getXsheetHandle());
TStageObjectCmd::rename(id, m_name.toStdString(), fxScene->getXsheetHandle());
updateOutputDockToolTips(m_name); updateOutputDockToolTips(m_name);
emit sceneChanged(); emit sceneChanged();
update(); update();
@ -2995,23 +3032,23 @@ void FxSchematicZeraryNode::resize(bool maximized) {}
FxSchematicColumnNode::FxSchematicColumnNode(FxSchematicScene *scene, FxSchematicColumnNode::FxSchematicColumnNode(FxSchematicScene *scene,
TLevelColumnFx *fx) TLevelColumnFx *fx)
: FxSchematicNode(scene, fx, 90, 32, eColumnFx) : FxSchematicNode(scene, fx, 110, 32, eColumnFx)
, m_isOpened(false) // iwasawa , m_isOpened(false) // iwasawa
{ {
SchematicViewer *viewer = scene->getSchematicViewer(); SchematicViewer *viewer = scene->getSchematicViewer();
if (!m_isNormalIconView) { if (!m_isNormalIconView) {
setWidth(90); setWidth(110);
setHeight(50); setHeight(50);
} }
m_columnIndex = fx->getColumnIndex(); setColumnIndex(fx->getColumnIndex());
TStageObjectId id = TStageObjectId::ColumnId(m_columnIndex); TStageObjectId id = TStageObjectId::ColumnId(getColumnIndex());
std::string name = scene->getXsheet()->getStageObject(id)->getName(); std::string name = scene->getXsheet()->getStageObject(id)->getName();
m_name = QString::fromStdString(name); m_name = QString::fromStdString(name);
m_resizeItem = new SchematicThumbnailToggle( m_resizeItem = new SchematicThumbnailToggle(
this, fx->getAttributes()->isOpened()); //サムネイル矢印 this, fx->getAttributes()->isOpened()); //サムネイル矢印
m_nameItem = new SchematicName(this, 54, 20); //リネーム部分 m_nameItem = new SchematicName(this, 74, 20); //リネーム部分
m_outDock = new FxSchematicDock(this, "", 0, eFxOutputPort); // Outポート m_outDock = new FxSchematicDock(this, "", 0, eFxOutputPort); // Outポート
m_renderToggle = m_renderToggle =
new SchematicToggle(this, viewer->getSchematicPreviewButtonOnImage(), new SchematicToggle(this, viewer->getSchematicPreviewButtonOnImage(),
@ -3045,7 +3082,7 @@ FxSchematicColumnNode::FxSchematicColumnNode(FxSchematicScene *scene,
addPort(0, m_outDock->getPort()); addPort(0, m_outDock->getPort());
m_nameItem->hide(); m_nameItem->hide();
TXshColumn *column = scene->getXsheet()->getColumn(m_columnIndex); TXshColumn *column = scene->getXsheet()->getColumn(getColumnIndex());
if (column) { if (column) {
m_renderToggle->setIsActive(column->isPreviewVisible()); m_renderToggle->setIsActive(column->isPreviewVisible());
m_cameraStandToggle->setState( m_cameraStandToggle->setState(
@ -3059,15 +3096,15 @@ FxSchematicColumnNode::FxSchematicColumnNode(FxSchematicScene *scene,
if (m_isNormalIconView) { if (m_isNormalIconView) {
m_resizeItem->setPos(2, 0); m_resizeItem->setPos(2, 0);
m_nameItem->setPos(16, -1); m_nameItem->setPos(16, -1);
m_outDock->setPos(72, 14); m_outDock->setPos(92, 14);
m_renderToggle->setPos(72, 0); m_renderToggle->setPos(92, 0);
m_cameraStandToggle->setPos(72, 7); m_cameraStandToggle->setPos(92, 7);
} else { } else {
m_resizeItem->hide(); m_resizeItem->hide();
m_nameItem->setPos(0, 0); m_nameItem->setPos(0, 0);
m_outDock->setPos(80, 0); m_outDock->setPos(100, 0);
m_renderToggle->setPos(60, -5); m_renderToggle->setPos(80, -5);
m_cameraStandToggle->setPos(30, -5); m_cameraStandToggle->setPos(50, -5);
} }
m_resizeItem->setZValue(2); m_resizeItem->setZValue(2);
@ -3118,7 +3155,7 @@ void FxSchematicColumnNode::paint(QPainter *painter,
void FxSchematicColumnNode::onRenderToggleClicked(bool toggled) { void FxSchematicColumnNode::onRenderToggleClicked(bool toggled) {
FxSchematicScene *fxScene = dynamic_cast<FxSchematicScene *>(scene()); FxSchematicScene *fxScene = dynamic_cast<FxSchematicScene *>(scene());
if (!fxScene) return; if (!fxScene) return;
TXshColumn *column = fxScene->getXsheet()->getColumn(m_columnIndex); TXshColumn *column = fxScene->getXsheet()->getColumn(getColumnIndex());
if (column) { if (column) {
column->setPreviewVisible(toggled); column->setPreviewVisible(toggled);
emit sceneChanged(); emit sceneChanged();
@ -3131,7 +3168,7 @@ void FxSchematicColumnNode::onRenderToggleClicked(bool toggled) {
void FxSchematicColumnNode::onCameraStandToggleClicked(int state) { void FxSchematicColumnNode::onCameraStandToggleClicked(int state) {
FxSchematicScene *fxScene = dynamic_cast<FxSchematicScene *>(scene()); FxSchematicScene *fxScene = dynamic_cast<FxSchematicScene *>(scene());
if (!fxScene) return; if (!fxScene) return;
TXshColumn *column = fxScene->getXsheet()->getColumn(m_columnIndex); TXshColumn *column = fxScene->getXsheet()->getColumn(getColumnIndex());
if (column) { if (column) {
column->setCamstandVisible(!column->isCamstandVisible()); column->setCamstandVisible(!column->isCamstandVisible());
// column->setCamstandVisible(toggled); // column->setCamstandVisible(toggled);
@ -3146,11 +3183,11 @@ QPixmap FxSchematicColumnNode::getPixmap() {
FxSchematicScene *fxScene = dynamic_cast<FxSchematicScene *>(scene()); FxSchematicScene *fxScene = dynamic_cast<FxSchematicScene *>(scene());
if (!fxScene) return QPixmap(); if (!fxScene) return QPixmap();
TXsheet *xsh = fxScene->getXsheet(); TXsheet *xsh = fxScene->getXsheet();
if (xsh && !xsh->isColumnEmpty(m_columnIndex)) { if (xsh && !xsh->isColumnEmpty(getColumnIndex())) {
int r0, r1; int r0, r1;
xsh->getCellRange(m_columnIndex, r0, r1); xsh->getCellRange(getColumnIndex(), r0, r1);
if (r1 >= r0) { if (r1 >= r0) {
TXshCell cell = xsh->getCell(r0, m_columnIndex); TXshCell cell = xsh->getCell(r0, getColumnIndex());
TXshLevel *xl = cell.m_level.getPointer(); TXshLevel *xl = cell.m_level.getPointer();
if (xl) if (xl)
return IconGenerator::instance()->getIcon(xl, cell.m_frameId, false); return IconGenerator::instance()->getIcon(xl, cell.m_frameId, false);
@ -3171,19 +3208,19 @@ void FxSchematicColumnNode::getLevelTypeAndName(int &ltype,
} }
TXsheet *xsh = fxScene->getXsheet(); TXsheet *xsh = fxScene->getXsheet();
if (xsh && !xsh->isColumnEmpty(m_columnIndex)) { if (xsh && !xsh->isColumnEmpty(getColumnIndex())) {
int r0, r1; int r0, r1;
xsh->getCellRange(m_columnIndex, r0, r1); xsh->getCellRange(getColumnIndex(), r0, r1);
if (r1 >= r0) { if (r1 >= r0) {
TXshCell cell = xsh->getCell(r0, m_columnIndex); TXshCell cell = xsh->getCell(r0, getColumnIndex());
TXshLevel *xl = cell.m_level.getPointer(); TXshLevel *xl = cell.m_level.getPointer();
if (xl) { if (xl) {
ltype = cell.m_level->getType(); ltype = cell.m_level->getType();
// for Zerary Fx, display FxId // for Zerary Fx, display FxId
if (ltype == ZERARYFX_XSHLEVEL) { if (ltype == ZERARYFX_XSHLEVEL) {
TXshZeraryFxColumn *zColumn = TXshZeraryFxColumn *zColumn = dynamic_cast<TXshZeraryFxColumn *>(
dynamic_cast<TXshZeraryFxColumn *>(xsh->getColumn(m_columnIndex)); xsh->getColumn(getColumnIndex()));
if (zColumn) { if (zColumn) {
TFx *fx = zColumn->getZeraryColumnFx()->getZeraryFx(); TFx *fx = zColumn->getZeraryColumnFx()->getZeraryFx();
levelName = QString::fromStdWString(fx->getFxId()); levelName = QString::fromStdWString(fx->getFxId());
@ -3229,7 +3266,7 @@ void FxSchematicColumnNode::onNameChanged() {
setFlag(QGraphicsItem::ItemIsSelectable, true); setFlag(QGraphicsItem::ItemIsSelectable, true);
TStageObjectId id = TStageObjectId::ColumnId(m_columnIndex); TStageObjectId id = TStageObjectId::ColumnId(getColumnIndex());
renameObject(id, m_name.toStdString()); renameObject(id, m_name.toStdString());
updateOutputDockToolTips(m_name); updateOutputDockToolTips(m_name);
emit sceneChanged(); emit sceneChanged();
@ -3248,7 +3285,7 @@ void FxSchematicColumnNode::mouseDoubleClickEvent(
QGraphicsSceneMouseEvent *me) { QGraphicsSceneMouseEvent *me) {
QRectF nameArea(14, 0, m_width - 15, 14); QRectF nameArea(14, 0, m_width - 15, 14);
if (nameArea.contains(me->pos()) && me->modifiers() == Qt::ControlModifier) { if (nameArea.contains(me->pos()) && me->modifiers() == Qt::ControlModifier) {
TStageObjectId id = TStageObjectId::ColumnId(m_columnIndex); TStageObjectId id = TStageObjectId::ColumnId(getColumnIndex());
FxSchematicScene *fxScene = dynamic_cast<FxSchematicScene *>(scene()); FxSchematicScene *fxScene = dynamic_cast<FxSchematicScene *>(scene());
if (!fxScene) return; if (!fxScene) return;
TStageObject *pegbar = fxScene->getXsheet()->getStageObject(id); TStageObject *pegbar = fxScene->getXsheet()->getStageObject(id);
@ -3295,21 +3332,21 @@ void FxSchematicColumnNode::renameObject(const TStageObjectId &id,
FxSchematicPaletteNode::FxSchematicPaletteNode(FxSchematicScene *scene, FxSchematicPaletteNode::FxSchematicPaletteNode(FxSchematicScene *scene,
TPaletteColumnFx *fx) TPaletteColumnFx *fx)
: FxSchematicNode(scene, fx, 90, 32, eColumnFx) { : FxSchematicNode(scene, fx, 110, 32, eColumnFx) {
SchematicViewer *viewer = scene->getSchematicViewer(); SchematicViewer *viewer = scene->getSchematicViewer();
if (!m_isNormalIconView) { if (!m_isNormalIconView) {
setWidth(90); setWidth(110);
setHeight(50); setHeight(50);
} }
m_columnIndex = fx->getColumnIndex(); setColumnIndex(fx->getColumnIndex());
TStageObjectId id = TStageObjectId::ColumnId(m_columnIndex); TStageObjectId id = TStageObjectId::ColumnId(getColumnIndex());
std::string name = scene->getXsheet()->getStageObject(id)->getName(); std::string name = scene->getXsheet()->getStageObject(id)->getName();
m_name = QString::fromStdString(name); m_name = QString::fromStdString(name);
m_linkedNode = 0; m_linkedNode = 0;
m_linkDock = 0; m_linkDock = 0;
m_nameItem = new SchematicName(this, 54, 20); // for rename m_nameItem = new SchematicName(this, 74, 20); // for rename
m_outDock = new FxSchematicDock(this, "", 0, eFxOutputPort); m_outDock = new FxSchematicDock(this, "", 0, eFxOutputPort);
m_renderToggle = m_renderToggle =
new SchematicToggle(this, viewer->getSchematicPreviewButtonOnImage(), new SchematicToggle(this, viewer->getSchematicPreviewButtonOnImage(),
@ -3328,22 +3365,22 @@ FxSchematicPaletteNode::FxSchematicPaletteNode(FxSchematicScene *scene,
addPort(0, m_outDock->getPort()); addPort(0, m_outDock->getPort());
TXshColumn *column = scene->getXsheet()->getColumn(m_columnIndex); TXshColumn *column = scene->getXsheet()->getColumn(getColumnIndex());
if (column) m_renderToggle->setIsActive(column->isPreviewVisible()); if (column) m_renderToggle->setIsActive(column->isPreviewVisible());
// set geometry // set geometry
if (m_isNormalIconView) { if (m_isNormalIconView) {
m_nameItem->setPos(19, -1); m_nameItem->setPos(19, -1);
m_outDock->setPos(72, 14); m_outDock->setPos(92, 14);
m_renderToggle->setPos(72, 0); m_renderToggle->setPos(92, 0);
} else { } else {
QFont fnt = m_nameItem->font(); QFont fnt = m_nameItem->font();
fnt.setPixelSize(fnt.pixelSize() * 2); fnt.setPixelSize(fnt.pixelSize() * 2);
m_nameItem->setFont(fnt); m_nameItem->setFont(fnt);
m_nameItem->setPos(-1, 0); m_nameItem->setPos(-1, 0);
m_outDock->setPos(80, 0); m_outDock->setPos(100, 0);
m_renderToggle->setPos(60, -5); m_renderToggle->setPos(80, -5);
} }
m_nameItem->setZValue(2); m_nameItem->setZValue(2);
@ -3369,11 +3406,11 @@ QString FxSchematicPaletteNode::getPaletteName() {
} }
TXsheet *xsh = fxScene->getXsheet(); TXsheet *xsh = fxScene->getXsheet();
if (xsh && !xsh->isColumnEmpty(m_columnIndex)) { if (xsh && !xsh->isColumnEmpty(getColumnIndex())) {
int r0, r1; int r0, r1;
xsh->getCellRange(m_columnIndex, r0, r1); xsh->getCellRange(getColumnIndex(), r0, r1);
if (r1 >= r0) { if (r1 >= r0) {
TXshCell cell = xsh->getCell(r0, m_columnIndex); TXshCell cell = xsh->getCell(r0, getColumnIndex());
TXshLevel *xl = cell.m_level.getPointer(); TXshLevel *xl = cell.m_level.getPointer();
if (xl) { if (xl) {
return QString::fromStdWString(xl->getName()); return QString::fromStdWString(xl->getName());
@ -3407,7 +3444,7 @@ void FxSchematicPaletteNode::paint(QPainter *painter,
void FxSchematicPaletteNode::onRenderToggleClicked(bool toggled) { void FxSchematicPaletteNode::onRenderToggleClicked(bool toggled) {
FxSchematicScene *fxScene = dynamic_cast<FxSchematicScene *>(scene()); FxSchematicScene *fxScene = dynamic_cast<FxSchematicScene *>(scene());
if (!fxScene) return; if (!fxScene) return;
TXshColumn *column = fxScene->getXsheet()->getColumn(m_columnIndex); TXshColumn *column = fxScene->getXsheet()->getColumn(getColumnIndex());
if (column) { if (column) {
column->setPreviewVisible(toggled); column->setPreviewVisible(toggled);
emit sceneChanged(); emit sceneChanged();
@ -3429,7 +3466,7 @@ void FxSchematicPaletteNode::onNameChanged() {
setToolTip(QString("%1 : %2").arg(m_name, paletteName)); setToolTip(QString("%1 : %2").arg(m_name, paletteName));
setFlag(QGraphicsItem::ItemIsSelectable, true); setFlag(QGraphicsItem::ItemIsSelectable, true);
TStageObjectId id = TStageObjectId::ColumnId(m_columnIndex); TStageObjectId id = TStageObjectId::ColumnId(getColumnIndex());
renameObject(id, m_name.toStdString()); renameObject(id, m_name.toStdString());
updateOutputDockToolTips(m_name); updateOutputDockToolTips(m_name);
emit sceneChanged(); emit sceneChanged();

View file

@ -1205,6 +1205,7 @@ void FxSchematicScene::onSelectionChanged() {
void FxSchematicScene::reorderScene() { void FxSchematicScene::reorderScene() {
int step = m_gridDimension == eLarge ? 100 : 50; int step = m_gridDimension == eLarge ? 100 : 50;
if (!m_isNormalIconView) step += 10;
m_placedFxs.clear(); m_placedFxs.clear();
QPointF sceneCenter = sceneRect().center(); QPointF sceneCenter = sceneRect().center();
double minY = sceneCenter.y(); double minY = sceneCenter.y();
@ -1297,7 +1298,7 @@ void FxSchematicScene::reorderScene() {
TFx *fx = fxSet->getFx(i); TFx *fx = fxSet->getFx(i);
if (m_placedFxs.contains(fx)) continue; if (m_placedFxs.contains(fx)) continue;
placeNodeAndParents(fx, (sceneCenter.x() + 120), maxX, minY); placeNodeAndParents(fx, (sceneCenter.x() + 140), maxX, minY);
y -= step; y -= step;
minY = std::min(y, minY); minY = std::min(y, minY);
} }
@ -1315,8 +1316,8 @@ void FxSchematicScene::removeRetroLinks(TFx *fx, double &maxX) {
TPointD fxPos = fx->getAttributes()->getDagNodePos(); TPointD fxPos = fx->getAttributes()->getDagNodePos();
if (inFxPos != TConst::nowhere && fxPos != TConst::nowhere && if (inFxPos != TConst::nowhere && fxPos != TConst::nowhere &&
fxPos.x <= inFxPos.x) { fxPos.x <= inFxPos.x) {
while (fxPos.x <= inFxPos.x) fxPos.x += 150; while (fxPos.x <= inFxPos.x) fxPos.x += 170;
maxX = std::max(fxPos.x + 150, maxX); maxX = std::max(fxPos.x + 170, maxX);
fx->getAttributes()->setDagNodePos(fxPos); fx->getAttributes()->setDagNodePos(fxPos);
for (int j = 0; j < fx->getOutputConnectionCount(); j++) { for (int j = 0; j < fx->getOutputConnectionCount(); j++) {
TFx *outFx = fx->getOutputConnection(j)->getOwnerFx(); TFx *outFx = fx->getOutputConnection(j)->getOwnerFx();
@ -1331,6 +1332,7 @@ void FxSchematicScene::removeRetroLinks(TFx *fx, double &maxX) {
void FxSchematicScene::placeNodeAndParents(TFx *fx, double x, double &maxX, void FxSchematicScene::placeNodeAndParents(TFx *fx, double x, double &maxX,
double &minY) { double &minY) {
int step = m_gridDimension == eLarge ? 100 : 50; int step = m_gridDimension == eLarge ? 100 : 50;
if (!m_isNormalIconView) step += 10;
if (!fx) return; if (!fx) return;
m_placedFxs.append(fx); m_placedFxs.append(fx);
if (fx->getFxType() == "STD_particlesFx" || if (fx->getFxType() == "STD_particlesFx" ||
@ -1364,7 +1366,7 @@ void FxSchematicScene::placeNodeAndParents(TFx *fx, double x, double &maxX,
} else } else
fx->getAttributes()->setDagNodePos(TPointD(x, y)); fx->getAttributes()->setDagNodePos(TPointD(x, y));
if (fx->getOutputConnectionCount() == 0) minY -= step; if (fx->getOutputConnectionCount() == 0) minY -= step;
x += 120; x += 140;
maxX = std::max(maxX, x); maxX = std::max(maxX, x);
int i; int i;
for (i = 0; i < fx->getOutputConnectionCount(); i++) { for (i = 0; i < fx->getOutputConnectionCount(); i++) {

View file

@ -180,18 +180,30 @@ void ColumnPainter::paint(QPainter *painter,
dynamic_cast<StageSchematicScene *>(scene()); dynamic_cast<StageSchematicScene *>(scene());
if (!stageScene) return; if (!stageScene) return;
bool showColumnNumber =
Preferences::instance()->isShowColumnNumbersEnabled();
int rectAdj = 0;
if (showColumnNumber) rectAdj = -20;
// if this is current object // if this is current object
if (stageScene->getCurrentObject() == m_parent->getStageObject()->getId()) if (stageScene->getCurrentObject() == m_parent->getStageObject()->getId())
painter->setPen(viewer->getSelectedNodeTextColor()); painter->setPen(viewer->getSelectedNodeTextColor());
QRectF columnNameRect(18, 2, 54, 14); QRectF columnNameRect(18, 2, 74 + rectAdj, 14);
QString elidedName = QString elidedName =
elideText(m_name, painter->font(), columnNameRect.width()); elideText(m_name, painter->font(), columnNameRect.width());
painter->drawText(columnNameRect, Qt::AlignLeft | Qt::AlignVCenter, painter->drawText(columnNameRect, Qt::AlignLeft | Qt::AlignVCenter,
elidedName); elidedName);
// column number
if (showColumnNumber) {
QString colNumber = QString::number(m_parent->getColumnNumber());
QRectF colNumberRect(72, 2, 20, 14);
painter->drawText(colNumberRect, Qt::AlignCenter, colNumber);
}
} }
// level names // level names
QRectF levelNameRect(18, 16, 54, 14); QRectF levelNameRect(18, 16, 74, 14);
QString elidedName = QString elidedName =
elideText(levelName, painter->font(), levelNameRect.width()); elideText(levelName, painter->font(), levelNameRect.width());
painter->drawText(levelNameRect, Qt::AlignLeft | Qt::AlignVCenter, painter->drawText(levelNameRect, Qt::AlignLeft | Qt::AlignVCenter,
@ -1698,7 +1710,7 @@ void StageSchematicTableNode::paint(QPainter *painter,
StageSchematicColumnNode::StageSchematicColumnNode(StageSchematicScene *scene, StageSchematicColumnNode::StageSchematicColumnNode(StageSchematicScene *scene,
TStageObject *pegbar) TStageObject *pegbar)
: StageSchematicNode(scene, pegbar, 90, 32), m_isOpened(true) { : StageSchematicNode(scene, pegbar, 110, 32), m_isOpened(true) {
bool ret = true; bool ret = true;
assert(pegbar && pegbar->getId().isColumn()); assert(pegbar && pegbar->getId().isColumn());
@ -1709,7 +1721,7 @@ StageSchematicColumnNode::StageSchematicColumnNode(StageSchematicScene *scene,
scene->getXsheet()->getColumn(pegbar->getId().getIndex()); scene->getXsheet()->getColumn(pegbar->getId().getIndex());
std::string name = m_stageObject->getName(); std::string name = m_stageObject->getName();
/*
if (column) { if (column) {
// ZeraryFx columns store name elsewhere // ZeraryFx columns store name elsewhere
TXshZeraryFxColumn *zColumn = dynamic_cast<TXshZeraryFxColumn *>(column); TXshZeraryFxColumn *zColumn = dynamic_cast<TXshZeraryFxColumn *>(column);
@ -1717,7 +1729,7 @@ StageSchematicColumnNode::StageSchematicColumnNode(StageSchematicScene *scene,
name = name =
::to_string(zColumn->getZeraryColumnFx()->getZeraryFx()->getName()); ::to_string(zColumn->getZeraryColumnFx()->getZeraryFx()->getName());
} }
*/
m_name = QString::fromStdString(name); m_name = QString::fromStdString(name);
m_resizeItem = new SchematicThumbnailToggle(this, m_stageObject->isOpened()); m_resizeItem = new SchematicThumbnailToggle(this, m_stageObject->isOpened());
m_resizeItem->setPos(2, 0); m_resizeItem->setPos(2, 0);
@ -1725,7 +1737,7 @@ StageSchematicColumnNode::StageSchematicColumnNode(StageSchematicScene *scene,
ret = ret && connect(m_resizeItem, SIGNAL(toggled(bool)), this, ret = ret && connect(m_resizeItem, SIGNAL(toggled(bool)), this,
SLOT(onChangedSize(bool))); SLOT(onChangedSize(bool)));
m_nameItem = new SchematicName(this, 54, 20); m_nameItem = new SchematicName(this, 74, 20);
m_nameItem->setDefaultTextColor(viewer->getTextColor()); m_nameItem->setDefaultTextColor(viewer->getTextColor());
m_nameItem->setName(m_name); m_nameItem->setName(m_name);
m_nameItem->setPos(16, -1); m_nameItem->setPos(16, -1);
@ -1745,7 +1757,7 @@ StageSchematicColumnNode::StageSchematicColumnNode(StageSchematicScene *scene,
if (scene) { if (scene) {
if (column) m_renderToggle->setIsActive(column->isPreviewVisible()); if (column) m_renderToggle->setIsActive(column->isPreviewVisible());
m_renderToggle->setPos(72, 0); m_renderToggle->setPos(92, 0);
m_renderToggle->setZValue(2); m_renderToggle->setZValue(2);
m_cameraStandToggle = new SchematicToggle( m_cameraStandToggle = new SchematicToggle(
@ -1762,7 +1774,7 @@ StageSchematicColumnNode::StageSchematicColumnNode(StageSchematicScene *scene,
? (column->getOpacity() < 255 ? 2 : 1) ? (column->getOpacity() < 255 ? 2 : 1)
: 0); : 0);
m_cameraStandToggle->setPos(72, 7); m_cameraStandToggle->setPos(92, 7);
m_cameraStandToggle->setZValue(2); m_cameraStandToggle->setZValue(2);
} }
@ -1811,21 +1823,6 @@ void StageSchematicColumnNode::paint(QPainter *painter,
const QStyleOptionGraphicsItem *option, const QStyleOptionGraphicsItem *option,
QWidget *widget) { QWidget *widget) {
StageSchematicNode::paint(painter, option, widget); StageSchematicNode::paint(painter, option, widget);
TStageObjectId id = m_stageObject->getId();
assert(id.isColumn());
QString colNumber = QString::number(id.getIndex() + 1);
QFont font("Verdana", 8);
painter->setFont(font);
StageSchematicScene *scene = dynamic_cast<StageSchematicScene *>(m_scene);
SchematicViewer *viewer = scene->getSchematicViewer();
if (scene && scene->getCurrentObject() == id)
painter->setPen(viewer->getSelectedNodeTextColor());
QFontMetrics metrix(font);
int srcWidth = metrix.width(colNumber);
int srcHeight = metrix.height();
QPointF pos(m_cameraStandToggle->pos() -
QPointF(srcWidth + 1, -srcHeight + 3));
painter->drawText(pos, colNumber);
} }
//-------------------------------------------------------- //--------------------------------------------------------
@ -1906,6 +1903,14 @@ void StageSchematicColumnNode::getLevelTypeAndName(int &ltype,
levelName = QString(); levelName = QString();
return; return;
} }
//--------------------------------------------------------
int StageSchematicColumnNode::getColumnNumber() {
TStageObjectId id = m_stageObject->getId();
return id.getIndex() + 1;
}
//-------------------------------------------------------- //--------------------------------------------------------
void StageSchematicColumnNode::onChangedSize(bool expand) { void StageSchematicColumnNode::onChangedSize(bool expand) {
@ -1940,13 +1945,14 @@ void StageSchematicColumnNode::mouseDoubleClickEvent(
TStageObjectId id = m_stageObject->getId(); TStageObjectId id = m_stageObject->getId();
TXshColumn *column = stageScene->getXsheet()->getColumn(id.getIndex()); TXshColumn *column = stageScene->getXsheet()->getColumn(id.getIndex());
/*
if (column) { if (column) {
TXshZeraryFxColumn *fxColumn = dynamic_cast<TXshZeraryFxColumn *>(column); TXshZeraryFxColumn *fxColumn = dynamic_cast<TXshZeraryFxColumn *>(column);
if (fxColumn) if (fxColumn)
name = ::to_string( name = ::to_string(
fxColumn->getZeraryColumnFx()->getZeraryFx()->getName()); fxColumn->getZeraryColumnFx()->getZeraryFx()->getName());
} }
*/
m_name = QString::fromStdString(name); m_name = QString::fromStdString(name);
m_nameItem->setPlainText(m_name); m_nameItem->setPlainText(m_name);
m_nameItem->show(); m_nameItem->show();
@ -1979,11 +1985,9 @@ void StageSchematicColumnNode::onNameChanged() {
if (fxColumn) if (fxColumn)
TFxCommand::renameFx(fxColumn->getZeraryColumnFx(), m_name.toStdWString(), TFxCommand::renameFx(fxColumn->getZeraryColumnFx(), m_name.toStdWString(),
stageScene->getXsheetHandle()); stageScene->getXsheetHandle());
else { TStageObjectCmd::rename(id, m_name.toStdString(),
TStageObjectCmd::rename(id, m_name.toStdString(), stageScene->getXsheetHandle());
stageScene->getXsheetHandle()); update();
update();
}
} }
//-------------------------------------------------------- //--------------------------------------------------------

View file

@ -727,7 +727,7 @@ void StageSchematicScene::placeNodes() {
for (i = 0; i < pegTree->getSplineCount(); i++) { for (i = 0; i < pegTree->getSplineCount(); i++) {
TStageObjectSpline *spline = pegTree->getSpline(i); TStageObjectSpline *spline = pegTree->getSpline(i);
spline->setDagNodePos(TPointD(maxXPos, yFirstPos + step)); spline->setDagNodePos(TPointD(maxXPos, yFirstPos + step));
maxXPos += (m_showLetterOnPortFlag) ? 150 : 120; maxXPos += (m_showLetterOnPortFlag) ? 170 : 140;
} }
// delete the tree // delete the tree
@ -783,7 +783,7 @@ void StageSchematicScene::makeTree(TreeStageNode *treeNode) {
void StageSchematicScene::placeChildren(TreeStageNode *treeNode, double &xPos, void StageSchematicScene::placeChildren(TreeStageNode *treeNode, double &xPos,
double &yPos, bool isCameraTree) { double &yPos, bool isCameraTree) {
int i; int i;
xPos += (m_showLetterOnPortFlag) ? 150 : 120; xPos += (m_showLetterOnPortFlag) ? 170 : 140;
double xChildPos = xPos; double xChildPos = xPos;
double xRefPos = xPos; double xRefPos = xPos;
bool firstChild = true; bool firstChild = true;
@ -815,7 +815,7 @@ void StageSchematicScene::placeNode(StageSchematicNode *node) {
double xPos = xFirstPos; double xPos = xFirstPos;
double yPos = yFirstPos; double yPos = yFirstPos;
int step = m_gridDimension == eLarge ? 100 : 50; int step = m_gridDimension == eLarge ? 100 : 50;
int hStep = (m_showLetterOnPortFlag) ? 150 : 120; int hStep = (m_showLetterOnPortFlag) ? 170 : 140;
TStageObjectTree *pegTree = m_xshHandle->getXsheet()->getStageObjectTree(); TStageObjectTree *pegTree = m_xshHandle->getXsheet()->getStageObjectTree();
QRectF nodeRect = node->boundingRect(); QRectF nodeRect = node->boundingRect();
@ -923,7 +923,7 @@ void StageSchematicScene::placeSplineNode(
StageSchematicSplineNode *splineNode) { StageSchematicSplineNode *splineNode) {
double xFirstPos = m_firstPos.x - 500; double xFirstPos = m_firstPos.x - 500;
double yFirstPos = m_firstPos.y + 500; double yFirstPos = m_firstPos.y + 500;
int hStep = (m_showLetterOnPortFlag) ? 150 : 120; int hStep = (m_showLetterOnPortFlag) ? 170 : 140;
double xPos = xFirstPos + (hStep * 2); double xPos = xFirstPos + (hStep * 2);
int step = m_gridDimension == eLarge ? 100 : 50; int step = m_gridDimension == eLarge ? 100 : 50;
double yPos = yFirstPos + step; double yPos = yFirstPos + step;