void TrackView::setEditTrack(int newEditTrack, bool selecting) { if (0 == getTrackCount()) return; int oldEditTrack = editTrack; editTrack = newEditTrack; // clamp to document editTrack = qBound(0, editTrack, getTrackCount() - 1); if (oldEditTrack != editTrack) { updateSelection(QPoint(editTrack, editRow), selecting); onTrackHeaderChanged(oldEditTrack); onTrackHeaderChanged(editTrack); dirtyPosition(); dirtyCurrentValue(); } if (viewport()->width() > 0) { int viewportWidth = viewport()->width() - leftMarginWidth; int minX = getLogicalX(editTrack); int maxX = getLogicalX(editTrack + 1); if (minX < scrollPosX) setScrollPos(minX, scrollPosY); else if (maxX > scrollPosX + viewportWidth) setScrollPos(maxX - viewportWidth, scrollPosY); } else setupScrollBars(); }
TrackView::TrackView(SyncPage *page, QWidget *parent) : QAbstractScrollArea(parent), page(page), windowRows(0), readOnly(false), dragging(false) { Q_ASSERT(page); lineEdit = new QLineEdit(this); lineEdit->setAutoFillBackground(true); lineEdit->hide(); QDoubleValidator *lineEditValidator = new QDoubleValidator(); lineEditValidator->setNotation(QDoubleValidator::StandardNotation); lineEditValidator->setLocale(QLocale::c()); lineEdit->setValidator(lineEditValidator); QObject::connect(lineEdit, SIGNAL(editingFinished()), this, SLOT(onEditingFinished())); viewport()->setAutoFillBackground(false); setFocus(Qt::OtherFocusReason); setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn); setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); scrollPosX = 0; scrollPosY = 0; editRow = 0; editTrack = 0; selectionStart = selectionEnd = QPoint(0, 0); updateFont(fontMetrics()); updatePalette(); stepPen = QPen(); lerpPen = QPen(QBrush(Qt::red), 2); smoothPen = QPen(QBrush(Qt::green), 2); rampPen = QPen(QBrush(Qt::blue), 2); editBrush = Qt::yellow; bookmarkBrush = QColor(128, 128, 255); handCursor = QCursor(Qt::OpenHandCursor); setMouseTracking(true); setupScrollBars(); QObject::connect(horizontalScrollBar(), SIGNAL(valueChanged(int)), this, SLOT(onHScroll(int))); QObject::connect(verticalScrollBar(), SIGNAL(valueChanged(int)), this, SLOT(onVScroll(int))); QObject::connect(page, SIGNAL(trackHeaderChanged(int)), this, SLOT(onTrackHeaderChanged(int))); QObject::connect(page, SIGNAL(trackDataChanged(int, int, int)), this, SLOT(onTrackDataChanged(int, int, int))); }
ThumbnailList::ThumbnailList(QWidget * parent) : QGraphicsView(parent), packet_(NULL), current_page_(NULL), scene_(NULL), layout_(NULL), context_thumb_(NULL), act_select_all_(NULL), act_recognize_(NULL), act_save_as_(NULL), act_properties_(NULL), act_delete_(NULL), act_open_external_(NULL) { setAcceptDrops(true); setupLayout(); setupScrollBars(); setupActions(); setupScene(); }
void TrackView::setRows(int rows) { viewport()->update(); setEditRow(qMin(editRow, rows - 1), false); setupScrollBars(); }
void TrackView::resizeEvent(QResizeEvent *event) { windowRows = (event->size().height() - topMarginHeight) / rowHeight; setEditRow(editRow, false); setupScrollBars(); }