void UIGChooser::prepareConnections() { /* Chooser-model connections: */ connect(m_pChooserModel, SIGNAL(sigRootItemResized(const QSizeF&, int)), m_pChooserView, SLOT(sltHandleRootItemResized(const QSizeF&, int))); connect(m_pChooserModel, SIGNAL(sigSelectionChanged()), this, SIGNAL(sigSelectionChanged())); connect(m_pChooserModel, SIGNAL(sigSlidingStarted()), this, SIGNAL(sigSlidingStarted())); /* Chooser-view connections: */ connect(m_pChooserView, SIGNAL(sigResized()), m_pChooserModel, SLOT(sltHandleViewResized())); /* Global connections: */ connect(gVBoxEvents, SIGNAL(sigMachineStateChange(QString, KMachineState)), m_pChooserModel, SLOT(sltMachineStateChanged(QString, KMachineState))); connect(gVBoxEvents, SIGNAL(sigMachineDataChange(QString)), m_pChooserModel, SLOT(sltMachineDataChanged(QString))); connect(gVBoxEvents, SIGNAL(sigMachineRegistered(QString, bool)), m_pChooserModel, SLOT(sltMachineRegistered(QString, bool))); connect(gVBoxEvents, SIGNAL(sigSessionStateChange(QString, KSessionState)), m_pChooserModel, SLOT(sltSessionStateChanged(QString, KSessionState))); connect(gVBoxEvents, SIGNAL(sigSnapshotChange(QString, QString)), m_pChooserModel, SLOT(sltSnapshotChanged(QString, QString))); }
void ToolBarView::selectionChanged( const QItemSelection &selected, const QItemSelection &deselected ) { if ( selected.indexes().size() > 0 ) { m_selected = selected.indexes().first().row(); QModelIndex index = model()->index( m_selected, (int)Fn::Property::TYPE ); int type = model()->data( index, Qt::DisplayRole ).toInt(); emit( sigSelectionChanged( type ) ); } }
void COverlayDistance::mousePressEvent(QMouseEvent * e) { if(thePoint == 0) return; IMap& map = CMapDB::self().getMap(); if(e->button() == Qt::LeftButton) { if(doMove) { if(*thePoint == points.last() && addType == eAtEnd) { const int size = subline.size(); if(size < 2) { pt_t pt; pt.u = e->pos().x(); pt.v = e->pos().y(); map.convertPt2Rad(pt.u, pt.v); points.push_back(pt); } else { pt_t pt; pt.u = subline[1].x(); pt.v = subline[1].y(); map.convertPt2Rad(pt.u, pt.v); *thePoint = pt; for(int i = 2; i < size; i++) { pt.u = subline[i].x(); pt.v = subline[i].y(); map.convertPt2Rad(pt.u, pt.v); points.push_back(pt); } points.push_back(pt); } thePointBefor = &(*(points.end() - 2)); thePoint = &points.last(); thePointAfter = 0; } else if(*thePoint == points.first() && addType == eAtEnd) { const int size = subline.size(); if(size < 2) { pt_t pt; pt.u = e->pos().x(); pt.v = e->pos().y(); map.convertPt2Rad(pt.u, pt.v); points.push_front(pt); } else { pt_t pt; pt.u = subline[1].x(); pt.v = subline[1].y(); map.convertPt2Rad(pt.u, pt.v); *thePoint = pt; for(int i = 2; i < size; i++) { pt.u = subline[i].x(); pt.v = subline[i].y(); map.convertPt2Rad(pt.u, pt.v); points.push_front(pt); } points.push_front(pt); } thePointBefor = 0; thePoint = &points.first(); thePointAfter = &(*(points.begin() + 1)); } else if(addType != eNone) { pt_t pt; const int size = subline.size(); int idx = points.indexOf(*thePoint); if(size > 2) { if(addType == eAfter) { pt.u = subline[0].x(); pt.v = subline[0].y(); map.convertPt2Rad(pt.u, pt.v); points[idx - 1] = pt; pt.u = subline[size - 1].x(); pt.v = subline[size - 1].y(); map.convertPt2Rad(pt.u, pt.v); points[idx] = pt; for(int i = 1; i < size - 1; i++) { pt.u = subline[i].x(); pt.v = subline[i].y(); map.convertPt2Rad(pt.u, pt.v); points.insert(idx - 1 + i,pt); } idx += size - 2; } else { pt.u = subline[0].x(); pt.v = subline[0].y(); map.convertPt2Rad(pt.u, pt.v); points[idx + 1] = pt; pt.u = subline[size - 1].x(); pt.v = subline[size - 1].y(); map.convertPt2Rad(pt.u, pt.v); points[idx] = pt; for(int i = 1; i < size - 1; i++) { pt.u = subline[i].x(); pt.v = subline[i].y(); map.convertPt2Rad(pt.u, pt.v); points.insert(idx+1,pt); } } } if(addType == eAfter) { idx++; } pt.u = e->pos().x(); pt.v = e->pos().y(); map.convertPt2Rad(pt.u, pt.v); points.insert(idx,pt); thePointBefor = idx ? &points[idx - 1] : 0; thePoint = &points[idx]; thePointAfter = (idx + 1) == points.count() ? 0 : &points[idx + 1]; } else { pt_t pt; pt.u = e->pos().x(); pt.v = e->pos().y(); map.convertPt2Rad(pt.u, pt.v); *thePoint = pt; doMove = false; addType = eNone; thePoint = 0; thePointBefor = 0; thePointAfter = 0; } subline.clear(); calcDistance(); theMainWindow->getCanvas()->update(); //if(addType == eNone) // why? //{ emit sigChanged(); //} return; } if(!doFuncWheel) { selectedPoints.clear(); selectedPoints << points.indexOf(*thePoint); emit sigSelectionChanged(); doFuncWheel = true; theMainWindow->getCanvas()->update(); return; } QPoint pos1 = e->pos(); projXY pt = *thePoint; map.convertRad2Pt(pt.u, pt.v); pos1 -= QPoint(pt.u - 24, pt.v - 24); if(rectDel.contains(pos1)) { int idx = points.indexOf(*thePoint); if(idx == -1) return; points.takeAt(idx); if(points.isEmpty()) { QStringList keys(getKey()); COverlayDB::self().delOverlays(keys); } calcDistance(); doFuncWheel = false; thePoint = 0; thePointBefor = 0; thePointAfter = 0; emit sigChanged(); } else if(rectMove.contains(pos1)) { QApplication::setOverrideCursor(QCursor(QPixmap(":/cursors/cursorMoveWpt.png"),0,0)); doMove = true; doFuncWheel = false; savePoint = *thePoint; } else if(rectAdd1.contains(pos1)) { int idx = points.indexOf(*thePoint); if(idx == -1) return; pt_t pt; pt.u = e->pos().x(); pt.v = e->pos().y(); map.convertPt2Rad(pt.u, pt.v); points.insert(idx,pt); thePointBefor = idx ? &points[idx - 1] : 0; thePoint = &points[idx]; thePointAfter = (idx + 1) == points.count() ? 0 : &points[idx + 1]; doMove = true; addType = eBefore; doFuncWheel = false; theMainWindow->getCanvas()->update(); } else if(rectAdd2.contains(pos1)) { int idx = points.indexOf(*thePoint); if(idx == -1) return; idx++; pt_t pt; pt.u = e->pos().x(); pt.v = e->pos().y(); map.convertPt2Rad(pt.u, pt.v); points.insert(idx,pt); thePointBefor = idx ? &points[idx - 1] : 0; thePoint = &points[idx]; thePointAfter = (idx + 1) == points.count() ? 0 : &points[idx + 1]; doMove = true; addType = eAfter; doFuncWheel = false; theMainWindow->getCanvas()->update(); } else { doFuncWheel = false; thePoint = 0; thePointBefor = 0; thePointAfter = 0; } } else if(e->button() == Qt::RightButton) { looseFocus(); return; } selectedPoints.clear(); if(addType == eNone) { emit sigSelectionChanged(); } }