]> git.sven.stormbind.net Git - sven/vym.git/blob - slideeditor.cpp
a4add9fc66101dfa7cb6086526683990a6e060fb
[sven/vym.git] / slideeditor.cpp
1 #include <QVBoxLayout>
2 #include <QTreeView>
3
4 #include "mainwindow.h"
5 #include "slidecontrolwidget.h"
6 #include "slidemodel.h"
7 #include "slideitem.h"
8 #include "vymmodel.h"
9
10 #include "slideeditor.h"
11
12 extern Main *mainWindow;
13 extern SlideEditor *slideEditor;
14
15 SlideEditor::SlideEditor(VymModel *m)
16 {
17     vymModel=m;
18
19     // Create slides model
20     slideModel=vymModel->getSlideModel();
21
22     // Create TreeView
23     view = new QTreeView (this);
24     view->setModel (slideModel);
25     
26     slideModel->setSelectionModel ( view->selectionModel() );
27
28     // Create ControlWidget
29     slideControl= new SlideControlWidget (this);
30     connect (
31         slideControl, SIGNAL (takeSnapshot() ), 
32         this, SLOT (addSlide() ) );
33     connect (
34         slideControl, SIGNAL (editButtonPressed() ), 
35         mainWindow, SLOT (windowToggleScriptEditor() ) );
36     connect (
37         slideControl, SIGNAL (deleteButtonPressed() ), 
38         this, SLOT (deleteSlide() ) );
39     connect (
40         slideControl, SIGNAL (previousButtonPressed() ), 
41         this, SLOT (previousSlide() ) );
42     connect (
43         slideControl, SIGNAL (nextButtonPressed() ), 
44         this, SLOT (nextSlide() ) );
45     connect (
46         slideControl, SIGNAL (upButtonPressed() ), 
47         this, SLOT (moveSlideUp() ) );
48     connect (
49         slideControl, SIGNAL (downButtonPressed() ), 
50         this, SLOT (moveSlideDown() ) );
51
52     QVBoxLayout* mainLayout = new QVBoxLayout;
53
54     mainLayout->addWidget(view);
55     mainLayout->addWidget(slideControl);
56
57     setLayout (mainLayout);
58
59     // Selection
60     connect (view->selectionModel(),SIGNAL (selectionChanged (QItemSelection,QItemSelection)),
61         vymModel, SLOT (updateSlideSelection (QItemSelection,QItemSelection)));
62     connect (view->selectionModel(),SIGNAL (selectionChanged (QItemSelection,QItemSelection)),
63         this, SLOT (updateSelection (QItemSelection,QItemSelection)));
64
65 //    connect (resultsModel, SIGNAL(layoutChanged() ), view, SLOT (expandAll() ));    
66 }
67
68 void SlideEditor::previousSlide()
69 {
70     QModelIndex ix=slideModel->getSelectedIndex();
71     if (ix.isValid())
72         ix=view->indexAbove (ix);
73
74     if (ix.isValid())
75         view->selectionModel()->select (ix,QItemSelectionModel::ClearAndSelect );
76 }
77
78 void SlideEditor::nextSlide()
79 {
80     QModelIndex ix=slideModel->getSelectedIndex();
81     if (ix.isValid())
82         ix=view->indexBelow (ix);
83     if (ix.isValid())
84         view->selectionModel()->select (ix,QItemSelectionModel::ClearAndSelect );
85 }
86
87 void SlideEditor::addSlide()
88 {
89     vymModel->addSlide();
90 }
91
92 void SlideEditor::editSlide() // FIXME-4 not used yet
93 {
94 }
95
96 void SlideEditor::deleteSlide() 
97 {
98     SlideItem *si=slideModel->getSelectedItem();
99     vymModel->deleteSlide(si);
100 }
101
102 void SlideEditor::moveSlideUp() 
103 {
104     vymModel->moveSlideUp ();   
105 }
106
107 void SlideEditor::moveSlideDown() 
108 {
109     vymModel->moveSlideDown (); 
110 }
111
112 void SlideEditor::updateSelection(QItemSelection, QItemSelection)
113 {
114     // FIXME-3 updateActions missing, e.g. state for moveUp/down
115 }
116