Display the name of the current hovered element of the element collection tree, in the status bar.

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@4773 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
blacksun 2016-11-10 19:49:33 +00:00
parent bb2fff7e5f
commit ce638c770d
4 changed files with 35 additions and 0 deletions

View File

@ -29,6 +29,7 @@
#include "qetproject.h"
#include "qetelementeditor.h"
#include "elementstreeview.h"
#include "qetdiagrameditor.h"
#include <QVBoxLayout>
#include <QMenu>
@ -115,6 +116,14 @@ bool ElementsCollectionWidget::event(QEvent *event)
return QWidget::event(event);
}
void ElementsCollectionWidget::leaveEvent(QEvent *event)
{
if (QETDiagramEditor *qde = QETApp::diagramEditorAncestorOf(this))
qde->statusBar()->clearMessage();
QWidget::leaveEvent(event);
}
void ElementsCollectionWidget::setUpAction()
{
m_open_dir = new QAction(QET::Icons::DocumentOpen, tr("Ouvrir le dossier correspondant"), this);
@ -190,6 +199,13 @@ void ElementsCollectionWidget::setUpConnection()
connect(m_tree_view, &QTreeView::doubleClicked, [this](const QModelIndex &index) {
this->m_index_at_context_menu = index ;
this->editElement();});
connect(m_tree_view, &QTreeView::entered, [this] (const QModelIndex &index) {
QETDiagramEditor *qde = QETApp::diagramEditorAncestorOf(this);
ElementCollectionItem *eci = elementCollectionItemForIndex(index);
if (qde && eci)
qde->statusBar()->showMessage(eci->localName());
});
}
/**

View File

@ -54,6 +54,7 @@ class ElementsCollectionWidget : public QWidget
protected:
virtual bool event(QEvent *event);
virtual void leaveEvent(QEvent *event);
private:
void setUpAction();

View File

@ -609,6 +609,23 @@ QETDiagramEditor *QETApp::diagramEditorForFile(const QString &filepath) {
return(0);
}
/**
* @brief QETApp::diagramEditorAncestorOf
* @param child
* @return the parent QETDiagramEditor (or grandparent and so on to any level) of the given child.
* If not return nullptr;
*/
QETDiagramEditor *QETApp::diagramEditorAncestorOf (const QWidget *child)
{
foreach (QETDiagramEditor *qde, QETApp::diagramEditors()) {
if (qde->isAncestorOf(child)) {
return qde;
}
}
return nullptr;
}
#ifdef QET_ALLOW_OVERRIDE_CED_OPTION
/**
Redefinit le chemin du dossier des elements communs

View File

@ -122,6 +122,7 @@ class QETApp : public QETSingleApplication {
static QString lang_dir; ///< Directory containing localization files.
static QFont diagramTextsFont(qreal = -1.0);
static QETDiagramEditor *diagramEditorForFile(const QString &);
static QETDiagramEditor *diagramEditorAncestorOf (const QWidget *child);
static QList<QETDiagramEditor *> diagramEditors();
static QList<QETElementEditor *> elementEditors();
static QList<QETElementEditor *> elementEditors(QETProject *);