changeset 59:57c85a9d9b4a

(none)
author benoitrigolleau
date Mon, 28 May 2007 08:14:40 +0000
parents b3c3a5fa185f
children 32b4949086a5
files view/View.cpp widgets/GenericItemList.cpp widgets/GenericItemList.h widgets/ItemContainer.cpp widgets/LayerViewerWidget.cpp
diffstat 5 files changed, 32 insertions(+), 19 deletions(-) [+]
line wrap: on
line diff
--- a/view/View.cpp	Fri May 25 12:36:35 2007 +0000
+++ b/view/View.cpp	Mon May 28 08:14:40 2007 +0000
@@ -496,8 +496,8 @@
 	if (*i == layer) {
 	    m_layers.erase(i);
 	    if (m_progressBars.find(layer) != m_progressBars.end()) {
-		delete m_progressBars[layer];
-		m_progressBars.erase(layer);
+			delete m_progressBars[layer];
+			m_progressBars.erase(layer);
 	    }
 	    break;
 	}
--- a/widgets/GenericItemList.cpp	Fri May 25 12:36:35 2007 +0000
+++ b/widgets/GenericItemList.cpp	Mon May 28 08:14:40 2007 +0000
@@ -27,6 +27,7 @@
 GenericItemList::GenericItemList(QWidget *parent): QFrame(parent){
 	setAcceptDrops(true);
 	m_clicked=false;
+	m_acceptDrag = true;
 	//this->setFocusPolicy(Qt::ClickFocus);
 }
 
@@ -41,6 +42,11 @@
 
 }
 
+void GenericItemList::setAcceptDrag(bool status){
+	m_acceptDrag = status;
+}
+
+/*********************SLOT*********************/
 
 void GenericItemList::mousePressEvent(QMouseEvent *evt)
 {
@@ -66,7 +72,7 @@
 {
 	if(m_clicked){
 		int distance = (evt->pos() - m_startPos).manhattanLength();
-		if(distance>=QApplication::startDragDistance()){
+		if(distance>=QApplication::startDragDistance() && m_acceptDrag){
 			startDrag();
 		}
 	}
--- a/widgets/GenericItemList.h	Fri May 25 12:36:35 2007 +0000
+++ b/widgets/GenericItemList.h	Mon May 28 08:14:40 2007 +0000
@@ -27,6 +27,7 @@
 	void setData(QVariant &data);
 	void setIndex(int index);
 	virtual void configAction();
+	void setAcceptDrag(bool status);
 
 signals :
 	void doubleClicked();
@@ -50,6 +51,7 @@
 	void startDrag();
 	QPoint m_startPos;
 	bool m_clicked;
+	bool m_acceptDrag;
 
 
 };
--- a/widgets/ItemContainer.cpp	Fri May 25 12:36:35 2007 +0000
+++ b/widgets/ItemContainer.cpp	Mon May 28 08:14:40 2007 +0000
@@ -37,8 +37,11 @@
 
 void ItemContainer::addItem(GenericItemList *item){
 	m_map->insert(m_cpt,item);
-	m_linkedList->append(m_cpt);
+	m_linkedList->prepend(m_cpt);
 	item->setIndex(m_cpt);
+	if(m_cpt==0){
+		item->setAcceptDrag(false);
+	}
 	
 	std::cerr << "add Item" << std::endl;
 	connect(item, SIGNAL(itemDropped(int, int)),
@@ -46,7 +49,7 @@
 	connect(item, SIGNAL(selected(int)),
 	    this, SLOT(newItemSelected(int)));
 	
-	m_itemLayout->addWidget(item);
+	m_itemLayout->insertWidget(0,item);
 	m_cpt++;
 }
 
@@ -82,16 +85,15 @@
 
 QLinkedList<int>::iterator ItemContainer::find(int value)
 {
-	QLinkedList<int>::iterator iter;
-	for(iter = m_linkedList->begin(); iter != m_linkedList->end(); iter++){
-		if(*iter == value)
-			return iter;
+	QLinkedList<int>::iterator i = m_linkedList->begin();
+	while (i != m_linkedList->end() && *i != value){
+		++i;
 	}
-	return m_linkedList->end();
+	return i;
 }
 
 void ItemContainer::reorganize(){
-	for (int i = 0; i < m_itemLayout->count(); ++i){
+	for (int i = 0; i < m_itemLayout->count(); i++){
 		m_itemLayout->removeItem(m_itemLayout->itemAt(i));
     }
 	QLinkedList<int>::iterator iter;
@@ -135,13 +137,20 @@
 	if (m_linkedList->count()<= 1){
 		return;
 	}
+	
+	QLinkedList<int>::iterator iter;
+	// return if current item is the first
+	iter  = m_linkedList->end()-1;
+	if(*iter==m_currentItem){
+		return;
+	}
 	// return if current item is on top
-	QLinkedList<int>::iterator iter;
 	iter  = m_linkedList->begin();
 	if(*iter==m_currentItem){
 		return;
 	}
 	
+	
 	// move item
 	for(iter = m_linkedList->begin()+1; iter != m_linkedList->end(); iter++){
 		if(*iter == m_currentItem){
@@ -161,16 +170,12 @@
 	}
 	// return if current item is on bottom
 	QLinkedList<int>::iterator iter;
-	iter  = m_linkedList->end();
-	if(*iter==m_currentItem){
+	iter  = m_linkedList->end()-1;
+	if(*iter==m_currentItem || *(iter-1)==m_currentItem){
 		return;
 	}
 	
 	//move item
-	// It's crazy !!!!!! this line run ..... but, it's impossible !!!! 
-	// the good line is this one : for(iter = m_linkedList->end()-1; iter != m_linkedList->begin(); iter--){
-	// but I don't handerstand why, it don't run.
-	// @##*$$# QT4 or C++  !!!!!!!!!
 	for(iter = m_linkedList->end()-2; iter != m_linkedList->begin()-1; iter--){
 		if(*iter == m_currentItem){
 			int itemOnBottom = *(iter+1);
--- a/widgets/LayerViewerWidget.cpp	Fri May 25 12:36:35 2007 +0000
+++ b/widgets/LayerViewerWidget.cpp	Mon May 28 08:14:40 2007 +0000
@@ -135,5 +135,5 @@
 }
 
 void LayerViewerWidget::removeSelectedItemRequested(){
-  std::cerr << "removeSelectedItemRequested" << std::endl;
+
 }
\ No newline at end of file