Refactoring.
--HG-- branch : develop
This commit is contained in:
parent
f2860076ee
commit
3b908ae328
|
@ -45,40 +45,35 @@
|
||||||
using a spin box widget.
|
using a spin box widget.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <QtGui>
|
|
||||||
#include "doubledelegate.h"
|
#include "doubledelegate.h"
|
||||||
|
|
||||||
DoubleSpinBoxDelegate::DoubleSpinBoxDelegate(QObject *parent)
|
QWidget *DoubleSpinBoxDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option,
|
||||||
: QItemDelegate(parent)
|
const QModelIndex &index ) const{
|
||||||
{
|
Q_UNUSED(option);
|
||||||
}
|
Q_UNUSED(index);
|
||||||
|
QDoubleSpinBox *editor = new QDoubleSpinBox(parent);
|
||||||
QWidget *DoubleSpinBoxDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &/* option */,
|
editor->setMinimum(-10000.0);
|
||||||
const QModelIndex &/* index */) const{
|
editor->setMaximum(10000.0);
|
||||||
QDoubleSpinBox *editor = new QDoubleSpinBox(parent);
|
return editor;
|
||||||
editor->setMinimum(-10000.0);
|
}
|
||||||
editor->setMaximum(10000.0);
|
|
||||||
|
void DoubleSpinBoxDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const{
|
||||||
return editor;
|
qreal value = index.model()->data(index, Qt::EditRole).toDouble();
|
||||||
}
|
|
||||||
|
QDoubleSpinBox *spinBox = static_cast<QDoubleSpinBox*>(editor);
|
||||||
void DoubleSpinBoxDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const{
|
spinBox->setValue(value);
|
||||||
qreal value = index.model()->data(index, Qt::EditRole).toDouble();
|
}
|
||||||
|
|
||||||
QDoubleSpinBox *spinBox = static_cast<QDoubleSpinBox*>(editor);
|
void DoubleSpinBoxDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const{
|
||||||
spinBox->setValue(value);
|
QDoubleSpinBox *spinBox = static_cast<QDoubleSpinBox*>(editor);
|
||||||
}
|
spinBox->interpretText();
|
||||||
|
qreal value = spinBox->value();
|
||||||
void DoubleSpinBoxDelegate::setModelData(QWidget *editor, QAbstractItemModel *model,
|
|
||||||
const QModelIndex &index) const{
|
model->setData(index, value, Qt::EditRole);
|
||||||
QDoubleSpinBox *spinBox = static_cast<QDoubleSpinBox*>(editor);
|
}
|
||||||
spinBox->interpretText();
|
|
||||||
qreal value = spinBox->value();
|
void DoubleSpinBoxDelegate::updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option,
|
||||||
|
const QModelIndex &index) const{
|
||||||
model->setData(index, value, Qt::EditRole);
|
Q_UNUSED(index)
|
||||||
}
|
editor->setGeometry(option.rect);
|
||||||
|
|
||||||
void DoubleSpinBoxDelegate::updateEditorGeometry(QWidget *editor,
|
|
||||||
const QStyleOptionViewItem &option, const QModelIndex &/* index */) const{
|
|
||||||
editor->setGeometry(option.rect);
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,26 +42,15 @@
|
||||||
#define DOUBLEDELEGATE_H
|
#define DOUBLEDELEGATE_H
|
||||||
|
|
||||||
#include <QItemDelegate>
|
#include <QItemDelegate>
|
||||||
#include <QModelIndex>
|
|
||||||
#include <QObject>
|
|
||||||
#include <QSize>
|
|
||||||
#include <QSpinBox>
|
|
||||||
|
|
||||||
class DoubleSpinBoxDelegate : public QItemDelegate{
|
class DoubleSpinBoxDelegate : public QItemDelegate{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
DoubleSpinBoxDelegate(QObject *parent = 0);
|
DoubleSpinBoxDelegate(QObject *parent = 0): QItemDelegate(parent){}
|
||||||
|
QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const;
|
||||||
QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option,
|
void setEditorData(QWidget *editor, const QModelIndex &index) const;
|
||||||
const QModelIndex &index) const;
|
void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const;
|
||||||
|
void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const;
|
||||||
void setEditorData(QWidget *editor, const QModelIndex &index) const;
|
|
||||||
void setModelData(QWidget *editor, QAbstractItemModel *model,
|
|
||||||
const QModelIndex &index) const;
|
|
||||||
|
|
||||||
void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option,
|
|
||||||
const QModelIndex &index) const;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -20,18 +20,12 @@
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include "vapplication.h"
|
#include "vapplication.h"
|
||||||
#include <QtGui>
|
|
||||||
#include <QMessageBox>
|
|
||||||
#include "exception/vexceptionobjecterror.h"
|
#include "exception/vexceptionobjecterror.h"
|
||||||
#include "exception/vexceptionbadid.h"
|
#include "exception/vexceptionbadid.h"
|
||||||
#include "exception/vexceptionconversionerror.h"
|
#include "exception/vexceptionconversionerror.h"
|
||||||
#include "exception/vexceptionemptyparameter.h"
|
#include "exception/vexceptionemptyparameter.h"
|
||||||
#include "exception/vexceptionwrongparameterid.h"
|
#include "exception/vexceptionwrongparameterid.h"
|
||||||
|
|
||||||
VApplication::VApplication(int & argc, char ** argv) :
|
|
||||||
QApplication(argc, argv){
|
|
||||||
}
|
|
||||||
|
|
||||||
// reimplemented from QApplication so we can throw exceptions in slots
|
// reimplemented from QApplication so we can throw exceptions in slots
|
||||||
bool VApplication::notify(QObject *receiver, QEvent *event){
|
bool VApplication::notify(QObject *receiver, QEvent *event){
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -3,12 +3,11 @@
|
||||||
|
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
|
|
||||||
class VApplication : public QApplication
|
class VApplication : public QApplication{
|
||||||
{
|
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
VApplication(int &argc, char ** argv);
|
VApplication(int &argc, char ** argv): QApplication(argc, argv){}
|
||||||
virtual ~VApplication() { }
|
virtual ~VApplication() {}
|
||||||
virtual bool notify(QObject * receiver, QEvent * event);
|
virtual bool notify(QObject * receiver, QEvent * event);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -20,10 +20,6 @@
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include "vcontrolpointspline.h"
|
#include "vcontrolpointspline.h"
|
||||||
#include <QPen>
|
|
||||||
#include <QBrush>
|
|
||||||
#include <QGraphicsScene>
|
|
||||||
#include <QDebug>
|
|
||||||
|
|
||||||
VControlPointSpline::VControlPointSpline(const qint32 &indexSpline, SplinePoint::Position position,
|
VControlPointSpline::VControlPointSpline(const qint32 &indexSpline, SplinePoint::Position position,
|
||||||
const QPointF &controlPoint, const QPointF &splinePoint,
|
const QPointF &controlPoint, const QPointF &splinePoint,
|
||||||
|
|
|
@ -23,38 +23,35 @@
|
||||||
#define VCONTROLPOINTSPLINE_H
|
#define VCONTROLPOINTSPLINE_H
|
||||||
|
|
||||||
#include <QGraphicsEllipseItem>
|
#include <QGraphicsEllipseItem>
|
||||||
#include <QGraphicsLineItem>
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include "geometry/vsplinepath.h"
|
#include "geometry/vsplinepath.h"
|
||||||
|
|
||||||
class VControlPointSpline : public QObject, public QGraphicsEllipseItem
|
class VControlPointSpline : public QObject, public QGraphicsEllipseItem{
|
||||||
{
|
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
VControlPointSpline(const qint32 &indexSpline, SplinePoint::Position position,
|
VControlPointSpline(const qint32 &indexSpline, SplinePoint::Position position,
|
||||||
const QPointF &controlPoint, const QPointF &splinePoint,
|
const QPointF &controlPoint, const QPointF &splinePoint,
|
||||||
QGraphicsItem * parent = 0);
|
QGraphicsItem * parent = 0);
|
||||||
signals:
|
signals:
|
||||||
void ControlPointChangePosition(const qint32 &indexSpline, SplinePoint::Position position,
|
void ControlPointChangePosition(const qint32 &indexSpline, SplinePoint::Position position,
|
||||||
const QPointF pos);
|
const QPointF pos);
|
||||||
public slots:
|
public slots:
|
||||||
void RefreshLine(const qint32 &indexSpline, SplinePoint::Position pos,
|
void RefreshLine(const qint32 &indexSpline, SplinePoint::Position pos, const QPointF &controlPoint,
|
||||||
const QPointF &controlPoint, const QPointF &splinePoint);
|
const QPointF &splinePoint);
|
||||||
void setEnabledPoint(bool enable);
|
void setEnabledPoint(bool enable);
|
||||||
protected:
|
protected:
|
||||||
qreal radius;
|
qreal radius;
|
||||||
QGraphicsLineItem *controlLine;
|
QGraphicsLineItem *controlLine;
|
||||||
virtual void hoverMoveEvent ( QGraphicsSceneHoverEvent * event );
|
virtual void hoverMoveEvent ( QGraphicsSceneHoverEvent * event );
|
||||||
virtual void hoverLeaveEvent ( QGraphicsSceneHoverEvent * event );
|
virtual void hoverLeaveEvent ( QGraphicsSceneHoverEvent * event );
|
||||||
QVariant itemChange ( GraphicsItemChange change, const QVariant &value );
|
QVariant itemChange ( GraphicsItemChange change, const QVariant &value );
|
||||||
private:
|
private:
|
||||||
Q_DISABLE_COPY(VControlPointSpline)
|
Q_DISABLE_COPY(VControlPointSpline)
|
||||||
qint32 indexSpline;
|
qint32 indexSpline;
|
||||||
SplinePoint::Position position;
|
SplinePoint::Position position;
|
||||||
qint32 LineIntersectCircle(QPointF center, qreal radius, QLineF line, QPointF &p1,
|
qint32 LineIntersectCircle(QPointF center, qreal radius, QLineF line, QPointF &p1, QPointF &p2) const;
|
||||||
QPointF &p2) const;
|
QPointF ClosestPoint(QLineF line, QPointF p) const;
|
||||||
QPointF ClosestPoint(QLineF line, QPointF p) const;
|
QPointF addVector (QPointF p, QPointF p1, QPointF p2, qreal k) const;
|
||||||
QPointF addVector (QPointF p, QPointF p1, QPointF p2, qreal k) const;
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -20,9 +20,6 @@
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include "vgraphicssimpletextitem.h"
|
#include "vgraphicssimpletextitem.h"
|
||||||
#include <QGraphicsScene>
|
|
||||||
#include <QEvent>
|
|
||||||
#include <QDebug>
|
|
||||||
|
|
||||||
VGraphicsSimpleTextItem::VGraphicsSimpleTextItem(QGraphicsItem * parent):QGraphicsSimpleTextItem(parent),
|
VGraphicsSimpleTextItem::VGraphicsSimpleTextItem(QGraphicsItem * parent):QGraphicsSimpleTextItem(parent),
|
||||||
fontSize(0){
|
fontSize(0){
|
||||||
|
|
|
@ -20,16 +20,6 @@
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include "vitem.h"
|
#include "vitem.h"
|
||||||
#include <QGraphicsScene>
|
|
||||||
#include <QDebug>
|
|
||||||
#include "options.h"
|
|
||||||
|
|
||||||
VItem::VItem():numInOutList(0){
|
|
||||||
}
|
|
||||||
|
|
||||||
VItem::VItem ( int numInList, QGraphicsItem * parent ):QGraphicsPathItem ( parent ),
|
|
||||||
numInOutList(numInList){
|
|
||||||
}
|
|
||||||
|
|
||||||
VItem::VItem (const QPainterPath & path, int numInList, QGraphicsItem * parent ):
|
VItem::VItem (const QPainterPath & path, int numInList, QGraphicsItem * parent ):
|
||||||
QGraphicsPathItem ( path, parent ), numInOutList(numInList){
|
QGraphicsPathItem ( path, parent ), numInOutList(numInList){
|
||||||
|
@ -77,7 +67,3 @@ QVariant VItem::itemChange( GraphicsItemChange change, const QVariant &value ){
|
||||||
void VItem::LengthChanged(){
|
void VItem::LengthChanged(){
|
||||||
checkItemChange();
|
checkItemChange();
|
||||||
}
|
}
|
||||||
|
|
||||||
void VItem::SetIndexInList( qint32 index ){
|
|
||||||
numInOutList = index;
|
|
||||||
}
|
|
||||||
|
|
|
@ -35,14 +35,14 @@ public:
|
||||||
* @brief VItem конструктор за замовчуванням
|
* @brief VItem конструктор за замовчуванням
|
||||||
*Конструктор генерує пусту деталь з номером в списку, що дорівнює 0.
|
*Конструктор генерує пусту деталь з номером в списку, що дорівнює 0.
|
||||||
*/
|
*/
|
||||||
VItem ();
|
VItem ():numInOutList(0){}
|
||||||
/**
|
/**
|
||||||
* @brief VItem конструктор
|
* @brief VItem конструктор
|
||||||
* @param numInList номер в списку деталей, що передається у вікно де
|
* @param numInList номер в списку деталей, що передається у вікно де
|
||||||
*укладаються деталі.
|
*укладаються деталі.
|
||||||
* @param parent батьківський об'єкт на сцені для даного. За замовчуванням немає.
|
* @param parent батьківський об'єкт на сцені для даного. За замовчуванням немає.
|
||||||
*/
|
*/
|
||||||
VItem (int numInList, QGraphicsItem * parent = 0);
|
VItem (int numInList, QGraphicsItem * parent = 0):QGraphicsPathItem (parent), numInOutList(numInList){}
|
||||||
/**
|
/**
|
||||||
* @brief VItem конструктор
|
* @brief VItem конструктор
|
||||||
* @param path зображення що буде показуватися на сцені - об’єкт класу QPainterPath.
|
* @param path зображення що буде показуватися на сцені - об’єкт класу QPainterPath.
|
||||||
|
@ -50,22 +50,22 @@ public:
|
||||||
*укладаються деталі.
|
*укладаються деталі.
|
||||||
* @param parent батьківський об'єкт на сцені для даного. За замовчуванням немає.
|
* @param parent батьківський об'єкт на сцені для даного. За замовчуванням немає.
|
||||||
*/
|
*/
|
||||||
VItem ( const QPainterPath & path, int numInList, QGraphicsItem * parent = 0 );
|
VItem ( const QPainterPath & path, int numInList, QGraphicsItem * parent = 0 );
|
||||||
/**
|
/**
|
||||||
* @brief Rotate повертає об'єкт на кут в градусах
|
* @brief Rotate повертає об'єкт на кут в градусах
|
||||||
* @param angle кут в градусах на який повертається деталь.
|
* @param angle кут в градусах на який повертається деталь.
|
||||||
*/
|
*/
|
||||||
void Rotate ( qreal angle );
|
void Rotate ( qreal angle );
|
||||||
public slots:
|
public slots:
|
||||||
/**
|
/**
|
||||||
* @brief LengthChanged слот який обробляє сигнал зміни довжини листа.
|
* @brief LengthChanged слот який обробляє сигнал зміни довжини листа.
|
||||||
*/
|
*/
|
||||||
void LengthChanged();
|
void LengthChanged();
|
||||||
/**
|
/**
|
||||||
* @brief SetIndexInList встановлює номер деталі в списку деталей.
|
* @brief SetIndexInList встановлює номер деталі в списку деталей.
|
||||||
* @param index номер в списку.
|
* @param index номер в списку.
|
||||||
*/
|
*/
|
||||||
void SetIndexInList( qint32 index );
|
inline void SetIndexInList( qint32 index ) {numInOutList = index;}
|
||||||
protected:
|
protected:
|
||||||
/**
|
/**
|
||||||
* @brief itemChange модифікація стандартного методу itemChange. Виконується перехоплення зміни
|
* @brief itemChange модифікація стандартного методу itemChange. Виконується перехоплення зміни
|
||||||
|
@ -74,12 +74,12 @@ protected:
|
||||||
* @param value
|
* @param value
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
QVariant itemChange ( GraphicsItemChange change, const QVariant &value );
|
QVariant itemChange ( GraphicsItemChange change, const QVariant &value );
|
||||||
/**
|
/**
|
||||||
* @brief checkItemChange перевіряє вихід деталі за рамки листа і факт колізії. Посилає відповідні
|
* @brief checkItemChange перевіряє вихід деталі за рамки листа і факт колізії. Посилає відповідні
|
||||||
*сигнали.
|
*сигнали.
|
||||||
*/
|
*/
|
||||||
void checkItemChange ();
|
void checkItemChange ();
|
||||||
private:
|
private:
|
||||||
/**
|
/**
|
||||||
* @brief numInOutList для зберігання інформації про колізії від кожної деталі необхідно знати її
|
* @brief numInOutList для зберігання інформації про колізії від кожної деталі необхідно знати її
|
||||||
|
@ -92,13 +92,13 @@ signals:
|
||||||
* @param numInOutList номер деталі яка вийшла за межі листа або тепер знаходиться в межах листа.
|
* @param numInOutList номер деталі яка вийшла за межі листа або тепер знаходиться в межах листа.
|
||||||
* @param flag був вихід чи ні.
|
* @param flag був вихід чи ні.
|
||||||
*/
|
*/
|
||||||
void itemOut ( int numInOutList, bool flag );
|
void itemOut ( int numInOutList, bool flag );
|
||||||
/**
|
/**
|
||||||
* @brief itemColliding сигнал колізії деталі з іншими. Посилається як для додавання деталі до
|
* @brief itemColliding сигнал колізії деталі з іншими. Посилається як для додавання деталі до
|
||||||
*списку тих що перетинаються, так і для виключення його з такого.
|
*списку тих що перетинаються, так і для виключення його з такого.
|
||||||
* @param list список усіх деталей які приймають участь в колізії включаючи самого себе.
|
* @param list список усіх деталей які приймають участь в колізії включаючи самого себе.
|
||||||
* @param number 1 - перетин є, 0 - перетину немає.
|
* @param number 1 - перетин є, 0 - перетину немає.
|
||||||
*/
|
*/
|
||||||
void itemColliding ( QList<QGraphicsItem *> list, int number );
|
void itemColliding ( QList<QGraphicsItem *> list, int number );
|
||||||
};
|
};
|
||||||
#endif // VITEM_H
|
#endif // VITEM_H
|
||||||
|
|
|
@ -20,10 +20,6 @@
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include "vmaingraphicsscene.h"
|
#include "vmaingraphicsscene.h"
|
||||||
#include <QDebug>
|
|
||||||
#include <QApplication>
|
|
||||||
#include <QScrollBar>
|
|
||||||
#include <QGraphicsItem>
|
|
||||||
|
|
||||||
VMainGraphicsScene::VMainGraphicsScene():QGraphicsScene(), horScrollBar(0), verScrollBar(0), scaleFactor(1){
|
VMainGraphicsScene::VMainGraphicsScene():QGraphicsScene(), horScrollBar(0), verScrollBar(0), scaleFactor(1){
|
||||||
}
|
}
|
||||||
|
@ -46,27 +42,7 @@ void VMainGraphicsScene::ChoosedItem(qint64 id, Scene::Scenes type){
|
||||||
emit ChoosedObject(id, type);
|
emit ChoosedObject(id, type);
|
||||||
}
|
}
|
||||||
|
|
||||||
void VMainGraphicsScene::RemoveTool(QGraphicsItem *tool){
|
|
||||||
this->removeItem(tool);
|
|
||||||
}
|
|
||||||
|
|
||||||
void VMainGraphicsScene::SetFactor(qreal factor){
|
void VMainGraphicsScene::SetFactor(qreal factor){
|
||||||
scaleFactor=scaleFactor*factor;
|
scaleFactor=scaleFactor*factor;
|
||||||
emit NewFactor(scaleFactor);
|
emit NewFactor(scaleFactor);
|
||||||
}
|
}
|
||||||
|
|
||||||
qint32 VMainGraphicsScene::getVerScrollBar() const{
|
|
||||||
return verScrollBar;
|
|
||||||
}
|
|
||||||
|
|
||||||
void VMainGraphicsScene::setVerScrollBar(const qint32 &value){
|
|
||||||
verScrollBar = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
qint32 VMainGraphicsScene::getHorScrollBar() const{
|
|
||||||
return horScrollBar;
|
|
||||||
}
|
|
||||||
|
|
||||||
void VMainGraphicsScene::setHorScrollBar(const qint32 &value){
|
|
||||||
horScrollBar = value;
|
|
||||||
}
|
|
||||||
|
|
|
@ -23,38 +23,32 @@
|
||||||
#define VMAINGRAPHICSSCENE_H
|
#define VMAINGRAPHICSSCENE_H
|
||||||
|
|
||||||
#include <QGraphicsScene>
|
#include <QGraphicsScene>
|
||||||
#include <QGraphicsView>
|
|
||||||
#include <QGraphicsSceneMouseEvent>
|
|
||||||
#include "options.h"
|
|
||||||
|
|
||||||
class VMainGraphicsScene : public QGraphicsScene
|
class VMainGraphicsScene : public QGraphicsScene{
|
||||||
{
|
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
VMainGraphicsScene();
|
VMainGraphicsScene();
|
||||||
VMainGraphicsScene(const QRectF & sceneRect, QObject * parent = 0);
|
VMainGraphicsScene(const QRectF & sceneRect, QObject * parent = 0);
|
||||||
qint32 getHorScrollBar() const;
|
inline qint32 getHorScrollBar() const {return horScrollBar;}
|
||||||
void setHorScrollBar(const qint32 &value);
|
inline void setHorScrollBar(const qint32 &value) {horScrollBar = value;}
|
||||||
|
inline qint32 getVerScrollBar() const {return verScrollBar;}
|
||||||
qint32 getVerScrollBar() const;
|
inline void setVerScrollBar(const qint32 &value) {verScrollBar = value;}
|
||||||
void setVerScrollBar(const qint32 &value);
|
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void ChoosedItem(qint64 id, Scene::Scenes type);
|
void ChoosedItem(qint64 id, Scene::Scenes type);
|
||||||
void RemoveTool(QGraphicsItem *tool);
|
inline void RemoveTool(QGraphicsItem *tool) {this->removeItem(tool);}
|
||||||
void SetFactor(qreal factor);
|
void SetFactor(qreal factor);
|
||||||
protected:
|
protected:
|
||||||
void mouseMoveEvent(QGraphicsSceneMouseEvent* event);
|
void mouseMoveEvent(QGraphicsSceneMouseEvent* event);
|
||||||
void mousePressEvent(QGraphicsSceneMouseEvent *event);
|
void mousePressEvent(QGraphicsSceneMouseEvent *event);
|
||||||
signals:
|
signals:
|
||||||
void mouseMove(QPointF scenePos);
|
void mouseMove(QPointF scenePos);
|
||||||
void mousePress(QPointF scenePos);
|
void mousePress(QPointF scenePos);
|
||||||
void ChoosedObject(qint64 id, Scene::Scenes type);
|
void ChoosedObject(qint64 id, Scene::Scenes type);
|
||||||
void NewFactor(qreal factor);
|
void NewFactor(qreal factor);
|
||||||
private:
|
private:
|
||||||
qint32 horScrollBar;
|
qint32 horScrollBar;
|
||||||
qint32 verScrollBar;
|
qint32 verScrollBar;
|
||||||
qreal scaleFactor;
|
qreal scaleFactor;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // VMAINGRAPHICSSCENE_H
|
#endif // VMAINGRAPHICSSCENE_H
|
||||||
|
|
|
@ -20,10 +20,6 @@
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include "vmaingraphicsview.h"
|
#include "vmaingraphicsview.h"
|
||||||
#include <QApplication>
|
|
||||||
#include <QWheelEvent>
|
|
||||||
#include <QScrollBar>
|
|
||||||
#include <QTimeLine>
|
|
||||||
|
|
||||||
VMainGraphicsView::VMainGraphicsView(QWidget *parent) :
|
VMainGraphicsView::VMainGraphicsView(QWidget *parent) :
|
||||||
QGraphicsView(parent), _numScheduledScalings(0){
|
QGraphicsView(parent), _numScheduledScalings(0){
|
||||||
|
|
|
@ -20,11 +20,6 @@
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include "vtablegraphicsview.h"
|
#include "vtablegraphicsview.h"
|
||||||
#include <QDebug>
|
|
||||||
#include <QGraphicsItem>
|
|
||||||
#include <QGuiApplication>
|
|
||||||
#include <QKeyEvent>
|
|
||||||
#include <QScrollBar>
|
|
||||||
|
|
||||||
VTableGraphicsView::VTableGraphicsView(QGraphicsScene* pScene, QWidget *parent) :
|
VTableGraphicsView::VTableGraphicsView(QGraphicsScene* pScene, QWidget *parent) :
|
||||||
QGraphicsView(pScene, parent){
|
QGraphicsView(pScene, parent){
|
||||||
|
@ -43,10 +38,6 @@ void VTableGraphicsView::selectionChanged(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void VTableGraphicsView::rotateItems(){
|
|
||||||
rotateIt();
|
|
||||||
}
|
|
||||||
|
|
||||||
void VTableGraphicsView::MirrorItem(){
|
void VTableGraphicsView::MirrorItem(){
|
||||||
QList<QGraphicsItem *> list = scene()->selectedItems();
|
QList<QGraphicsItem *> list = scene()->selectedItems();
|
||||||
if(list.size()>0){
|
if(list.size()>0){
|
||||||
|
@ -82,14 +73,6 @@ void VTableGraphicsView::MirrorItem(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void VTableGraphicsView::ZoomIn(){
|
|
||||||
scale(1.1,1.1);
|
|
||||||
}
|
|
||||||
|
|
||||||
void VTableGraphicsView::ZoomOut(){
|
|
||||||
scale(1/1.1,1/1.1);
|
|
||||||
}
|
|
||||||
|
|
||||||
void VTableGraphicsView::wheelEvent(QWheelEvent *event){
|
void VTableGraphicsView::wheelEvent(QWheelEvent *event){
|
||||||
if (QGuiApplication::keyboardModifiers() == Qt::ControlModifier){
|
if (QGuiApplication::keyboardModifiers() == Qt::ControlModifier){
|
||||||
// Если нажата клавиша CTRL этот код выполнится
|
// Если нажата клавиша CTRL этот код выполнится
|
||||||
|
|
|
@ -24,70 +24,68 @@
|
||||||
|
|
||||||
#include <QGraphicsView>
|
#include <QGraphicsView>
|
||||||
|
|
||||||
class VTableGraphicsView : public QGraphicsView
|
class VTableGraphicsView : public QGraphicsView{
|
||||||
{
|
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
enum typeMove_e { Left, Right, Up, Down };
|
enum typeMove_e { Left, Right, Up, Down };
|
||||||
explicit VTableGraphicsView(QGraphicsScene* pScene, QWidget *parent = 0);
|
VTableGraphicsView(QGraphicsScene* pScene, QWidget *parent = 0);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
/**
|
/**
|
||||||
* @brief itemChect Сигнал, що посилається коли змінюється стан вибору деталі.
|
* @brief itemChect Сигнал, що посилається коли змінюється стан вибору деталі.
|
||||||
* @param flag Зберігає стан вибору деталі: false - знайдено, true - не знайдено.
|
* @param flag Зберігає стан вибору деталі: false - знайдено, true - не знайдено.
|
||||||
*/
|
*/
|
||||||
void itemChect( bool flag );
|
void itemChect( bool flag );
|
||||||
public slots:
|
public slots:
|
||||||
/**
|
/**
|
||||||
* @brief selectionChanged Слот виконується при зміні стану вибору деталей.
|
* @brief selectionChanged Слот виконується при зміні стану вибору деталей.
|
||||||
*/
|
*/
|
||||||
void selectionChanged();
|
void selectionChanged();
|
||||||
/**
|
/**
|
||||||
* @brief rotateItems слот, який виконується при натисненні кнопки повороту деталі.
|
* @brief rotateItems слот, який виконується при натисненні кнопки повороту деталі.
|
||||||
*/
|
*/
|
||||||
void rotateItems();
|
inline void rotateItems() {rotateIt();}
|
||||||
/**
|
/**
|
||||||
* @brief MirrorItem дзеркалить об'єкт відносно вертикальної вісі семетрії об'єкта.
|
* @brief MirrorItem дзеркалить об'єкт відносно вертикальної вісі семетрії об'єкта.
|
||||||
*/
|
*/
|
||||||
void MirrorItem();
|
void MirrorItem();
|
||||||
/**
|
/**
|
||||||
* @brief ZoomIn збільшує масштаб листа.
|
* @brief ZoomIn збільшує масштаб листа.
|
||||||
*/
|
*/
|
||||||
void ZoomIn();
|
inline void ZoomIn() {scale(1.1,1.1);}
|
||||||
/**
|
/**
|
||||||
* @brief ZoomOut зменшує масштаб листа.
|
* @brief ZoomOut зменшує масштаб листа.
|
||||||
*/
|
*/
|
||||||
void ZoomOut();
|
inline void ZoomOut() {scale(1/1.1,1/1.1);}
|
||||||
protected:
|
protected:
|
||||||
/**
|
/**
|
||||||
* @brief wheelEvent обробник повороту колеса мишки.
|
* @brief wheelEvent обробник повороту колеса мишки.
|
||||||
* @param event передається подія.
|
* @param event передається подія.
|
||||||
*/
|
*/
|
||||||
void wheelEvent ( QWheelEvent * event );
|
void wheelEvent ( QWheelEvent * event );
|
||||||
/**
|
/**
|
||||||
* @brief mousePressEvent обробник натиснення кнопки миші.
|
* @brief mousePressEvent обробник натиснення кнопки миші.
|
||||||
* @param mousePress передається подія.
|
* @param mousePress передається подія.
|
||||||
*/
|
*/
|
||||||
void mousePressEvent(QMouseEvent *mousePress);
|
void mousePressEvent(QMouseEvent *mousePress);
|
||||||
/**
|
/**
|
||||||
* @brief mouseReleaseEvent обробник відпускання кнопки миші.
|
* @brief mouseReleaseEvent обробник відпускання кнопки миші.
|
||||||
* @param event передається подія
|
* @param event передається подія
|
||||||
*/
|
*/
|
||||||
void mouseReleaseEvent ( QMouseEvent * event );
|
void mouseReleaseEvent ( QMouseEvent * event );
|
||||||
/**
|
/**
|
||||||
* @brief keyPressEvent обробник натиснення клавіші.
|
* @brief keyPressEvent обробник натиснення клавіші.
|
||||||
* @param event передається подія.
|
* @param event передається подія.
|
||||||
*/
|
*/
|
||||||
void keyPressEvent ( QKeyEvent * event );
|
void keyPressEvent ( QKeyEvent * event );
|
||||||
/**
|
/**
|
||||||
* @brief rotateIt виконує поворот вибраних деталей на 180 градусів.
|
* @brief rotateIt виконує поворот вибраних деталей на 180 градусів.
|
||||||
*/
|
*/
|
||||||
void rotateIt();
|
void rotateIt();
|
||||||
/**
|
/**
|
||||||
* @brief MoveItem переміщує виділені об'єкти сцени.
|
* @brief MoveItem переміщує виділені об'єкти сцени.
|
||||||
* @param move напрямок переміщення.
|
* @param move напрямок переміщення.
|
||||||
*/
|
*/
|
||||||
void MoveItem( VTableGraphicsView::typeMove_e move );
|
void MoveItem( VTableGraphicsView::typeMove_e move );
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user