|
From: Darius S. <dst...@us...> - 2001-07-24 11:34:52
|
Update of /cvsroot/kuml/kuml/kuml_gui/src/ige/common/editors
In directory usw-pr-cvs1:/tmp/cvs-serv15670/common/editors
Modified Files:
AbstractEditor.cpp AbstractEditor.h Editor.h
SelectionLayer.cpp SelectionLayer.h
StandardManipulationLayer.cpp StandardManipulationLayer.h
StandardSelectionLayer.cpp
Log Message:
Added more core implementation. Editor now supports simple line
Index: AbstractEditor.cpp
===================================================================
RCS file: /cvsroot/kuml/kuml/kuml_gui/src/ige/common/editors/AbstractEditor.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** AbstractEditor.cpp 2001/07/22 23:21:38 1.4
--- AbstractEditor.cpp 2001/07/24 11:34:49 1.5
***************
*** 33,50 ****
void AbstractEditor::select(SelectableView *view){
! QRect damagedArea;
if(view->isSelected()) {
view->select();
! damagedArea = damagedArea.unite(view->bounds());
}
! getViewer()->refresh(damagedArea);
}
void AbstractEditor::unselect(SelectableView *view) {
! QRect damagedArea;
if(view->isSelected()) {
view->unselect();
! damagedArea = damagedArea.unite(view->bounds());
}
! getViewer()->refresh(damagedArea);
}
void AbstractEditor::unselectAll() {
--- 33,50 ----
void AbstractEditor::select(SelectableView *view){
! // QRect damagedArea;
if(view->isSelected()) {
view->select();
! // damagedArea = damagedArea.unite(view->bounds());
}
! // getViewer()->refresh(damagedArea);
}
void AbstractEditor::unselect(SelectableView *view) {
! // QRect damagedArea;
if(view->isSelected()) {
view->unselect();
! // damagedArea = damagedArea.unite(view->bounds());
}
! // getViewer()->refresh(damagedArea);
}
void AbstractEditor::unselectAll() {
***************
*** 54,68 ****
QRect damagedArea;
! while ( iter != iterEnd ) {
SelectableView *view =(SelectableView*) *iter;
if(view->isSelected()) {
- view->unselect();
damagedArea = damagedArea.unite(view->bounds());
}
++iter;
}
! getManipulationLayer()->removeAllManipulator();
! getSelectionLayer()->removeAllHandles();
getViewer()->refresh(damagedArea);
--- 54,69 ----
QRect damagedArea;
! while ( iter != iterEnd ) {
SelectableView *view =(SelectableView*) *iter;
if(view->isSelected()) {
damagedArea = damagedArea.unite(view->bounds());
+ damagedArea = damagedArea.unite(view->getManipulator()->bounds());
+ view->unselect(false);
}
++iter;
}
! // getManipulationLayer()->removeAllManipulator();
! // getSelectionLayer()->removeAllHandles();
getViewer()->refresh(damagedArea);
***************
*** 92,99 ****
--- 93,121 ----
}
+ void AbstractEditor::removeManipulator(ViewManipulator *m) {
+ StandardManipulationLayer *ml = (StandardManipulationLayer*)getManipulationLayer();
+ vector<ViewManipulator*>::iterator iter = ml->getManipulatorIterator();
+ SelectableView *manipulatedView = (SelectableView *)m->getTarget();
+
+ while (iter != ml->getManipulatorIteratorEnd()) {
+ if(*iter = m) {
+ ml->removeManipulator(m);
+ manipulatedView->setManipulator(0);
+
+ // The deletion of the handles should be done in the destructor of the selector object
+ // m->deleteAllHandles();
+ return;
+ }
+ ++iter;
+ }
+ }
ViewManipulator* AbstractEditor::addManipulator(SelectableView *view){
SelectionLayer *sl = getSelectionLayer();
ViewManipulator *m = view->createManipulator();
ManipulationLayer *ml = getManipulationLayer();
+
+ // Its valid to not provide a manipulator
+ if(m == 0)
+ return 0;
CHECK_PTR(m);
Index: AbstractEditor.h
===================================================================
RCS file: /cvsroot/kuml/kuml/kuml_gui/src/ige/common/editors/AbstractEditor.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** AbstractEditor.h 2001/07/22 23:21:38 1.2
--- AbstractEditor.h 2001/07/24 11:34:49 1.3
***************
*** 67,70 ****
--- 67,71 ----
virtual ViewManipulator* addManipulator(SelectableView *view);
+ virtual void removeManipulator(ViewManipulator *m);
/**
Index: Editor.h
===================================================================
RCS file: /cvsroot/kuml/kuml/kuml_gui/src/ige/common/editors/Editor.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** Editor.h 2001/07/22 23:21:38 1.2
--- Editor.h 2001/07/24 11:34:49 1.3
***************
*** 64,67 ****
--- 64,68 ----
virtual ViewManipulator* addManipulator(SelectableView *view) = 0;
+ virtual void removeManipulator(ViewManipulator *m) = 0;
virtual ManipulationLayer *getManipulationLayer() = 0;
Index: SelectionLayer.cpp
===================================================================
RCS file: /cvsroot/kuml/kuml/kuml_gui/src/ige/common/editors/SelectionLayer.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** SelectionLayer.cpp 2001/07/20 15:57:29 1.2
--- SelectionLayer.cpp 2001/07/24 11:34:49 1.3
***************
*** 19,22 ****
--- 19,25 ----
#include "SelectionLayer.h"
#include "LayerVisitor.h"
+ #include "ige/common/editors/Viewer.h"
+ #include "ige/common/views/SelectableView.h"
+ #include "ige/common/editors/DataLayer.h"
bool SelectionLayer::isAbove (Layer *other) {
***************
*** 30,33 ****
}
SelectionLayer::SelectionLayer(Viewer* v) : AbstractLayer(v) {
! qDebug("SelectionLayer created");
}
--- 33,49 ----
}
SelectionLayer::SelectionLayer(Viewer* v) : AbstractLayer(v) {
! qDebug("SelectionLayer created");
! }
! void SelectionLayer::selectViewsInsideRect(const QRect& rect) {
! DataLayer *dl = getViewer()->getDataLayer();
! vector<View*>::iterator iter = dl->getDataIterator();
! SelectableView *view = 0;
!
! while (iter != dl->getDataIteratorEnd()) {
! view = (SelectableView*)*iter;
! if(rect.contains(view->bounds())) {
! view->select();
! }
! ++iter;
! }
}
Index: SelectionLayer.h
===================================================================
RCS file: /cvsroot/kuml/kuml/kuml_gui/src/ige/common/editors/SelectionLayer.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** SelectionLayer.h 2001/07/22 23:21:38 1.3
--- SelectionLayer.h 2001/07/24 11:34:49 1.4
***************
*** 47,52 ****
virtual void removeAllHandles() = 0;
! virtual bool isAbove(Layer *other);
};
--- 47,53 ----
virtual void removeAllHandles() = 0;
! virtual void selectViewsInsideRect(const QRect& rect);
+ virtual bool isAbove(Layer *other);
};
Index: StandardManipulationLayer.cpp
===================================================================
RCS file: /cvsroot/kuml/kuml/kuml_gui/src/ige/common/editors/StandardManipulationLayer.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** StandardManipulationLayer.cpp 2001/07/22 23:21:38 1.3
--- StandardManipulationLayer.cpp 2001/07/24 11:34:49 1.4
***************
*** 27,32 ****
while ( iter != manipulators.end()) {
! if(*iter == m)
manipulators.erase(iter);
++iter;
}
--- 27,34 ----
while ( iter != manipulators.end()) {
! if(*iter == m) {
manipulators.erase(iter);
+ return;
+ }
++iter;
}
***************
*** 63,65 ****
--- 65,70 ----
ManipulatorVectorIter StandardManipulationLayer::getManipulatorIterator() {
return manipulators.begin();
+ }
+ ManipulatorVectorIter StandardManipulationLayer::getManipulatorIteratorEnd() {
+ return manipulators.end();
}
Index: StandardManipulationLayer.h
===================================================================
RCS file: /cvsroot/kuml/kuml/kuml_gui/src/ige/common/editors/StandardManipulationLayer.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** StandardManipulationLayer.h 2001/07/22 23:21:38 1.3
--- StandardManipulationLayer.h 2001/07/24 11:34:49 1.4
***************
*** 31,34 ****
--- 31,35 ----
ManipulatorVectorIter getManipulatorIterator();
+ ManipulatorVectorIter getManipulatorIteratorEnd();
virtual void paintContents(QPainter * p);
Index: StandardSelectionLayer.cpp
===================================================================
RCS file: /cvsroot/kuml/kuml/kuml_gui/src/ige/common/editors/StandardSelectionLayer.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** StandardSelectionLayer.cpp 2001/07/22 23:21:38 1.3
--- StandardSelectionLayer.cpp 2001/07/24 11:34:49 1.4
***************
*** 21,24 ****
--- 21,25 ----
#include "StandardSelectionLayer.h"
#include "ige/common/views/SelectionHandle.h"
+ #include "ige/common/editors/Viewer.h"
void StandardSelectionLayer::addHandle(SelectionHandle *h) {
***************
*** 29,34 ****
while ( iter != handles.end()) {
! if(*iter == h)
handles.erase(iter);
++iter;
}
--- 30,37 ----
while ( iter != handles.end()) {
! if(*iter == h) {
handles.erase(iter);
+ return;
+ }
++iter;
}
***************
*** 59,76 ****
}
}
-
- /* if(multiSelection)
- p->drawRect(startPoint.x(), startPoint.y(), endPoint.x(), endPoint.y());
- else {
- vector<SelectionHandle*>::iterator iter = handles.begin();
! while ( iter != handles.end()) {
! (*iter)->paint(p);
! ++iter;
! }
! }*/
}
void StandardSelectionLayer::endMultiSelection(){
multiSelection = false;
}
bool StandardSelectionLayer::isMultiSelection(){
--- 62,83 ----
}
}
! if(multiSelection) {
! /* QRect rect(startPoint, endPoint);
! rect = rect.normalize();
! p->drawWinFocusRect(rect);*/
! p->drawWinFocusRect(QRect(startPoint, endPoint));
! }
}
void StandardSelectionLayer::endMultiSelection(){
multiSelection = false;
+ QRect damagedArea(startPoint, endPoint);
+ damagedArea = damagedArea.normalize();
+
+ getViewer()->refresh(damagedArea);
+
+ QRect normRect(startPoint, endPoint);
+ normRect = normRect.normalize();
+ selectViewsInsideRect(normRect);
}
bool StandardSelectionLayer::isMultiSelection(){
***************
*** 87,92 ****
--- 94,107 ----
}
void StandardSelectionLayer::continueMultiSelection(int x, int y){
+ QRect damagedArea(startPoint, endPoint);
+ damagedArea = damagedArea.normalize();
+
endPoint.setX(x);
endPoint.setY(y);
+
+ damagedArea = damagedArea.unite(QRect(startPoint, endPoint));
+
+ // getViewer()->refreshAll();
+ getViewer()->refresh(damagedArea);
}
void StandardSelectionLayer::startMultiSelection(int x, int y){
|