Ejemplo n.º 1
0
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();
}
Ejemplo n.º 2
0
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)));
}
Ejemplo n.º 3
0
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();
}
Ejemplo n.º 4
0
void TrackView::setRows(int rows)
{
	viewport()->update();
	setEditRow(qMin(editRow, rows - 1), false);
	setupScrollBars();
}
Ejemplo n.º 5
0
void TrackView::resizeEvent(QResizeEvent *event)
{
	windowRows   = (event->size().height() - topMarginHeight) / rowHeight;
	setEditRow(editRow, false);
	setupScrollBars();
}