From e2fac0f91fd1fbea164db283bca30cc860c8adb7 Mon Sep 17 00:00:00 2001 From: ephy Date: Sun, 21 Mar 2010 19:47:59 +0000 Subject: [PATCH] GCS/coreplugin: Make it easier to see which view is active when toolbars are shown. git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@366 ebee16cc-31ac-478f-84a7-5cbb03baadba --- .../coreplugin/uavgadgetmanager/uavgadgetmanager.cpp | 1 + .../coreplugin/uavgadgetmanager/uavgadgetmanager.h | 1 + .../coreplugin/uavgadgetmanager/uavgadgetview.cpp | 12 +++++++++++- .../coreplugin/uavgadgetmanager/uavgadgetview.h | 4 ++++ 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/ground/src/plugins/coreplugin/uavgadgetmanager/uavgadgetmanager.cpp b/ground/src/plugins/coreplugin/uavgadgetmanager/uavgadgetmanager.cpp index 2006e4793..0704a6b5d 100644 --- a/ground/src/plugins/coreplugin/uavgadgetmanager/uavgadgetmanager.cpp +++ b/ground/src/plugins/coreplugin/uavgadgetmanager/uavgadgetmanager.cpp @@ -322,6 +322,7 @@ void UAVGadgetManager::setCurrentUAVGadget(IUAVGadget *uavGadget) view->update(); } uavGadget->widget()->setFocus(); + emit currentUAVGadgetChanged(uavGadget); updateActions(); // emit currentUAVGadgetChanged(uavGadget); } diff --git a/ground/src/plugins/coreplugin/uavgadgetmanager/uavgadgetmanager.h b/ground/src/plugins/coreplugin/uavgadgetmanager/uavgadgetmanager.h index 43f92eb7e..2e615d09d 100644 --- a/ground/src/plugins/coreplugin/uavgadgetmanager/uavgadgetmanager.h +++ b/ground/src/plugins/coreplugin/uavgadgetmanager/uavgadgetmanager.h @@ -108,6 +108,7 @@ public: UAVGadgetFactoryList uavGadgetFactories() const; signals: + void currentUAVGadgetChanged(IUAVGadget *gadget); private slots: void handleContextChange(Core::IContext *context); diff --git a/ground/src/plugins/coreplugin/uavgadgetmanager/uavgadgetview.cpp b/ground/src/plugins/coreplugin/uavgadgetmanager/uavgadgetview.cpp index 250dfbc3b..faa0ee3ad 100644 --- a/ground/src/plugins/coreplugin/uavgadgetmanager/uavgadgetview.cpp +++ b/ground/src/plugins/coreplugin/uavgadgetmanager/uavgadgetview.cpp @@ -71,7 +71,8 @@ UAVGadgetView::UAVGadgetView(UAVGadgetManager *uavGadgetManager, IUAVGadget *uav m_defaultToolBar(new QWidget(this)), m_uavGadgetList(new QComboBox), m_closeButton(new QToolButton), - m_defaultIndex(0) + m_defaultIndex(0), + m_activeLabel(new QLabel(tr("Active"))) { tl = new QVBoxLayout(this); @@ -102,6 +103,8 @@ UAVGadgetView::UAVGadgetView(UAVGadgetManager *uavGadgetManager, IUAVGadget *uav m_toolBar->setLayout(toolBarLayout); m_toolBar->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); + m_activeLabel->setTextFormat(Qt::RichText); + m_closeButton->setAutoRaise(true); m_closeButton->setIcon(QIcon(":/core/images/closebutton.png")); @@ -110,6 +113,7 @@ UAVGadgetView::UAVGadgetView(UAVGadgetManager *uavGadgetManager, IUAVGadget *uav toplayout->setMargin(0); toplayout->addWidget(m_uavGadgetList); toplayout->addWidget(m_toolBar, 1); // Custom toolbar stretches + toplayout->addWidget(m_activeLabel); toplayout->addWidget(m_closeButton); m_top = new Utils::StyledBar; @@ -118,6 +122,7 @@ UAVGadgetView::UAVGadgetView(UAVGadgetManager *uavGadgetManager, IUAVGadget *uav connect(m_uavGadgetList, SIGNAL(activated(int)), this, SLOT(listSelectionActivated(int))); connect(m_closeButton, SIGNAL(clicked()), this, SLOT(closeView()), Qt::QueuedConnection); + connect(m_uavGadgetManager, SIGNAL(currentUAVGadgetChanged(IUAVGadget*)), this, SLOT(currentUAVGadgetChanged(IUAVGadget*))); } if (m_uavGadget) { setUAVGadget(m_uavGadget); @@ -218,6 +223,11 @@ int UAVGadgetView::indexOfGadgetKind(QString gadgetKind) return m_uavGadgetList->findData(gadgetKind); } +void UAVGadgetView::currentUAVGadgetChanged(IUAVGadget *gadget) +{ + (m_uavGadget == gadget) ? m_activeLabel->show() : m_activeLabel->hide(); + +} SplitterOrView::SplitterOrView(UAVGadgetManager *uavGadgetManager, Core::IUAVGadget *uavGadget, bool isRoot) : m_uavGadgetManager(uavGadgetManager), diff --git a/ground/src/plugins/coreplugin/uavgadgetmanager/uavgadgetview.h b/ground/src/plugins/coreplugin/uavgadgetmanager/uavgadgetview.h index d9ef95375..df33d45da 100644 --- a/ground/src/plugins/coreplugin/uavgadgetmanager/uavgadgetview.h +++ b/ground/src/plugins/coreplugin/uavgadgetmanager/uavgadgetview.h @@ -77,6 +77,9 @@ public slots: void closeView(); void listSelectionActivated(int index); +private slots: + void currentUAVGadgetChanged(IUAVGadget *gadget); + private: void updateToolBar(); @@ -91,6 +94,7 @@ private: Utils::StyledBar *m_top; QVBoxLayout *tl; // top layout int m_defaultIndex; + QLabel *m_activeLabel; }; class SplitterOrView : public QWidget