mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-05-08 17:39:58 +02:00
Fix losing Focus on moving diagram position with keyboard
Due to the changes made in the commit "Add highlight current page in ProjectView", there is a problem when moving diagrams in the ProjectView using the keyboard. The diagrams lose focus after being moved. The cause is: The DiagramItem loses its selection before the move function is executed. The code has been adjusted.
This commit is contained in:
@@ -480,28 +480,33 @@ void ElementsPanelWidget::keyPressEvent (QKeyEvent *e) {
|
|||||||
break;
|
break;
|
||||||
case Qt::Key_F3:
|
case Qt::Key_F3:
|
||||||
if (Diagram *selected_diagram = elements_panel -> selectedDiagram()) {
|
if (Diagram *selected_diagram = elements_panel -> selectedDiagram()) {
|
||||||
|
elements_panel->setSelectedItem(elements_panel->getItemForDiagram(selected_diagram));
|
||||||
emit(requestForDiagramMoveUp(selected_diagram));
|
emit(requestForDiagramMoveUp(selected_diagram));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case Qt::Key_F4:
|
case Qt::Key_F4:
|
||||||
if (Diagram *selected_diagram = elements_panel -> selectedDiagram()) {
|
if (Diagram *selected_diagram = elements_panel -> selectedDiagram()) {
|
||||||
|
elements_panel->setSelectedItem(elements_panel->getItemForDiagram(selected_diagram));
|
||||||
emit(requestForDiagramMoveDown(selected_diagram));
|
emit(requestForDiagramMoveDown(selected_diagram));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case Qt::Key_F5:
|
case Qt::Key_F5:
|
||||||
if (Diagram *selected_diagram = elements_panel -> selectedDiagram()) {
|
if (Diagram *selected_diagram = elements_panel -> selectedDiagram()) {
|
||||||
|
elements_panel->setSelectedItem(elements_panel->getItemForDiagram(selected_diagram));
|
||||||
emit(requestForDiagramMoveUpTop(selected_diagram));
|
emit(requestForDiagramMoveUpTop(selected_diagram));
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case Qt::Key_F6:
|
case Qt::Key_F6:
|
||||||
if (Diagram *selected_diagram = elements_panel -> selectedDiagram()) {
|
if (Diagram *selected_diagram = elements_panel -> selectedDiagram()) {
|
||||||
|
elements_panel->setSelectedItem(elements_panel->getItemForDiagram(selected_diagram));
|
||||||
emit(requestForDiagramMoveDownx10(selected_diagram));
|
emit(requestForDiagramMoveDownx10(selected_diagram));
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case Qt::Key_F7:
|
case Qt::Key_F7:
|
||||||
if (Diagram *selected_diagram = elements_panel -> selectedDiagram()) {
|
if (Diagram *selected_diagram = elements_panel -> selectedDiagram()) {
|
||||||
|
elements_panel->setSelectedItem(elements_panel->getItemForDiagram(selected_diagram));
|
||||||
emit(requestForDiagramMoveDownx100(selected_diagram));
|
emit(requestForDiagramMoveDownx100(selected_diagram));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -509,12 +514,14 @@ void ElementsPanelWidget::keyPressEvent (QKeyEvent *e) {
|
|||||||
break;
|
break;
|
||||||
case Qt::Key_F8:
|
case Qt::Key_F8:
|
||||||
if (Diagram *selected_diagram = elements_panel -> selectedDiagram()) {
|
if (Diagram *selected_diagram = elements_panel -> selectedDiagram()) {
|
||||||
|
elements_panel->setSelectedItem(elements_panel->getItemForDiagram(selected_diagram));
|
||||||
emit(requestForDiagramMoveUpx10(selected_diagram));
|
emit(requestForDiagramMoveUpx10(selected_diagram));
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case Qt::Key_F9:
|
case Qt::Key_F9:
|
||||||
if (Diagram *selected_diagram = elements_panel -> selectedDiagram()) {
|
if (Diagram *selected_diagram = elements_panel -> selectedDiagram()) {
|
||||||
|
elements_panel->setSelectedItem(elements_panel->getItemForDiagram(selected_diagram));
|
||||||
emit(requestForDiagramMoveUpx100(selected_diagram));
|
emit(requestForDiagramMoveUpx100(selected_diagram));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -781,7 +781,13 @@ void GenericPanel::projectDiagramsOrderChanged(QETProject *project,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// select the moved diagram
|
// select the moved diagram
|
||||||
|
if(m_selected_item){
|
||||||
|
setCurrentItem(moved_qtwi_diagram);
|
||||||
|
}
|
||||||
|
else{
|
||||||
setCurrentItem(qtwi_project -> child(from));
|
setCurrentItem(qtwi_project -> child(from));
|
||||||
|
}
|
||||||
|
m_selected_item = nullptr;
|
||||||
|
|
||||||
emit(panelContentChanged());
|
emit(panelContentChanged());
|
||||||
}
|
}
|
||||||
@@ -1040,3 +1046,12 @@ void GenericPanel::emitFirstActivated()
|
|||||||
{
|
{
|
||||||
emit(firstActivated());
|
emit(firstActivated());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
@brief GenericPanel::setSelectedItem
|
||||||
|
@param selectedItem
|
||||||
|
*/
|
||||||
|
void GenericPanel::setSelectedItem(QTreeWidgetItem *selectedItem)
|
||||||
|
{
|
||||||
|
m_selected_item = selectedItem;
|
||||||
|
}
|
||||||
|
|||||||
@@ -171,6 +171,9 @@ class GenericPanel : public QTreeWidget {
|
|||||||
const QString &);
|
const QString &);
|
||||||
|
|
||||||
// various other methods
|
// various other methods
|
||||||
|
public:
|
||||||
|
void setSelectedItem(QTreeWidgetItem *selectedItem);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual QString defaultText(QET::ItemType);
|
virtual QString defaultText(QET::ItemType);
|
||||||
virtual QIcon defaultIcon(QET::ItemType);
|
virtual QIcon defaultIcon(QET::ItemType);
|
||||||
@@ -222,5 +225,7 @@ class GenericPanel : public QTreeWidget {
|
|||||||
representing a title block template
|
representing a title block template
|
||||||
*/
|
*/
|
||||||
QHash<TitleBlockTemplateLocation, QTreeWidgetItem *> tb_templates_;
|
QHash<TitleBlockTemplateLocation, QTreeWidgetItem *> tb_templates_;
|
||||||
|
|
||||||
|
QTreeWidgetItem *m_selected_item = nullptr;
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user