SSPropDock::SSPropDock(QObject* o, QWidget* parent /* = 0 */) : QDockWidget(tr("Properties"), parent) { QTreeView* vw = new QTreeView; vw->setModel(new SSPropModel(o, this)); //vw->setAlternatingRowColors(true); vw->setAutoScroll(true); vw->setIndentation(0); //vw->setHeaderHidden(true); setWidget(vw); }
TimeWidget::TimeWidget(JointModel *model, QWidget *parent) : QWidget(parent), ui(new Ui::TimeWidget), m_model(model), m_delegate(new JointDelegate(this)), m_leftProxy(new JointProxyModel(model, this)), m_rightProxy(new JointProxyModel(model, this)) { ui->setupUi(this); QTreeView *namesView = ui->namesView; QTreeView *timeLineView = ui->timeLineView; // Sync views connect(namesView->verticalScrollBar(), SIGNAL(valueChanged(int)), timeLineView->verticalScrollBar(), SLOT(setValue(int))); connect(timeLineView->verticalScrollBar(), SIGNAL(valueChanged(int)), namesView->verticalScrollBar(), SLOT(setValue(int))); connect(namesView, SIGNAL(expanded(QModelIndex)), SLOT(onExpanded(QModelIndex))); connect(namesView, SIGNAL(collapsed(QModelIndex)), SLOT(onCollapsed(QModelIndex))); // Configure names view m_leftProxy->showAnims(false); namesView->setModel(m_leftProxy); // namesView->setModel(model); namesView->setItemDelegate(m_delegate); namesView->setHeader(new JointHeaderView(false)); namesView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); namesView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn); // Configure time line view JointHeaderView *header = new JointHeaderView(true); m_rightProxy->showVisibleColumn(false); m_rightProxy->showAnim(0); timeLineView->setModel(m_rightProxy); timeLineView->setItemDelegate(m_delegate); timeLineView->setHeader(header); timeLineView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn); timeLineView->hideColumn(JointModel::NameColumn); timeLineView->setAutoScroll(false); timeLineView->setMouseTracking(true); timeLineView->setItemsExpandable(false); connect(timeLineView, SIGNAL(entered(QModelIndex)), SLOT(openEditor(QModelIndex))); connect(model->animModel(), SIGNAL(rowsInserted(QModelIndex, int, int)), SLOT(resetEditor())); connect(model->animModel(), SIGNAL(rowsRemoved(QModelIndex, int, int)), SLOT(resetEditor())); connect(model->animModel(), SIGNAL(dataChanged(QModelIndex,QModelIndex)), SLOT(resetEditor())); connect(m_delegate, SIGNAL(currentFrameChanged(int)), header, SLOT(setCurrentFrame(int))); connect(header, SIGNAL(currentFrameChanged(int)), m_delegate, SLOT(setCurrentFrame(int))); connect(header, SIGNAL(currentFrameChanged(int)), timeLineView->viewport(), SLOT(update())); connect(header, SIGNAL(currentFrameChanged(int)), SIGNAL(currentFrameChanged(int))); // Configure push buttons connect(ui->frameCount, SIGNAL(pressed()), SLOT(showFrameCountDialog())); connect(ui->fps, SIGNAL(pressed()), SLOT(showFpsDialog())); // Initialize setCurrentAnim(-1); }