Mercurial > hg > svgui
diff widgets/ModelDataTableDialog.cpp @ 402:66e01a6c9554
* start play-tracking toggle in data editor dialog
author | Chris Cannam |
---|---|
date | Tue, 17 Jun 2008 16:24:50 +0000 |
parents | 96531861b2f3 |
children | dc32f6e7839b |
line wrap: on
line diff
--- a/widgets/ModelDataTableDialog.cpp Tue Jun 17 16:07:56 2008 +0000 +++ b/widgets/ModelDataTableDialog.cpp Tue Jun 17 16:24:50 2008 +0000 @@ -45,7 +45,15 @@ IconLoader il; - QAction *action = new QAction(il.load("datainsert"), tr("Insert New Item"), this); + QAction *action = new QAction(il.load("playfollow"), tr("Track Playback"), this); + action->setStatusTip(tr("Toggle tracking of playback position")); + action->setCheckable(true); + connect(action, SIGNAL(triggered()), this, SLOT(togglePlayTracking())); + toolbar->addAction(action); + + CommandHistory::getInstance()->registerToolbar(toolbar); + + action = new QAction(il.load("datainsert"), tr("Insert New Item"), this); action->setShortcut(tr("Insert")); action->setStatusTip(tr("Insert a new item")); connect(action, SIGNAL(triggered()), this, SLOT(insertRow())); @@ -63,8 +71,6 @@ connect(action, SIGNAL(triggered()), this, SLOT(editRow())); toolbar->addAction(action); - CommandHistory::getInstance()->registerToolbar(toolbar); - QFrame *mainFrame = new QFrame; setCentralWidget(mainFrame); @@ -157,6 +163,9 @@ int rh = m_tableView->height() / m_tableView->rowHeight(0); int topRow = row - rh/2; if (topRow < 0) topRow = 0; + //!!! should not do any of this if an item in the given row is + //already current; should not scroll if the current row is already + //visible m_tableView->scrollTo (m_table->getModelIndexForRow(topRow)); m_tableView->selectionModel()->setCurrentIndex @@ -216,6 +225,12 @@ } void +ModelDataTableDialog::togglePlayTracking() +{ + m_trackPlayback = !m_trackPlayback; +} + +void ModelDataTableDialog::currentChangedThroughResort(const QModelIndex &index) { std::cerr << "ModelDataTableDialog::currentChangedThroughResort: row = " << index.row() << std::endl;