X-Git-Url: https://git.sven.stormbind.net/?a=blobdiff_plain;f=src%2Fslideeditor.cpp;fp=src%2Fslideeditor.cpp;h=88f0de855db836c7eec8cba56c273b06e6564966;hb=d483bd8e6523c23c6f1d8908a2e0611c2bc9ff4f;hp=0000000000000000000000000000000000000000;hpb=7dfa3fe589d1722d49681f42cdb0bf1e6efb5223;p=sven%2Fvym.git diff --git a/src/slideeditor.cpp b/src/slideeditor.cpp new file mode 100644 index 0000000..88f0de8 --- /dev/null +++ b/src/slideeditor.cpp @@ -0,0 +1,103 @@ +#include +#include + +#include "mainwindow.h" +#include "slidecontrolwidget.h" +#include "slideitem.h" +#include "slidemodel.h" +#include "vymmodel.h" + +#include "slideeditor.h" + +extern Main *mainWindow; +extern SlideEditor *slideEditor; + +extern QString editorFocusStyle; + +SlideEditor::SlideEditor(VymModel *m) +{ + vymModel = m; + + // Create slides model + slideModel = vymModel->getSlideModel(); + + // Create TreeView + view = new QTreeView(this); + view->setModel(slideModel); + + slideModel->setSelectionModel(view->selectionModel()); + + view->setStyleSheet("QTreeView:focus {" + editorFocusStyle + "}"); + + // Create ControlWidget + slideControl = new SlideControlWidget(this); + connect(slideControl, SIGNAL(takeSnapshot()), this, SLOT(addSlide())); + connect(slideControl, SIGNAL(editButtonPressed()), mainWindow, + SLOT(windowToggleScriptEditor())); + connect(slideControl, SIGNAL(deleteButtonPressed()), this, + SLOT(deleteSlide())); + connect(slideControl, SIGNAL(previousButtonPressed()), this, + SLOT(previousSlide())); + connect(slideControl, SIGNAL(nextButtonPressed()), this, SLOT(nextSlide())); + connect(slideControl, SIGNAL(upButtonPressed()), this, SLOT(moveSlideUp())); + connect(slideControl, SIGNAL(downButtonPressed()), this, + SLOT(moveSlideDown())); + + QVBoxLayout *mainLayout = new QVBoxLayout; + + mainLayout->addWidget(view); + mainLayout->addWidget(slideControl); + + setLayout(mainLayout); + + // Selection + connect(view->selectionModel(), + SIGNAL(selectionChanged(QItemSelection, QItemSelection)), vymModel, + SLOT(updateSlideSelection(QItemSelection, QItemSelection))); + connect(view->selectionModel(), + SIGNAL(selectionChanged(QItemSelection, QItemSelection)), this, + SLOT(updateSelection(QItemSelection, QItemSelection))); + + // connect (resultsModel, SIGNAL(layoutChanged() ), view, SLOT + // (expandAll() )); +} + +void SlideEditor::previousSlide() +{ + QModelIndex ix = slideModel->getSelectedIndex(); + if (ix.isValid()) + ix = view->indexAbove(ix); + + if (ix.isValid()) + view->selectionModel()->select(ix, QItemSelectionModel::ClearAndSelect); +} + +void SlideEditor::nextSlide() +{ + QModelIndex ix = slideModel->getSelectedIndex(); + if (ix.isValid()) + ix = view->indexBelow(ix); + if (ix.isValid()) + view->selectionModel()->select(ix, QItemSelectionModel::ClearAndSelect); +} + +void SlideEditor::addSlide() { vymModel->addSlide(); } + +void SlideEditor::editSlide() // FIXME-4 not used yet +{ +} + +void SlideEditor::deleteSlide() +{ + SlideItem *si = slideModel->getSelectedItem(); + vymModel->deleteSlide(si); +} + +void SlideEditor::moveSlideUp() { vymModel->moveSlideUp(); } + +void SlideEditor::moveSlideDown() { vymModel->moveSlideDown(); } + +void SlideEditor::updateSelection(QItemSelection, QItemSelection) +{ + // FIXME-3 updateActions missing, e.g. state for moveUp/down +}