void toTemplateEdit::connectList(bool conn) { if (conn) connect(Templates, SIGNAL(selectionChanged()), this, SLOT(changeSelection())); else disconnect(Templates, SIGNAL(selectionChanged()), this, SLOT(changeSelection())); }
bool Menu::handleEvents(SDL_Event *event) { switch (event->type) { case SDL_KEYDOWN: switch( event->key.keysym.sym ) { case SDLK_UP: { selectedIndex--; if(selectedIndex<0) selectedIndex=numberOfItems()-1; changeSelection(); } break; case SDLK_DOWN: { selectedIndex++; int max = numberOfItems()-1; if(selectedIndex > max) selectedIndex = 0; changeSelection(); } break; case SDLK_LEFT: { LabelValue<bool,Object> *lv = dynamic_cast<LabelValue<bool,Object> *> (selected); if(lv != NULL) { lv->down(); } } break; case SDLK_RIGHT: { LabelValue<bool,Object> *lv = dynamic_cast<LabelValue<bool,Object> *> (selected); if(lv != NULL) { lv->up(); } } break; case SDLK_RETURN: didSelectItem(selectedIndex); break; case SDLK_ESCAPE: close(); break; default: return false; } break; default: return false; } return true; }
void Editable::onKeyPressed(const KeyEvent &e) { UIElement::onKeyPressed(e); if(e.isPrintable()) insertAtCursor(e.getCharacter()); else { size_t oldPos; switch(e.getKeyCode()) { case VK_DELETE: removeNext(); break; case VK_BACKSP: removeLast(); break; case VK_LEFT: if(_cursor > 0) moveCursor(-1); if(e.isShiftDown()) changeSelection(_cursor,_cursor + 1,DIR_LEFT); else if(_selStart != -1) clearSelection(); break; case VK_RIGHT: if(_cursor < _str.length()) moveCursor(1); if(e.isShiftDown()) changeSelection(_cursor,_cursor - 1,DIR_RIGHT); else if(_selStart != -1) clearSelection(); break; case VK_HOME: oldPos = _cursor; if(_cursor != 0) moveCursorTo(0); if(e.isShiftDown()) changeSelection(_cursor,oldPos,DIR_LEFT); else if(_selStart != -1) clearSelection(); break; case VK_END: oldPos = _cursor; if(_cursor != _str.length()) moveCursorTo(_str.length()); if(e.isShiftDown()) changeSelection(_cursor,oldPos,DIR_RIGHT); else if(_selStart != -1) clearSelection(); break; } } repaint(); }
void FboWarpOutput::keyPressed(int key){ if(editingGrid && keyboardEditingEnabled){ switch(key) { // Move case 'w': changeSelection(0, -1); break; case 's': changeSelection(0, 1); break; case 'a': changeSelection(-1, 0); break; case 'd': changeSelection(1, 0); break; // Scale case 'p': scaleSelection(0.1); break; case 'l': scaleSelection(-0.1); break; case 'P': scaleSelection(1); break; case 'L': scaleSelection(-1); break; // Shift case OF_KEY_UP: shiftSelection(0, -1); break; case OF_KEY_DOWN: shiftSelection(0, 1); break; case OF_KEY_LEFT: shiftSelection(-1, 0); break; case OF_KEY_RIGHT: shiftSelection(1, 0); break; } } }
graphInspector::graphInspector(QWidget *parent, QList<graphObject*>* list) : QWidget(parent) { int i; setupUi(this); styleEdit->addItem(QString::fromUtf8("Сплошной")); styleEdit->addItem(QString::fromUtf8("Штрих")); styleEdit->addItem(QString::fromUtf8("Точка")); styleEdit->addItem(QString::fromUtf8("Штрих-точка")); graphs = list; for(i=0;i<graphs->count();i++) graphBox->addItem(graphs->at(i)->description ); QObject::connect(graphBox, SIGNAL(activated(int)), this, SLOT(changeSelection(int))); QObject::connect(widthEdit, SIGNAL(valueChanged(int)), this, SLOT(changeWidth(int))); QObject::connect(colorEdit, SIGNAL(clicked()), this, SLOT(changeColor())); QObject::connect(descriptionEdit, SIGNAL(textEdited(QString)),this, SLOT(changeDescription(QString))); QObject::connect(drawableEdit, SIGNAL(stateChanged(int)), this, SLOT(changeDrawable(int))); QObject::connect(addEdit, SIGNAL(clicked()), this, SLOT(add())); QObject::connect(removeEdit, SIGNAL(clicked()), this, SLOT(remove())); QObject::connect(styleEdit, SIGNAL(activated(int)), this, SLOT(changeStyle(int))); graphBox->setCurrentIndex(0); changeSelection(0); }
CurvesView::CurvesView(QObject *parent) : QGraphicsScene(parent) { selectionFlag = false; currentSelection = NULL; lastSelected = NULL; zoomStarted = false; zoomFactor = 1; snapX = 0; snapY = 0; //add, delete addAction = new QAction(tr("&Add"), this); connect(addAction, SIGNAL(triggered()), this, SLOT(addPoint())); deleteAction = new QAction(tr("&Delete"), this); connect(deleteAction, SIGNAL(triggered()), this, SLOT(deletePoint())); //interpolation actions bezierAction = new QAction(tr("&Bezier"), this); bezierAction->setCheckable(true); connect(bezierAction, SIGNAL(triggered()), this, SLOT(setBezierInterpolation())); linearAction = new QAction(tr("&Linear"), this); linearAction->setCheckable(true); connect(linearAction, SIGNAL(triggered()), this, SLOT(setLinearInterpolation())); constantAction = new QAction(tr("&Constant"), this); constantAction->setCheckable(true); connect(constantAction, SIGNAL(triggered()), this, SLOT(setConstantInterpolation())); interpolationGroup = new QActionGroup(this); interpolationGroup->addAction(bezierAction); interpolationGroup->addAction(linearAction); interpolationGroup->addAction(constantAction); bezierAction->setChecked(true); connect(this, SIGNAL(selectionChanged()), this, SLOT(changeSelection())); //display where is the current frame QPen frameCursorPen(Qt::SolidLine); frameCursorPen.setBrush(QBrush(qRgb(0,100,0), Qt::SolidPattern)); frameCursorPen.setWidth(10); frameCursor = new CurveCursor(this,this,frameCursorPen); frameCursor->showCoord(false); /* display coordinates of points on curves, adding it to the scene after the frame cursor ensure that the coordinates will be shown on top */ QPen curveCursorPen(Qt::DotLine); curveCursor = new CurveCursor(this,this,curveCursorPen); curveCursor->showHorizontal(); connect(this, SIGNAL(scaleChanged(QPointF)), curveCursor, SLOT(counterSceneScale(QPointF))); connect(this, SIGNAL(scaleChanged(QPointF)), frameCursor, SLOT(counterSceneScale(QPointF))); }
void Audio::input() { int mChoices = 4; //Byta rad if(!mChangeVolume) changeSelection(mChoices); //Vad som händer när man trycker på enter på respektive rad select(); }
void Editable::onMouseMoved(const MouseEvent &e) { UIElement::onMouseMoved(e); if(_selecting) { int pos = getPosAt(e.getPos().x); uchar dir = pos > (int)_cursor ? DIR_RIGHT : DIR_LEFT; changeSelection(pos,pos,dir); moveCursorTo(pos); repaint(); } }
void MyIconView::keyPressEvent(QKeyEvent *e){ switch (e->key()) { case Qt::Key_Escape: multi_selection.clear(); updateSelection(); break; case Qt::Key_Insert: mark(!marked); break; case Qt::Key_Shift: changeSelection(); break; case Qt::Key_Backspace: emit(stepup()); setFocus(); break; case Qt::Key_F1: emit(chlayout()); break; case Qt::Key_F11: emit(refresh()); break; case Qt::Key_Down: case Qt::Key_Up: case Qt::Key_Left: case Qt::Key_Right: QTableWidget::keyPressEvent(e); if(e->modifiers() & Qt::ShiftModifier) changeSelection(); break; case Qt::Key_Tab: QWidget::keyPressEvent(e); break; default: QTableWidget::keyPressEvent(e); break; } }
void graphInspector::add() { int i = graphs->count(); graphObject* obj = new graphObject; obj->description = QString::fromUtf8("Новая кривая ") + QString::number(i+1); /*Небольшой бонус ;)*/ if(graphs->count() < 12) obj->pen.setColor(Qt::GlobalColor(graphs->count()+6)); /*Автоматически устанавливается цвет*/ /*Конец*/ graphs->append(obj); graphBox->addItem(graphs->at(i)->description); graphBox->setCurrentIndex(i); changeSelection(i); descriptionEdit->setFocus(); }
void graphInspector::remove() { int i = graphBox->currentIndex(); /*Чтобы не удалили все*/ if(graphs->count() == 1) return; if(graphs->at(i)->data != NULL) free(graphs->at(i)->data); delete graphs->at(i); graphs->removeAt(i); graphBox->removeItem(i); if(i == graphs->count()) i--; graphBox->setCurrentIndex(i); changeSelection(i); emit needToRedraw(); }
void Input::removeSelection() { if (dataModel()->inputs().empty()) return; int _row = ui_->inputList->currentIndex().row(); if (_row < 1 || _row > dataModel()->inputs().numberOfChildren()) return; auto* _item = model_->item(_row); if (!_item) return; dataModel()->inputs().removeInput(_item->text()); model_->removeRows(_row,1); this->removeParameterWidget(widget()); changeSelection(model_->index(_row,0)); emit inputRemoved(); }
void toTemplateEdit::newTemplate(void) { changeSelection(); LastTemplate = TemplateMap.end(); Description->setText(QString::null); toTreeWidgetItem *item = Templates->selectedItem(); if (item) { connectList(false); Templates->setSelected(item, false); connectList(true); item = item->parent(); } QString str; if (item) { str = name(item); str += ":"; } Name->setText(str); }
void graphWidget::keyPressEvent(QKeyEvent* event) { subfunction* oldFunc = selFunc; int i; bool ok = false; switch(event->key()) { case Qt::Key_Delete: if(selFunc && selFunc->parent->funcList.size() > 1) { ui->transitionEditor->on_removeButton_released(); } break; case Qt::Key_Right: if(selFunc) { if((i = selFunc->parent->getSubfunctionNumber(selFunc)) == selFunc->parent->funcList.size()-1) { ui->transitionEditor->on_appendButton_released(); } else { changeSelection(selFunc->parent->funcList[i+1]); redrawGraphs(); } } break; case Qt::Key_Left: if(selFunc) { if((i = selFunc->parent->getSubfunctionNumber(selFunc)) == 0) { ui->transitionEditor->on_prependButton_released(); } else { changeSelection(selFunc->parent->funcList[i-1]); redrawGraphs(); } } break; case Qt::Key_Up: if(selFunc) { if(selFunc->parent->secParent->type == forced) { i = selFunc->parent->getSubfunctionNumber(selFunc); if(selFunc->parent->type == funcRoll) { ok = changeSelection(i < selFunc->parent->secParent->normForce->funcList.size() ? selFunc->parent->secParent->normForce->funcList[i] : selFunc->parent->secParent->normForce->funcList.last()); if(!ok) ok = changeSelection(i < selFunc->parent->secParent->latForce->funcList.size() ? selFunc->parent->secParent->latForce->funcList[i] : selFunc->parent->secParent->latForce->funcList.last()); } else if(selFunc->parent->type == funcNormal) { ok = changeSelection(i < selFunc->parent->secParent->latForce->funcList.size() ? selFunc->parent->secParent->latForce->funcList[i] : selFunc->parent->secParent->latForce->funcList.last()); if(!ok) ok = changeSelection(i < selFunc->parent->secParent->rollFunc->funcList.size() ? selFunc->parent->secParent->rollFunc->funcList[i] : selFunc->parent->secParent->rollFunc->funcList.last()); } else { ok = changeSelection(i < selFunc->parent->secParent->rollFunc->funcList.size() ? selFunc->parent->secParent->rollFunc->funcList[i] : selFunc->parent->secParent->rollFunc->funcList.last()); if(!ok) ok = changeSelection(i < selFunc->parent->secParent->normForce->funcList.size() ? selFunc->parent->secParent->normForce->funcList[i] : selFunc->parent->secParent->normForce->funcList.last()); } if(!ok) changeSelection(oldFunc); redrawGraphs(); } else if(selFunc->parent->secParent->type == geometric) { i = selFunc->parent->getSubfunctionNumber(selFunc); if(selFunc->parent->type == funcRoll) { ok = changeSelection(i < selFunc->parent->secParent->normForce->funcList.size() ? selFunc->parent->secParent->normForce->funcList[i] : selFunc->parent->secParent->normForce->funcList.last()); if(!ok) ok = changeSelection(i < selFunc->parent->secParent->latForce->funcList.size() ? selFunc->parent->secParent->latForce->funcList[i] : selFunc->parent->secParent->latForce->funcList.last()); } else if(selFunc->parent->type == funcPitch) { ok = changeSelection(i < selFunc->parent->secParent->latForce->funcList.size() ? selFunc->parent->secParent->latForce->funcList[i] : selFunc->parent->secParent->latForce->funcList.last()); if(!ok) ok = changeSelection(i < selFunc->parent->secParent->rollFunc->funcList.size() ? selFunc->parent->secParent->rollFunc->funcList[i] : selFunc->parent->secParent->rollFunc->funcList.last()); } else { ok = changeSelection(i < selFunc->parent->secParent->rollFunc->funcList.size() ? selFunc->parent->secParent->rollFunc->funcList[i] : selFunc->parent->secParent->rollFunc->funcList.last()); if(!ok) ok = changeSelection(i < selFunc->parent->secParent->normForce->funcList.size() ? selFunc->parent->secParent->normForce->funcList[i] : selFunc->parent->secParent->normForce->funcList.last()); } if(!ok) changeSelection(oldFunc); redrawGraphs(); } } break; case Qt::Key_Down: if(selFunc) { if(selFunc->parent->secParent->type == forced) { i = selFunc->parent->getSubfunctionNumber(selFunc); if(selFunc->parent->type == funcRoll) { ok = changeSelection(i < selFunc->parent->secParent->latForce->funcList.size() ? selFunc->parent->secParent->latForce->funcList[i] : selFunc->parent->secParent->latForce->funcList.last()); if(!ok) ok = changeSelection(i < selFunc->parent->secParent->normForce->funcList.size() ? selFunc->parent->secParent->normForce->funcList[i] : selFunc->parent->secParent->normForce->funcList.last()); } else if(selFunc->parent->type == funcNormal) { ok = changeSelection(i < selFunc->parent->secParent->rollFunc->funcList.size() ? selFunc->parent->secParent->rollFunc->funcList[i] : selFunc->parent->secParent->rollFunc->funcList.last()); if(!ok) ok = changeSelection(i < selFunc->parent->secParent->latForce->funcList.size() ? selFunc->parent->secParent->latForce->funcList[i] : selFunc->parent->secParent->latForce->funcList.last()); } else { ok = changeSelection(i < selFunc->parent->secParent->normForce->funcList.size() ? selFunc->parent->secParent->normForce->funcList[i] : selFunc->parent->secParent->normForce->funcList.last()); if(!ok) ok = changeSelection(i < selFunc->parent->secParent->rollFunc->funcList.size() ? selFunc->parent->secParent->rollFunc->funcList[i] : selFunc->parent->secParent->rollFunc->funcList.last()); } if(!ok) changeSelection(oldFunc); redrawGraphs(); } else if(selFunc->parent->secParent->type == geometric) { i = selFunc->parent->getSubfunctionNumber(selFunc); if(selFunc->parent->type == funcRoll) { ok = changeSelection(i < selFunc->parent->secParent->latForce->funcList.size() ? selFunc->parent->secParent->latForce->funcList[i] : selFunc->parent->secParent->latForce->funcList.last()); if(!ok) ok = changeSelection(i < selFunc->parent->secParent->normForce->funcList.size() ? selFunc->parent->secParent->normForce->funcList[i] : selFunc->parent->secParent->normForce->funcList.last()); } else if(selFunc->parent->type == funcPitch) { ok = changeSelection(i < selFunc->parent->secParent->rollFunc->funcList.size() ? selFunc->parent->secParent->rollFunc->funcList[i] : selFunc->parent->secParent->rollFunc->funcList.last()); if(!ok) ok = changeSelection(i < selFunc->parent->secParent->latForce->funcList.size() ? selFunc->parent->secParent->latForce->funcList[i] : selFunc->parent->secParent->latForce->funcList.last()); } else { ok = changeSelection(i < selFunc->parent->secParent->normForce->funcList.size() ? selFunc->parent->secParent->normForce->funcList[i] : selFunc->parent->secParent->normForce->funcList.last()); if(!ok) ok = changeSelection(i < selFunc->parent->secParent->rollFunc->funcList.size() ? selFunc->parent->secParent->rollFunc->funcList[i] : selFunc->parent->secParent->rollFunc->funcList.last()); } if(!ok) changeSelection(oldFunc); redrawGraphs(); } } break; default: event->ignore(); break; } event->accept(); }
void SideBarTask::loadTask(int row) { mapper->setCurrentIndex(row); emit changeSelection(row); qDebug() << "loading" << mapper->currentIndex(); }
NavigatorView::NavigatorView(QObject* parent) : QmlModelView(parent), m_blockSelectionChangedSignal(false), m_widget(new NavigatorWidget(this)), m_treeModel(new NavigatorTreeModel(this)) { m_widget->setTreeModel(m_treeModel.data()); connect(treeWidget()->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this, SLOT(changeSelection(QItemSelection,QItemSelection))); connect(m_widget.data(), SIGNAL(leftButtonClicked()), this, SLOT(leftButtonClicked())); connect(m_widget.data(), SIGNAL(rightButtonClicked()), this, SLOT(rightButtonClicked())); connect(m_widget.data(), SIGNAL(downButtonClicked()), this, SLOT(downButtonClicked())); connect(m_widget.data(), SIGNAL(upButtonClicked()), this, SLOT(upButtonClicked())); treeWidget()->setIndentation(treeWidget()->indentation() * 0.5); NameItemDelegate *idDelegate = new NameItemDelegate(this,m_treeModel.data()); IconCheckboxItemDelegate *showDelegate = new IconCheckboxItemDelegate(this,":/qmldesigner/images/eye_open.png", ":/qmldesigner/images/placeholder.png",m_treeModel.data()); #ifdef _LOCK_ITEMS_ IconCheckboxItemDelegate *lockDelegate = new IconCheckboxItemDelegate(this,":/qmldesigner/images/lock.png", ":/qmldesigner/images/hole.png",m_treeModel.data()); #endif treeWidget()->setItemDelegateForColumn(0,idDelegate); #ifdef _LOCK_ITEMS_ treeWidget()->setItemDelegateForColumn(1,lockDelegate); treeWidget()->setItemDelegateForColumn(2,showDelegate); #else treeWidget()->setItemDelegateForColumn(1,showDelegate); #endif }
NavigatorView::NavigatorView(QObject* parent) : AbstractView(parent), m_blockSelectionChangedSignal(false), m_widget(new NavigatorWidget(this)), m_treeModel(new NavigatorTreeModel(this)) { Internal::NavigatorContext *navigatorContext = new Internal::NavigatorContext(m_widget.data()); Core::ICore::addContextObject(navigatorContext); m_widget->setTreeModel(m_treeModel.data()); connect(treeWidget()->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this, SLOT(changeSelection(QItemSelection,QItemSelection))); connect(m_widget.data(), SIGNAL(leftButtonClicked()), this, SLOT(leftButtonClicked())); connect(m_widget.data(), SIGNAL(rightButtonClicked()), this, SLOT(rightButtonClicked())); connect(m_widget.data(), SIGNAL(downButtonClicked()), this, SLOT(downButtonClicked())); connect(m_widget.data(), SIGNAL(upButtonClicked()), this, SLOT(upButtonClicked())); treeWidget()->setIndentation(treeWidget()->indentation() * 0.5); NameItemDelegate *idDelegate = new NameItemDelegate(this, m_treeModel.data()); IconCheckboxItemDelegate *showDelegate = new IconCheckboxItemDelegate(this, Utils::Icons::EYE_OPEN_TOOLBAR.pixmap(), Utils::Icons::EYE_CLOSED_TOOLBAR.pixmap(), m_treeModel.data()); IconCheckboxItemDelegate *exportDelegate = new IconCheckboxItemDelegate(this, Icons::EXPORT_CHECKED.pixmap(), Icons::EXPORT_UNCHECKED.pixmap(), m_treeModel.data()); #ifdef _LOCK_ITEMS_ IconCheckboxItemDelegate *lockDelegate = new IconCheckboxItemDelegate(this,":/qmldesigner/images/lock.png", ":/qmldesigner/images/hole.png",m_treeModel.data()); #endif treeWidget()->setItemDelegateForColumn(0,idDelegate); #ifdef _LOCK_ITEMS_ treeWidget()->setItemDelegateForColumn(1,lockDelegate); treeWidget()->setItemDelegateForColumn(2,showDelegate); #else treeWidget()->setItemDelegateForColumn(1,exportDelegate); treeWidget()->setItemDelegateForColumn(2,showDelegate); #endif }
NavigatorView::NavigatorView(QObject* parent) : AbstractView(parent), m_blockSelectionChangedSignal(false), m_widget(new NavigatorWidget(this)), m_treeModel(new NavigatorTreeModel(this)) { Internal::NavigatorContext *navigatorContext = new Internal::NavigatorContext(m_widget.data()); Core::ICore::addContextObject(navigatorContext); m_widget->setTreeModel(m_treeModel.data()); connect(treeWidget()->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this, SLOT(changeSelection(QItemSelection,QItemSelection))); connect(m_widget.data(), SIGNAL(leftButtonClicked()), this, SLOT(leftButtonClicked())); connect(m_widget.data(), SIGNAL(rightButtonClicked()), this, SLOT(rightButtonClicked())); connect(m_widget.data(), SIGNAL(downButtonClicked()), this, SLOT(downButtonClicked())); connect(m_widget.data(), SIGNAL(upButtonClicked()), this, SLOT(upButtonClicked())); treeWidget()->setIndentation(treeWidget()->indentation() * 0.5); NameItemDelegate *idDelegate = new NameItemDelegate(this, m_treeModel.data()); IconCheckboxItemDelegate *showDelegate = new IconCheckboxItemDelegate(this, Utils::ThemeHelper::themedIconPixmap(QLatin1String(":/navigator/icon/eye_open.png")), Utils::ThemeHelper::themedIconPixmap(QLatin1String(":/navigator/icon/eye_closed.png")), m_treeModel.data()); IconCheckboxItemDelegate *exportDelegate = new IconCheckboxItemDelegate(this, Utils::ThemeHelper::themedIconPixmap(QLatin1String(":/navigator/icon/export_checked.png")), Utils::ThemeHelper::themedIconPixmap(QLatin1String(":/navigator/icon/export_unchecked.png")), m_treeModel.data()); #ifdef _LOCK_ITEMS_ IconCheckboxItemDelegate *lockDelegate = new IconCheckboxItemDelegate(this,":/qmldesigner/images/lock.png", ":/qmldesigner/images/hole.png",m_treeModel.data()); #endif treeWidget()->setItemDelegateForColumn(0,idDelegate); #ifdef _LOCK_ITEMS_ treeWidget()->setItemDelegateForColumn(1,lockDelegate); treeWidget()->setItemDelegateForColumn(2,showDelegate); #else treeWidget()->setItemDelegateForColumn(1,exportDelegate); treeWidget()->setItemDelegateForColumn(2,showDelegate); #endif }
void TorrentsListWidget::torrentWidgetMousePressed(TorrentWidget *item) { changeSelection(item); };
MainWindow::MainWindow() : QMainWindow() { _scene.reset(); if (!QGLFormat::hasOpenGL()) { QMessageBox::critical(this, "No OpenGL Support", "This system does not appear to support OpenGL.\n\n" "The Tungsten scene editor requires OpenGL " "to work properly. The editor will now terminate.\n\n" "Please install any available updates for your graphics card driver and try again"); std::exit(0); } QGLFormat qglFormat; qglFormat.setVersion(3, 2); qglFormat.setProfile(QGLFormat::CoreProfile); qglFormat.setAlpha(true); qglFormat.setSampleBuffers(true); qglFormat.setSamples(16); _windowSplit = new QSplitter(this); _stackWidget = new QStackedWidget(_windowSplit); _renderWindow = new RenderWindow(_stackWidget, this); _previewWindow = new PreviewWindow(_stackWidget, this, qglFormat); _propertyWindow = new PropertyWindow(_windowSplit, this); _stackWidget->addWidget(_renderWindow); _stackWidget->addWidget(_previewWindow); _windowSplit->addWidget(_stackWidget); _windowSplit->addWidget(_propertyWindow); _windowSplit->setStretchFactor(0, 1); _windowSplit->setStretchFactor(1, 0); setCentralWidget(_windowSplit); _previewWindow->addStatusWidgets(statusBar()); _renderWindow->addStatusWidgets(statusBar()); connect(this, SIGNAL(sceneChanged()), _previewWindow, SLOT(sceneChanged())); connect(this, SIGNAL(sceneChanged()), _renderWindow, SLOT(sceneChanged())); connect(this, SIGNAL(sceneChanged()), _propertyWindow, SLOT(sceneChanged())); connect( _previewWindow, SIGNAL(primitiveListChanged()), _propertyWindow, SLOT(primitiveListChanged())); connect( _previewWindow, SIGNAL(selectionChanged()), _propertyWindow, SLOT(changeSelection())); connect(_propertyWindow, SIGNAL(selectionChanged()), _previewWindow, SLOT(changeSelection())); showPreview(true); QMenu *fileMenu = new QMenu("&File"); fileMenu->addAction("New", this, SLOT(newScene()), QKeySequence("Ctrl+N")); fileMenu->addAction("Open File...", this, SLOT(openScene()), QKeySequence("Ctrl+O")); fileMenu->addAction("Reload File...", this, SLOT(reloadScene()), QKeySequence("Shift+R")); fileMenu->addSeparator(); fileMenu->addAction("Close", this, SLOT(closeScene()), QKeySequence("Ctrl+W")); fileMenu->addSeparator(); fileMenu->addAction("Save", this, SLOT(saveScene()), QKeySequence("Ctrl+S")); fileMenu->addAction("Save as...", this, SLOT(saveSceneAs()), QKeySequence("Ctrl+Shift+S")); fileMenu->addSeparator(); fileMenu->addAction("Exit", this, SLOT(close())); QMenuBar *menuBar = new QMenuBar(); menuBar->addMenu(fileMenu); setMenuBar(menuBar); newScene(); }