mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-22 09:40:52 +01:00
Remove, move and clean some functions of diagram view, among other things because it is not the role of the diagram view to provide these functions.
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5294 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
@@ -197,6 +197,20 @@ bool DiagramContent::hasDeletableItems() const
|
|||||||
return(false);
|
return(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief DiagramContent::hasCopiableItems
|
||||||
|
* @return true if this diagram content have copiable items.
|
||||||
|
*/
|
||||||
|
bool DiagramContent::hasCopiableItems() const
|
||||||
|
{
|
||||||
|
if(!m_images.isEmpty()) return true;
|
||||||
|
if(!m_shapes.isEmpty()) return true;
|
||||||
|
if(!m_elements.isEmpty()) return true;
|
||||||
|
if(!m_text_fields.isEmpty()) return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief DiagramContent::clear
|
* @brief DiagramContent::clear
|
||||||
* Remove all items from the diagram content
|
* Remove all items from the diagram content
|
||||||
|
|||||||
@@ -79,6 +79,7 @@ class DiagramContent
|
|||||||
QList<ElementTextItemGroup *> selectedTextsGroup() const;
|
QList<ElementTextItemGroup *> selectedTextsGroup() const;
|
||||||
QList<Conductor *> conductors(int = AnyConductor) const;
|
QList<Conductor *> conductors(int = AnyConductor) const;
|
||||||
bool hasDeletableItems() const;
|
bool hasDeletableItems() const;
|
||||||
|
bool hasCopiableItems() const;
|
||||||
QList<QGraphicsItem *> items(int = All) const;
|
QList<QGraphicsItem *> items(int = All) const;
|
||||||
QString sentence(int = All) const;
|
QString sentence(int = All) const;
|
||||||
int count(int = All) const;
|
int count(int = All) const;
|
||||||
|
|||||||
@@ -539,7 +539,7 @@ void DiagramView::keyPressEvent(QKeyEvent *e)
|
|||||||
current_project->changeTabDown();
|
current_project->changeTabDown();
|
||||||
return;
|
return;
|
||||||
case Qt::Key_Home:
|
case Qt::Key_Home:
|
||||||
if (!hasTextItems()) {
|
if (dc.selectedTexts().isEmpty()) {
|
||||||
if (
|
if (
|
||||||
qgraphicsitem_cast<IndependentTextItem *>(m_diagram->focusItem()) ||
|
qgraphicsitem_cast<IndependentTextItem *>(m_diagram->focusItem()) ||
|
||||||
qgraphicsitem_cast<ConductorTextItem *>(m_diagram->focusItem()) ||
|
qgraphicsitem_cast<ConductorTextItem *>(m_diagram->focusItem()) ||
|
||||||
@@ -551,7 +551,7 @@ void DiagramView::keyPressEvent(QKeyEvent *e)
|
|||||||
}
|
}
|
||||||
else break;
|
else break;
|
||||||
case Qt::Key_End:
|
case Qt::Key_End:
|
||||||
if (!hasTextItems()) {
|
if (dc.selectedTexts().isEmpty()) {
|
||||||
if (
|
if (
|
||||||
qgraphicsitem_cast<IndependentTextItem *>(m_diagram->focusItem()) ||
|
qgraphicsitem_cast<IndependentTextItem *>(m_diagram->focusItem()) ||
|
||||||
qgraphicsitem_cast<ConductorTextItem *>(m_diagram->focusItem()) ||
|
qgraphicsitem_cast<ConductorTextItem *>(m_diagram->focusItem()) ||
|
||||||
@@ -707,84 +707,6 @@ void DiagramView::editDiagramProperties() {
|
|||||||
DiagramPropertiesDialog::diagramPropertiesDialog(m_diagram, diagramEditor());
|
DiagramPropertiesDialog::diagramPropertiesDialog(m_diagram, diagramEditor());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
@return true s'il y a des items selectionnes sur le schema et que ceux-ci
|
|
||||||
peuvent etre copies dans le presse-papier, false sinon
|
|
||||||
*/
|
|
||||||
bool DiagramView::hasCopiableItems() {
|
|
||||||
foreach(QGraphicsItem *qgi, m_diagram -> selectedItems()) {
|
|
||||||
if (
|
|
||||||
qgraphicsitem_cast<Element *>(qgi) ||
|
|
||||||
qgraphicsitem_cast<IndependentTextItem *>(qgi) ||
|
|
||||||
qgraphicsitem_cast<QetShapeItem *>(qgi) ||
|
|
||||||
qgraphicsitem_cast<DiagramImageItem *>(qgi)
|
|
||||||
) {
|
|
||||||
return(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
@return true if there is any Text Item selected
|
|
||||||
*/
|
|
||||||
bool DiagramView::hasTextItems() {
|
|
||||||
foreach(QGraphicsItem *qgi, m_diagram -> selectedItems()) {
|
|
||||||
if (
|
|
||||||
qgraphicsitem_cast<IndependentTextItem *>(qgi) ||
|
|
||||||
qgraphicsitem_cast<ConductorTextItem *>(qgi) ||
|
|
||||||
qgraphicsitem_cast<DiagramTextItem *>(qgi)
|
|
||||||
) {
|
|
||||||
return(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
Ajoute une colonne au schema.
|
|
||||||
*/
|
|
||||||
void DiagramView::addColumn() {
|
|
||||||
if (m_diagram -> isReadOnly()) return;
|
|
||||||
BorderProperties old_bp = m_diagram -> border_and_titleblock.exportBorder();
|
|
||||||
BorderProperties new_bp = m_diagram -> border_and_titleblock.exportBorder();
|
|
||||||
new_bp.columns_count += 1;
|
|
||||||
m_diagram -> undoStack().push(new ChangeBorderCommand(m_diagram, old_bp, new_bp));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
Enleve une colonne au schema.
|
|
||||||
*/
|
|
||||||
void DiagramView::removeColumn() {
|
|
||||||
if (m_diagram -> isReadOnly()) return;
|
|
||||||
BorderProperties old_bp = m_diagram -> border_and_titleblock.exportBorder();
|
|
||||||
BorderProperties new_bp = m_diagram -> border_and_titleblock.exportBorder();
|
|
||||||
new_bp.columns_count -= 1;
|
|
||||||
m_diagram -> undoStack().push(new ChangeBorderCommand(m_diagram, old_bp, new_bp));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
Agrandit le schema en hauteur
|
|
||||||
*/
|
|
||||||
void DiagramView::addRow() {
|
|
||||||
if (m_diagram -> isReadOnly()) return;
|
|
||||||
BorderProperties old_bp = m_diagram -> border_and_titleblock.exportBorder();
|
|
||||||
BorderProperties new_bp = m_diagram -> border_and_titleblock.exportBorder();
|
|
||||||
new_bp.rows_count += 1;
|
|
||||||
m_diagram -> undoStack().push(new ChangeBorderCommand(m_diagram, old_bp, new_bp));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
Retrecit le schema en hauteur
|
|
||||||
*/
|
|
||||||
void DiagramView::removeRow() {
|
|
||||||
if (m_diagram -> isReadOnly()) return;
|
|
||||||
BorderProperties old_bp = m_diagram -> border_and_titleblock.exportBorder();
|
|
||||||
BorderProperties new_bp = m_diagram -> border_and_titleblock.exportBorder();
|
|
||||||
new_bp.rows_count -= 1;
|
|
||||||
m_diagram -> undoStack().push(new ChangeBorderCommand(m_diagram, old_bp, new_bp));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief DiagramView::adjustSceneRect
|
* @brief DiagramView::adjustSceneRect
|
||||||
* Calcul and set the area of the scene visualized by this view
|
* Calcul and set the area of the scene visualized by this view
|
||||||
|
|||||||
@@ -60,14 +60,8 @@ class DiagramView : public QGraphicsView
|
|||||||
public:
|
public:
|
||||||
QString title() const;
|
QString title() const;
|
||||||
void editDiagramProperties();
|
void editDiagramProperties();
|
||||||
void addColumn();
|
|
||||||
void removeColumn();
|
|
||||||
void addRow();
|
|
||||||
void removeRow();
|
|
||||||
Diagram *diagram() { return(m_diagram); }
|
Diagram *diagram() { return(m_diagram); }
|
||||||
QETDiagramEditor *diagramEditor() const;
|
QETDiagramEditor *diagramEditor() const;
|
||||||
bool hasCopiableItems();
|
|
||||||
bool hasTextItems();
|
|
||||||
void editSelection();
|
void editSelection();
|
||||||
void setEventInterface (DVEventInterface *event_interface);
|
void setEventInterface (DVEventInterface *event_interface);
|
||||||
|
|
||||||
|
|||||||
@@ -1279,16 +1279,22 @@ void QETDiagramEditor::rowColumnGroupTriggered(QAction *action)
|
|||||||
QString value = action->data().toString();
|
QString value = action->data().toString();
|
||||||
DiagramView *dv = currentDiagram();
|
DiagramView *dv = currentDiagram();
|
||||||
|
|
||||||
if (!dv || value.isEmpty()) return;
|
if (!dv || value.isEmpty() || dv->diagram()->isReadOnly()) return;
|
||||||
|
|
||||||
|
Diagram *d = dv->diagram();
|
||||||
|
BorderProperties old_bp = d->border_and_titleblock.exportBorder();
|
||||||
|
BorderProperties new_bp = d->border_and_titleblock.exportBorder();
|
||||||
|
|
||||||
if (value == "add_column")
|
if (value == "add_column")
|
||||||
dv->addColumn();
|
new_bp.columns_count += 1;
|
||||||
else if (value == "remove_column")
|
else if (value == "remove_column")
|
||||||
dv->removeColumn();
|
new_bp.columns_count -= 1;
|
||||||
else if (value == "add_row")
|
else if (value == "add_row")
|
||||||
dv->addRow();
|
new_bp.rows_count += 1;
|
||||||
else if (value == "remove_row")
|
else if (value == "remove_row")
|
||||||
dv->removeRow();
|
new_bp.rows_count -= 1;
|
||||||
|
|
||||||
|
d->undoStack().push(new ChangeBorderCommand(d, old_bp, new_bp));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1408,7 +1414,7 @@ void QETDiagramEditor::slot_updateComplexActions()
|
|||||||
m_find_element->setEnabled(selected_elements_count == 1);
|
m_find_element->setEnabled(selected_elements_count == 1);
|
||||||
|
|
||||||
//Action that need items (elements, conductors, texts...) selected, to be enabled
|
//Action that need items (elements, conductors, texts...) selected, to be enabled
|
||||||
bool copiable_items = dv->hasCopiableItems();
|
bool copiable_items = dc.hasCopiableItems();
|
||||||
bool deletable_items = dc.hasDeletableItems();
|
bool deletable_items = dc.hasDeletableItems();
|
||||||
m_cut -> setEnabled(!ro && copiable_items);
|
m_cut -> setEnabled(!ro && copiable_items);
|
||||||
m_copy -> setEnabled(copiable_items);
|
m_copy -> setEnabled(copiable_items);
|
||||||
|
|||||||
Reference in New Issue
Block a user