diff --git a/sources/elementspanelwidget.cpp b/sources/elementspanelwidget.cpp index 086d8fc44..8f4628a42 100644 --- a/sources/elementspanelwidget.cpp +++ b/sources/elementspanelwidget.cpp @@ -62,6 +62,7 @@ ElementsPanelWidget::ElementsPanelWidget(QWidget *parent) : QWidget(parent) { edit_element = new QAction(QET::Icons::ElementEdit, tr("\311diter l'\351l\351ment"), this); delete_element = new QAction(QET::Icons::ElementDelete, tr("Supprimer l'\351l\351ment"), this); open_element = new QAction(QET::Icons::DocumentImport, tr("Ouvrir un fichier \351l\351ment"), this); + prj_activate = new QAction(QET::Icons::ProjectFile, tr("Basculer vers ce projet"), this); prj_close = new QAction(QET::Icons::DocumentClose, tr("Fermer ce projet"), this); prj_edit_prop = new QAction(QET::Icons::DialogInformation, tr("Propri\351t\351s du projet"), this); prj_prop_diagram = new QAction(QET::Icons::DialogInformation, tr("Propri\351t\351s du sch\351ma"), this); @@ -103,6 +104,7 @@ ElementsPanelWidget::ElementsPanelWidget(QWidget *parent) : QWidget(parent) { connect(edit_element, SIGNAL(triggered()), this, SLOT(editElement())); connect(delete_element, SIGNAL(triggered()), this, SLOT(deleteElement())); connect(open_element, SIGNAL(triggered()), this, SLOT(openElementFromFile())); + connect(prj_activate, SIGNAL(triggered()), this, SLOT(activateProject())); connect(prj_close, SIGNAL(triggered()), this, SLOT(closeProject())); connect(prj_edit_prop, SIGNAL(triggered()), this, SLOT(editProjectProperties())); connect(prj_prop_diagram, SIGNAL(triggered()), this, SLOT(editDiagramProperties())); @@ -121,6 +123,7 @@ ElementsPanelWidget::ElementsPanelWidget(QWidget *parent) : QWidget(parent) { connect(elements_panel, SIGNAL(currentItemChanged(QTreeWidgetItem *, QTreeWidgetItem *)), this, SLOT(updateButtons())); connect(elements_panel, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(handleContextMenu(const QPoint &))); + connect(elements_panel, SIGNAL(requestForDiagram(Diagram*)), this, SIGNAL(requestForDiagram(Diagram*))); connect(elements_panel, SIGNAL(requestForCollectionItem(const ElementsLocation &)), this, SLOT(handleCollectionRequest(const ElementsLocation &))); connect( elements_panel, @@ -195,6 +198,15 @@ void ElementsPanelWidget::reloadAndFilter() { } } +/** + * Emit the requestForProject signal with te selected project +*/ +void ElementsPanelWidget::activateProject() { + if (QETProject *selected_project = elements_panel -> selectedProject()) { + emit(requestForProject(selected_project)); + } +} + /** Emet le signal requestForProjectClosing avec le projet selectionne */ @@ -465,6 +477,7 @@ void ElementsPanelWidget::handleContextMenu(const QPoint &pos) { context_menu -> addAction(new_element); break; case QET::Project: + context_menu -> addAction(prj_activate); context_menu -> addAction(prj_edit_prop); context_menu -> addAction(prj_add_diagram); context_menu -> addAction(prj_close); diff --git a/sources/elementspanelwidget.h b/sources/elementspanelwidget.h index b1079b084..22487b2c8 100644 --- a/sources/elementspanelwidget.h +++ b/sources/elementspanelwidget.h @@ -42,7 +42,7 @@ class ElementsPanelWidget : public QWidget { QAction *new_category, *edit_category, *delete_category; QAction *delete_collection; QAction *new_element, *edit_element, *delete_element, *open_element; - QAction *prj_close, *prj_edit_prop, *prj_prop_diagram, *prj_add_diagram, *prj_del_diagram, *prj_move_diagram_up, *prj_move_diagram_down; + QAction *prj_activate, *prj_close, *prj_edit_prop, *prj_prop_diagram, *prj_add_diagram, *prj_del_diagram, *prj_move_diagram_up, *prj_move_diagram_down; QAction *tbt_add, *tbt_edit, *tbt_remove; QAction *copy_elements_, *move_elements_, *cancel_elements_; QMenu *context_menu; @@ -56,6 +56,8 @@ class ElementsPanelWidget : public QWidget { inline ElementsPanel &elementsPanel() const; signals: + void requestForDiagram(Diagram *); + void requestForProject(QETProject *); void requestForNewDiagram(QETProject *); void requestForProjectClosing(QETProject *); void requestForProjectPropertiesEdition(QETProject *); @@ -67,6 +69,7 @@ class ElementsPanelWidget : public QWidget { public slots: void clearFilterTextField(); void reloadAndFilter(); + void activateProject(); void closeProject(); void editProjectProperties(); void editDiagramProperties(); diff --git a/sources/qetdiagrameditor.cpp b/sources/qetdiagrameditor.cpp index a5f6b3fb2..36e9f6719 100644 --- a/sources/qetdiagrameditor.cpp +++ b/sources/qetdiagrameditor.cpp @@ -65,9 +65,9 @@ QETDiagramEditor::QETDiagramEditor(const QStringList &files, QWidget *parent) : qdw_pa -> setFeatures(QDockWidget::AllDockWidgetFeatures); qdw_pa -> setMinimumWidth(160); qdw_pa -> setWidget(pa = new ElementsPanelWidget(qdw_pa)); - connect(&(pa -> elementsPanel()), SIGNAL(requestForDiagram(Diagram *)), this, SLOT(activateDiagram(Diagram *))); - connect(&(pa -> elementsPanel()), SIGNAL(requestForProject(QETProject *)), this, SLOT(activateProject(QETProject *))); + connect(pa, SIGNAL(requestForDiagram(Diagram *)), this, SLOT(activateDiagram(Diagram *))); + connect(pa, SIGNAL(requestForProject(QETProject *)), this, SLOT(activateProject(QETProject *))); connect(pa, SIGNAL(requestForProjectClosing(QETProject *)), this, SLOT(closeProject(QETProject *))); connect(pa, SIGNAL(requestForProjectPropertiesEdition(QETProject *)), this, SLOT(editProjectProperties(QETProject *))); connect(pa, SIGNAL(requestForDiagramPropertiesEdition(Diagram *)), this, SLOT(editDiagramProperties(Diagram *)));