highlight xsheet line every second
This commit is contained in:
parent
b45e7ac54a
commit
e1d56eec48
13 changed files with 118 additions and 133 deletions
|
@ -133,6 +133,7 @@ enum PreferencesItemId {
|
|||
expandFunctionHeader,
|
||||
showColumnNumbers,
|
||||
parentColorsInXsheetColumn,
|
||||
highlightLineEverySecond,
|
||||
syncLevelRenumberWithXsheet,
|
||||
currentTimelineEnabled,
|
||||
currentColumnColor,
|
||||
|
|
|
@ -190,10 +190,8 @@ Set the distance between two markers to \p distance and \b offset to markers
|
|||
offset,
|
||||
\sa setMarkers()
|
||||
*/
|
||||
void getMarkers(int &distance, int &offset) const {
|
||||
distance = m_markerDistance;
|
||||
offset = m_markerOffset;
|
||||
}
|
||||
void getMarkers(int &distance, int &offset, int &secDistance) const;
|
||||
|
||||
/*!
|
||||
Sets information about xsheet markers, xsheet horizontal line.
|
||||
Sets the distance between two markers to \p distance and \b offset,row
|
||||
|
@ -202,6 +200,7 @@ of first
|
|||
\sa getMarkers()
|
||||
*/
|
||||
void setMarkers(int distance, int offset);
|
||||
|
||||
/*!
|
||||
Returns full-color images subsampling in scene. Subsampling value is
|
||||
the simplifying
|
||||
|
|
|
@ -312,7 +312,7 @@ class DVAPI SpreadsheetViewer : public QDialog {
|
|||
QPoint m_lastAutoPanPos;
|
||||
int m_rowCount, m_columnCount;
|
||||
int m_currentRow;
|
||||
int m_markRowDistance, m_markRowOffset;
|
||||
int m_markRowDistance, m_markRowOffset, m_markSecRowDistance;
|
||||
// QRect m_selectedCells; // x=col, y=row
|
||||
bool m_isComputingSize;
|
||||
// const Orientation *m_orientation;
|
||||
|
@ -456,17 +456,22 @@ public:
|
|||
bool isSelectedCell(int row, int col) const {
|
||||
return getSelectedCells().contains(QPoint(col, row));
|
||||
}
|
||||
void setMarkRow(int distance, int offset) {
|
||||
m_markRowDistance = distance; // distance > 0 ? distance : 6;
|
||||
m_markRowOffset = offset;
|
||||
void setMarkRow(int distance, int offset, int secDistance) {
|
||||
m_markRowDistance = distance; // distance > 0 ? distance : 6;
|
||||
m_markRowOffset = offset;
|
||||
m_markSecRowDistance = secDistance;
|
||||
}
|
||||
void getMarkRow(int &distance, int &offset) const {
|
||||
distance = m_markRowDistance;
|
||||
offset = m_markRowOffset;
|
||||
}
|
||||
int isMarkRow(int row) const {
|
||||
bool isMarkRow(int row) const {
|
||||
return m_markRowDistance > 0 &&
|
||||
((row - m_markRowOffset) % m_markRowDistance) == 0;
|
||||
((row - m_markRowOffset) % m_markRowDistance) == 0 && row > 0;
|
||||
}
|
||||
bool isMarkSecRow(int row) const {
|
||||
return m_markSecRowDistance > 0 &&
|
||||
((row - m_markRowOffset) % m_markSecRowDistance) == 0 && row > 0;
|
||||
}
|
||||
|
||||
void setFrameHandle(TFrameHandle *frameHandle);
|
||||
|
|
|
@ -1301,6 +1301,7 @@ QString PreferencesPopup::getUIString(PreferencesItemId id) {
|
|||
{showColumnNumbers, tr("Show Column Numbers in Column Headers")},
|
||||
{parentColorsInXsheetColumn,
|
||||
tr("Show Column Parent's Color in the Xsheet")},
|
||||
{highlightLineEverySecond, tr("Highlight Line Every Second")},
|
||||
{syncLevelRenumberWithXsheet,
|
||||
tr("Sync Level Strip Drawing Number Changes with the Scene")},
|
||||
{currentTimelineEnabled,
|
||||
|
@ -2007,6 +2008,7 @@ QWidget* PreferencesPopup::createXsheetPage() {
|
|||
{ insertUI(expandFunctionHeader, xshToolbarLay); }
|
||||
insertUI(showColumnNumbers, lay);
|
||||
insertUI(parentColorsInXsheetColumn, lay);
|
||||
insertUI(highlightLineEverySecond, lay);
|
||||
// insertUI(syncLevelRenumberWithXsheet, lay);
|
||||
// insertUI(currentTimelineEnabled, lay);
|
||||
// insertUI(currentColumnColor, lay);
|
||||
|
|
|
@ -270,8 +270,8 @@ SceneSettingsPopup::SceneSettingsPopup()
|
|||
m_tlvSubsamplingFld = new DVGui::IntLineEdit(this, tlvSubsampling, 1);
|
||||
|
||||
// Marker Interval - Start Frame
|
||||
int distance, offset;
|
||||
sprop->getMarkers(distance, offset);
|
||||
int distance, offset, secDistance;
|
||||
sprop->getMarkers(distance, offset, secDistance);
|
||||
m_markerIntervalFld = new DVGui::IntLineEdit(this, distance, 0);
|
||||
m_startFrameFld = new DVGui::IntLineEdit(this, offset);
|
||||
|
||||
|
@ -294,7 +294,8 @@ SceneSettingsPopup::SceneSettingsPopup()
|
|||
// Frame Rate
|
||||
mainLayout->addWidget(new QLabel(tr("Frame Rate:"), this), 0, 0,
|
||||
Qt::AlignRight | Qt::AlignVCenter);
|
||||
mainLayout->addWidget(m_frameRateFld, 0, 1);
|
||||
mainLayout->addWidget(m_frameRateFld, 0, 1, 1, 4,
|
||||
Qt::AlignLeft | Qt::AlignVCenter);
|
||||
// Camera BG color
|
||||
mainLayout->addWidget(new QLabel(tr("Camera BG Color:"), this), 1, 0,
|
||||
Qt::AlignRight | Qt::AlignVCenter);
|
||||
|
@ -305,7 +306,8 @@ SceneSettingsPopup::SceneSettingsPopup()
|
|||
mainLayout->addWidget(m_fieldGuideFld, 2, 1);
|
||||
mainLayout->addWidget(new QLabel(tr("A/R:"), this), 2, 2,
|
||||
Qt::AlignRight | Qt::AlignVCenter);
|
||||
mainLayout->addWidget(m_aspectRatioFld, 2, 3);
|
||||
mainLayout->addWidget(m_aspectRatioFld, 2, 3, 1, 2,
|
||||
Qt::AlignLeft | Qt::AlignVCenter);
|
||||
// Image Subsampling - Tlv Subsampling
|
||||
mainLayout->addWidget(new QLabel(tr("Image Subsampling:"), this), 3, 0,
|
||||
Qt::AlignRight | Qt::AlignVCenter);
|
||||
|
@ -362,9 +364,10 @@ SceneSettingsPopup::SceneSettingsPopup()
|
|||
SLOT(onTlvSubsampEditingFinished()));
|
||||
// Marker Interval - Start Frame
|
||||
ret = ret && connect(m_markerIntervalFld, SIGNAL(editingFinished()), this,
|
||||
SLOT(onMakerIntervalEditingFinished()));
|
||||
SLOT(onMakerInformationChanged()));
|
||||
ret = ret && connect(m_startFrameFld, SIGNAL(editingFinished()), this,
|
||||
SLOT(onStartFrameEditingFinished()));
|
||||
SLOT(onMakerInformationChanged()));
|
||||
|
||||
// Use Color Filter and Transparency for Rendering
|
||||
ret = ret && connect(m_colorFilterOnRenderCB, SIGNAL(stateChanged(int)), this,
|
||||
SLOT(onColorFilterOnRenderChanged()));
|
||||
|
@ -418,8 +421,8 @@ void SceneSettingsPopup::update() {
|
|||
m_fullcolorSubsamplingFld->setValue(sprop->getFullcolorSubsampling());
|
||||
if (m_tlvSubsamplingFld)
|
||||
m_tlvSubsamplingFld->setValue(sprop->getTlvSubsampling());
|
||||
int markerDistance = 0, markerOffset = 0;
|
||||
sprop->getMarkers(markerDistance, markerOffset);
|
||||
int markerDistance = 0, markerOffset = 0, secDistance;
|
||||
sprop->getMarkers(markerDistance, markerOffset, secDistance);
|
||||
m_markerIntervalFld->setValue(markerDistance);
|
||||
m_startFrameFld->setValue(markerOffset + 1);
|
||||
m_colorFilterOnRenderCB->setChecked(
|
||||
|
@ -494,29 +497,13 @@ void SceneSettingsPopup::onTlvSubsampEditingFinished() {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
void SceneSettingsPopup::onMakerIntervalEditingFinished() {
|
||||
void SceneSettingsPopup::onMakerInformationChanged() {
|
||||
TSceneProperties *sprop = getProperties();
|
||||
int distance, offset;
|
||||
sprop->getMarkers(distance, offset);
|
||||
int distance, offset, secDistance;
|
||||
sprop->getMarkers(distance, offset, secDistance);
|
||||
int markerDistance = m_markerIntervalFld->text().toInt();
|
||||
int markerOffset = m_startFrameFld->text().toInt() - 1;
|
||||
assert(offset == markerOffset);
|
||||
if (distance == markerDistance) return;
|
||||
sprop->setMarkers(markerDistance, markerOffset);
|
||||
TApp::instance()->getCurrentScene()->notifySceneChanged();
|
||||
TApp::instance()->getCurrentXsheet()->notifyXsheetChanged();
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
void SceneSettingsPopup::onStartFrameEditingFinished() {
|
||||
TSceneProperties *sprop = getProperties();
|
||||
int distance, offset;
|
||||
sprop->getMarkers(distance, offset);
|
||||
int markerDistance = m_markerIntervalFld->text().toInt();
|
||||
int markerOffset = m_startFrameFld->text().toInt() - 1;
|
||||
assert(markerDistance == distance);
|
||||
if (offset == markerOffset) return;
|
||||
if (distance == markerDistance && offset == markerOffset) return;
|
||||
sprop->setMarkers(markerDistance, markerOffset);
|
||||
TApp::instance()->getCurrentScene()->notifySceneChanged();
|
||||
TApp::instance()->getCurrentXsheet()->notifyXsheetChanged();
|
||||
|
|
|
@ -76,8 +76,7 @@ public slots:
|
|||
|
||||
void onFullColorSubsampEditingFinished();
|
||||
void onTlvSubsampEditingFinished();
|
||||
void onMakerIntervalEditingFinished();
|
||||
void onStartFrameEditingFinished();
|
||||
void onMakerInformationChanged();
|
||||
|
||||
void setBgColor(const TPixel32 &value, bool isDragging);
|
||||
|
||||
|
|
|
@ -1256,32 +1256,42 @@ void CellArea::drawFrameSeparator(QPainter &p, int row, int col,
|
|||
layerAxisRange = NumberRange(layerAxis + 1, layerAxis + adjY);
|
||||
}
|
||||
|
||||
// mark interval every 6 frames
|
||||
int distance, offset;
|
||||
// mark interval
|
||||
int distance, offset, secDistance;
|
||||
TApp::instance()->getCurrentScene()->getScene()->getProperties()->getMarkers(
|
||||
distance, offset);
|
||||
// if (distance == 0) distance = 6;
|
||||
distance, offset, secDistance);
|
||||
|
||||
bool isAfterMarkers =
|
||||
distance > 0 && ((row - offset) % distance) == 0 && row != 0;
|
||||
QColor color = isAfterMarkers ? m_viewer->getMarkerLineColor()
|
||||
: m_viewer->getLightLineColor();
|
||||
color.setAlpha(isAfterMarkers ? m_viewer->getMarkerLineColor().alpha()
|
||||
: m_viewer->getLightLineColor().alpha());
|
||||
bool isAfterSecMarkers =
|
||||
secDistance > 0 && ((row - offset) % secDistance) == 0 && row != 0;
|
||||
|
||||
QColor color = (isAfterMarkers || isAfterSecMarkers)
|
||||
? m_viewer->getMarkerLineColor()
|
||||
: m_viewer->getLightLineColor();
|
||||
double lineWidth = (isAfterSecMarkers) ? 3. : 1.;
|
||||
|
||||
int frameAxis = m_viewer->rowToFrameAxis(row);
|
||||
int handleSize =
|
||||
(emptyFrame)
|
||||
? 0
|
||||
: (o->isVerticalTimeline())
|
||||
? (isAfterMarkers || isAfterSecMarkers)
|
||||
? 0
|
||||
: -1 // o->rect(PredefinedRect::DRAG_HANDLE_CORNER).width()
|
||||
: -1; // o->rect(PredefinedRect::DRAG_HANDLE_CORNER).height();
|
||||
|
||||
int frameAxis = m_viewer->rowToFrameAxis(row);
|
||||
QLine horizontalLine = m_viewer->orientation()->horizontalLine(
|
||||
frameAxis,
|
||||
layerAxisRange.adjusted((o->isVerticalTimeline() ? 0 : -1), 0));
|
||||
frameAxis, layerAxisRange.adjusted(handleSize - 1, 1));
|
||||
if (heldFrame) {
|
||||
int x = horizontalLine.x1();
|
||||
int y = horizontalLine.y2() - 1;
|
||||
int y = horizontalLine.y2() - 2;
|
||||
horizontalLine.setP1(QPoint(x, y));
|
||||
color.setAlpha(120);
|
||||
} else if (!o->isVerticalTimeline() && !isAfterMarkers && emptyFrame)
|
||||
color.setAlpha(isAfterMarkers ? m_viewer->getMarkerLineColor().alpha()
|
||||
: m_viewer->getLightLineColor().alpha());
|
||||
p.setPen(color);
|
||||
color.setAlpha(m_viewer->getLightLineColor().alpha());
|
||||
|
||||
p.setPen(QPen(color, lineWidth, Qt::SolidLine, Qt::FlatCap));
|
||||
p.drawLine(horizontalLine);
|
||||
}
|
||||
|
||||
|
@ -1535,10 +1545,9 @@ void CellArea::drawExtenderHandles(QPainter &p) {
|
|||
? QPoint(0, 0)
|
||||
: o->point(PredefinedPoint::KEY_HIDDEN);
|
||||
|
||||
int distance, offset;
|
||||
int distance, offset, secDistance;
|
||||
TApp::instance()->getCurrentScene()->getScene()->getProperties()->getMarkers(
|
||||
distance, offset);
|
||||
// if (distance == 0) distance = 6;
|
||||
distance, offset, secDistance);
|
||||
|
||||
QPoint xyRadius = o->point(PredefinedPoint::EXTENDER_XY_RADIUS);
|
||||
|
||||
|
@ -1629,6 +1638,8 @@ void CellArea::drawSoundCell(QPainter &p, int row, int col, bool isReference) {
|
|||
if (!soundColumn->getLevelRange(row, r0, r1)) {
|
||||
// cell mark
|
||||
drawCellMarker(p, markId, rect, true, isNextEmpty);
|
||||
if (o->isVerticalTimeline() || !row) drawFrameSeparator(p, row, col, false);
|
||||
|
||||
return;
|
||||
}
|
||||
bool isFirstRow = (row > 0 && row == r0);
|
||||
|
@ -1762,19 +1773,6 @@ void CellArea::drawSoundCell(QPainter &p, int row, int col, bool isReference) {
|
|||
if (r1 != r1WithoutOff) p.fillRect(modifierRect, SoundColumnExtenderColor);
|
||||
m_soundLevelModifyRects.append(modifierRect);
|
||||
}
|
||||
|
||||
int distance, markerOffset;
|
||||
TApp::instance()->getCurrentScene()->getScene()->getProperties()->getMarkers(
|
||||
distance, markerOffset);
|
||||
// if (distance == 0) distance = 6;
|
||||
bool isAfterMarkers =
|
||||
distance > 0 && ((row - markerOffset) % distance) == 0 && row != 0;
|
||||
|
||||
// draw marker interval
|
||||
if (o->isVerticalTimeline() && isAfterMarkers) {
|
||||
p.setPen(m_viewer->getMarkerLineColor());
|
||||
p.drawLine(o->line(PredefinedLine::SEE_MARKER_THROUGH).translated(xy));
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@ -2211,18 +2209,6 @@ void CellArea::drawLevelCell(QPainter &p, int row, int col, bool isReference,
|
|||
cellColor);
|
||||
}
|
||||
|
||||
int distance, offset;
|
||||
TApp::instance()->getCurrentScene()->getScene()->getProperties()->getMarkers(
|
||||
distance, offset);
|
||||
// if (distance == 0) distance = 6;
|
||||
bool isAfterMarkers =
|
||||
distance > 0 && ((row - offset) % distance) == 0 && row != 0;
|
||||
|
||||
// draw marker interval
|
||||
if (o->isVerticalTimeline() && isAfterMarkers) {
|
||||
p.setPen(m_viewer->getMarkerLineColor());
|
||||
p.drawLine(o->line(PredefinedLine::SEE_MARKER_THROUGH).translated(xy));
|
||||
}
|
||||
|
||||
QRect nameRect = o->rect(PredefinedRect::CELL_NAME).translated(QPoint(x, y));
|
||||
|
||||
|
@ -2327,6 +2313,12 @@ void CellArea::drawLevelCell(QPainter &p, int row, int col, bool isReference,
|
|||
|
||||
if (isImplicitCell || isStopFrame) return;
|
||||
|
||||
int distance, offset, secDistance;
|
||||
TApp::instance()->getCurrentScene()->getScene()->getProperties()->getMarkers(
|
||||
distance, offset, secDistance);
|
||||
bool isAfterMarkers =
|
||||
distance > 0 && ((row - offset) % distance) == 0 && row != 0;
|
||||
|
||||
// draw level name
|
||||
if (showLevelName &&
|
||||
(!sameLevel || (row > 0 && xsh->isImplicitCell(row - 1, col)) ||
|
||||
|
@ -2462,19 +2454,6 @@ void CellArea::drawSoundTextCell(QPainter &p, int row, int col) {
|
|||
TFrameId fid = cell.m_frameId;
|
||||
if (fid.getNumber() - 1 < 0) return;
|
||||
|
||||
int distance, offset;
|
||||
TApp::instance()->getCurrentScene()->getScene()->getProperties()->getMarkers(
|
||||
distance, offset);
|
||||
// if (distance == 0) distance = 6;
|
||||
bool isAfterMarkers =
|
||||
distance > 0 && ((row - offset) % distance) == 0 && row != 0;
|
||||
|
||||
// draw marker interval
|
||||
if (o->isVerticalTimeline() && isAfterMarkers) {
|
||||
p.setPen(m_viewer->getMarkerLineColor());
|
||||
p.drawLine(o->line(PredefinedLine::SEE_MARKER_THROUGH).translated(xy));
|
||||
}
|
||||
|
||||
p.setPen(Qt::black);
|
||||
QRect nameRect = o->rect(PredefinedRect::CELL_NAME).translated(QPoint(x, y));
|
||||
nameRect.adjust(0, 0, -frameAdj.x(), -frameAdj.y());
|
||||
|
@ -2658,8 +2637,6 @@ void CellArea::drawSoundTextColumn(QPainter &p, int r0, int r1, int col) {
|
|||
|
||||
// paint background and other stuffs
|
||||
for (auto info : infoList) {
|
||||
bool heldFrame = (!o->isVerticalTimeline() && info.row != row);
|
||||
|
||||
bool isSelected =
|
||||
isColSelected || cellSelection->isCellSelected(info.row, col);
|
||||
QColor tmpCellColor = (isSelected) ? selectedCellColor : cellColor;
|
||||
|
@ -2677,6 +2654,7 @@ void CellArea::drawSoundTextColumn(QPainter &p, int r0, int r1, int col) {
|
|||
// cell mark
|
||||
drawCellMarker(p, info.markId, info.rect, true);
|
||||
|
||||
bool heldFrame = (!o->isVerticalTimeline() && info.row != row);
|
||||
drawFrameSeparator(p, info.row, col, false, heldFrame);
|
||||
|
||||
if (TApp::instance()->getCurrentFrame()->isEditingScene() &&
|
||||
|
@ -2820,13 +2798,6 @@ void CellArea::drawPaletteCell(QPainter &p, int row, int col,
|
|||
|
||||
bool sameLevel = prevCell.m_level.getPointer() == cell.m_level.getPointer();
|
||||
|
||||
int distance, offset;
|
||||
TApp::instance()->getCurrentScene()->getScene()->getProperties()->getMarkers(
|
||||
distance, offset);
|
||||
// if (distance == 0) distance = 6;
|
||||
bool isAfterMarkers =
|
||||
distance > 0 && ((row - offset) % distance) == 0 && row != 0;
|
||||
|
||||
bool isRed = false;
|
||||
TXshPaletteLevel *pl = cell.getPaletteLevel();
|
||||
if (pl && !pl->getPalette()) isRed = true;
|
||||
|
@ -2872,6 +2843,13 @@ void CellArea::drawPaletteCell(QPainter &p, int row, int col,
|
|||
return;
|
||||
}
|
||||
|
||||
int distance, offset, secDistance;
|
||||
TApp::instance()->getCurrentScene()->getScene()->getProperties()->getMarkers(
|
||||
distance, offset, secDistance);
|
||||
|
||||
bool isAfterMarkers =
|
||||
distance > 0 && ((row - offset) % distance) == 0 && row != 0;
|
||||
|
||||
bool heldFrame = (!o->isVerticalTimeline() && !isAfterMarkers && sameLevel &&
|
||||
prevCell.m_frameId == cell.m_frameId) &&
|
||||
!isImplicitCell;
|
||||
|
@ -2952,11 +2930,6 @@ void CellArea::drawPaletteCell(QPainter &p, int row, int col,
|
|||
cellColor);
|
||||
}
|
||||
|
||||
if (o->isVerticalTimeline() && isAfterMarkers) {
|
||||
p.setPen(m_viewer->getMarkerLineColor());
|
||||
p.drawLine(o->line(PredefinedLine::SEE_MARKER_THROUGH).translated(xy));
|
||||
}
|
||||
|
||||
if ((sameLevel && prevCell.m_frameId == cell.m_frameId && !isAfterMarkers) ||
|
||||
isImplicitCell) { // cell equal to previous one (not on marker line):
|
||||
// do not write anything and draw a vertical line
|
||||
|
|
|
@ -1181,12 +1181,12 @@ void XsheetViewer::wheelEvent(QWheelEvent *event) {
|
|||
return;
|
||||
}
|
||||
|
||||
int markerDistance = 0, markerOffset = 0;
|
||||
int markerDistance = 0, markerOffset = 0, secDistance;
|
||||
TApp::instance()
|
||||
->getCurrentScene()
|
||||
->getScene()
|
||||
->getProperties()
|
||||
->getMarkers(markerDistance, markerOffset);
|
||||
->getMarkers(markerDistance, markerOffset, secDistance);
|
||||
|
||||
if (event->angleDelta().x() == 0) { // vertical scroll
|
||||
if (!orientation()->isVerticalTimeline()) markerDistance = 1;
|
||||
|
|
|
@ -105,9 +105,9 @@ void RowArea::drawRows(QPainter &p, int r0, int r1) {
|
|||
p.setFont(font);
|
||||
|
||||
// marker interval
|
||||
int distance, offset;
|
||||
int distance, offset, secDistance;
|
||||
TApp::instance()->getCurrentScene()->getScene()->getProperties()->getMarkers(
|
||||
distance, offset);
|
||||
distance, offset, secDistance);
|
||||
|
||||
// default value
|
||||
// if (distance == 0) distance = 6;
|
||||
|
@ -130,9 +130,16 @@ void RowArea::drawRows(QPainter &p, int r0, int r1) {
|
|||
//--- draw horizontal line
|
||||
bool isAfterMarkers =
|
||||
(distance > 0 && ((r - offset) % distance) == 0 && r != 0);
|
||||
QColor color = isAfterMarkers ? m_viewer->getMarkerLineColor()
|
||||
: m_viewer->getLightLineColor();
|
||||
p.setPen(color);
|
||||
bool isAfterSecMarkers =
|
||||
secDistance > 0 && ((r - offset) % secDistance) == 0 && r != 0;
|
||||
|
||||
QColor color = (isAfterSecMarkers || isAfterMarkers)
|
||||
? m_viewer->getMarkerLineColor()
|
||||
: m_viewer->getLightLineColor();
|
||||
|
||||
p.setPen(
|
||||
QPen(color, (isAfterSecMarkers) ? 3. : 1., Qt::SolidLine, Qt::FlatCap));
|
||||
// p.setPen(color);
|
||||
QLine horizontalLine = o->horizontalLine(frameAxis, layerSide);
|
||||
if (!o->isVerticalTimeline()) {
|
||||
int x = horizontalLine.x1();
|
||||
|
|
|
@ -580,6 +580,8 @@ void Preferences::definePreferenceItems() {
|
|||
define(showColumnNumbers, "showColumnNumbers", QMetaType::Bool, false);
|
||||
define(parentColorsInXsheetColumn, "parentColorsInXsheetColumn",
|
||||
QMetaType::Bool, true);
|
||||
define(highlightLineEverySecond, "highlightLineEverySecond", QMetaType::Bool,
|
||||
false);
|
||||
define(syncLevelRenumberWithXsheet, "syncLevelRenumberWithXsheet",
|
||||
QMetaType::Bool, true);
|
||||
define(currentTimelineEnabled, "currentTimelineEnabled", QMetaType::Bool,
|
||||
|
|
|
@ -133,6 +133,19 @@ void TSceneProperties::setBgColor(const TPixel32 &color) { m_bgColor = color; }
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
void TSceneProperties::getMarkers(int &distance, int &offset,
|
||||
int &secDistance) const {
|
||||
distance = m_markerDistance;
|
||||
offset = m_markerOffset;
|
||||
// TODO: handle drop frame when the fps has decimal part
|
||||
secDistance =
|
||||
(Preferences::instance()->getBoolValue(highlightLineEverySecond))
|
||||
? (int)std::round(getOutputProperties()->getFrameRate())
|
||||
: -1;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
void TSceneProperties::setMarkers(int distance, int offset) {
|
||||
m_markerDistance = distance;
|
||||
m_markerOffset = offset;
|
||||
|
|
|
@ -373,9 +373,9 @@ void FunctionViewer::refreshModel() {
|
|||
|
||||
m_treeView->setCurrentScenePath(scenePath);
|
||||
|
||||
int distance, offset;
|
||||
scene->getProperties()->getMarkers(distance, offset);
|
||||
m_numericalColumns->setMarkRow(distance, offset);
|
||||
int distance, offset, secDistance;
|
||||
scene->getProperties()->getMarkers(distance, offset, secDistance);
|
||||
m_numericalColumns->setMarkRow(distance, offset, secDistance);
|
||||
}
|
||||
|
||||
m_treeView->updateAll();
|
||||
|
|
|
@ -382,7 +382,8 @@ void RowPanel::drawRows(QPainter &p, int r0, int r1) {
|
|||
for (r = r0; r <= r1; r++) {
|
||||
int next_y = getViewer()->rowToY(r + 1);
|
||||
// draw horizontal line
|
||||
QColor color = (getViewer()->isMarkRow(r))
|
||||
bool isMarkSecRow = getViewer()->isMarkSecRow(r);
|
||||
QColor color = (isMarkSecRow || getViewer()->isMarkRow(r))
|
||||
? getViewer()->getMarkerLineColor()
|
||||
: getViewer()->getLightLineColor();
|
||||
p.setPen(color);
|
||||
|
@ -401,11 +402,6 @@ void RowPanel::drawRows(QPainter &p, int r0, int r1) {
|
|||
Qt::AlignVCenter | Qt::AlignRight, number);
|
||||
y = next_y;
|
||||
}
|
||||
// erase the marker interval at upper-end
|
||||
if (r0 == 0) {
|
||||
p.setPen(getViewer()->getLightLineColor());
|
||||
p.drawLine(x0, getViewer()->rowToY(0), x1, getViewer()->rowToY(0));
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@ -499,15 +495,15 @@ void CellPanel::paintEvent(QPaintEvent *e) {
|
|||
// draw rows
|
||||
int currentRow = getViewer()->getCurrentRow();
|
||||
for (int r = r0; r <= r1; r++) {
|
||||
int y = getViewer()->rowToY(r);
|
||||
QColor color = getViewer()->isMarkRow(r) ? getViewer()->getMarkerLineColor()
|
||||
: getViewer()->getLightLineColor();
|
||||
painter.setPen(color);
|
||||
int y = getViewer()->rowToY(r);
|
||||
bool isMarkSecRow = getViewer()->isMarkSecRow(r);
|
||||
QColor color = (isMarkSecRow || getViewer()->isMarkRow(r))
|
||||
? getViewer()->getMarkerLineColor()
|
||||
: getViewer()->getLightLineColor();
|
||||
painter.setPen(
|
||||
QPen(color, (isMarkSecRow) ? 3. : 1., Qt::SolidLine, Qt::FlatCap));
|
||||
painter.drawLine(x0, y, x1, y);
|
||||
}
|
||||
// erase the marker interval at upper-end
|
||||
painter.setPen(getViewer()->getLightLineColor());
|
||||
painter.drawLine(x0, 0, x1, 0);
|
||||
}
|
||||
|
||||
} // namespace Spreadsheet
|
||||
|
@ -531,6 +527,7 @@ SpreadsheetViewer::SpreadsheetViewer(QWidget *parent)
|
|||
, m_currentRow(0)
|
||||
, m_markRowDistance(6)
|
||||
, m_markRowOffset(0)
|
||||
, m_markSecRowDistance(-1)
|
||||
, m_isComputingSize(false)
|
||||
, m_frameScroller() {
|
||||
// m_orientation = Orientations::topToBottom ();
|
||||
|
|
Loading…
Reference in a new issue