Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Q
qgroundcontrol
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Valentin Platzgummer
qgroundcontrol
Commits
661b9aeb
Commit
661b9aeb
authored
Oct 13, 2013
by
John Tapsell
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix changing the dock window title when not in advanced mode
parent
ca68c1e9
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
55 additions
and
49 deletions
+55
-49
qgroundcontrol.pro
qgroundcontrol.pro
+4
-2
MainWindow.cc
src/ui/MainWindow.cc
+3
-1
QGCToolWidget.cc
src/ui/designer/QGCToolWidget.cc
+11
-46
dockwidgeteventfilter.cpp
src/ui/dockwidgeteventfilter.cpp
+21
-0
dockwidgeteventfilter.h
src/ui/dockwidgeteventfilter.h
+16
-0
No files found.
qgroundcontrol.pro
View file @
661b9aeb
...
...
@@ -506,7 +506,8 @@ HEADERS += src/MG.h \
src
/
ui
/
px4_configuration
/
QGCPX4AirframeConfig
.
h
\
src
/
ui
/
QGCBaseParamWidget
.
h
\
src
/
ui
/
px4_configuration
/
QGCPX4MulticopterConfig
.
h
\
src
/
ui
/
px4_configuration
/
QGCPX4SensorCalibration
.
h
src
/
ui
/
px4_configuration
/
QGCPX4SensorCalibration
.
h
\
src
/
ui
/
dockwidgeteventfilter
.
h
#
Google
Earth
is
only
supported
on
Mac
OS
and
Windows
with
Visual
Studio
Compiler
macx
|
macx
-
g
++
|
macx
-
g
++
42
|
win32
-
msvc2008
|
win32
-
msvc2010
|
win32
-
msvc2012
::
HEADERS
+=
src
/
ui
/
map3D
/
QGCGoogleEarthView
.
h
...
...
@@ -728,7 +729,8 @@ SOURCES += src/main.cc \
src
/
ui
/
px4_configuration
/
QGCPX4AirframeConfig
.
cc
\
src
/
ui
/
QGCBaseParamWidget
.
cc
\
src
/
ui
/
px4_configuration
/
QGCPX4MulticopterConfig
.
cc
\
src
/
ui
/
px4_configuration
/
QGCPX4SensorCalibration
.
cc
src
/
ui
/
px4_configuration
/
QGCPX4SensorCalibration
.
cc
\
src
/
ui
/
dockwidgeteventfilter
.
cpp
#
Enable
Google
Earth
only
on
Mac
OS
and
Windows
with
Visual
Studio
compiler
macx
|
macx
-
g
++
|
macx
-
g
++
42
|
win32
-
msvc2008
|
win32
-
msvc2010
|
win32
-
msvc2012
::
SOURCES
+=
src
/
ui
/
map3D
/
QGCGoogleEarthView
.
cc
...
...
src/ui/MainWindow.cc
View file @
661b9aeb
...
...
@@ -40,6 +40,7 @@ This file is part of the QGROUNDCONTROL project
#include <QGCHilFlightGearConfiguration.h>
#include <QDeclarativeView>
#include "dockwidgettitlebareventfilter.h"
#include "dockwidgeteventfilter.h"
#include "QGC.h"
#include "MAVLinkSimulationLink.h"
#include "SerialLink.h"
...
...
@@ -895,7 +896,8 @@ void MainWindow::setDockWidgetTitleBar(QDockWidget* widget)
{
QLabel
*
label
=
new
QLabel
(
this
);
label
->
setText
(
widget
->
windowTitle
());
label
->
installEventFilter
(
new
DockWidgetTitleBarEventFilter
());
label
->
installEventFilter
(
new
DockWidgetTitleBarEventFilter
());
//Ignore mouse clicks
widget
->
installEventFilter
(
new
DockWidgetEventFilter
());
//Update label if window title changes
widget
->
setTitleBarWidget
(
label
);
}
// And if nothing should be shown, use an empty widget.
...
...
src/ui/designer/QGCToolWidget.cc
View file @
661b9aeb
...
...
@@ -33,26 +33,12 @@ QGCToolWidget::QGCToolWidget(const QString& title, QWidget *parent, QSettings* s
}
//qDebug() << "WidgetTitle" << widgetTitle;
setObjectName
(
widgetTitle
);
createActions
();
toolLayout
=
ui
->
toolLayout
;
toolLayout
->
setAlignment
(
Qt
::
AlignTop
);
toolLayout
->
setSpacing
(
8
);
QDockWidget
*
dock
=
dynamic_cast
<
QDockWidget
*>
(
this
->
parentWidget
());
if
(
dock
)
{
dock
->
setWindowTitle
(
widgetTitle
);
dock
->
setObjectName
(
widgetTitle
+
"DOCK"
);
}
// Try with parent
dock
=
dynamic_cast
<
QDockWidget
*>
(
parent
);
if
(
dock
)
{
dock
->
setWindowTitle
(
widgetTitle
);
dock
->
setObjectName
(
widgetTitle
+
"DOCK"
);
}
this
->
setWindowTitle
(
widgetTitle
);
this
->
setTitle
(
widgetTitle
);
QList
<
UASInterface
*>
systems
=
UASManager
::
instance
()
->
getUASList
();
foreach
(
UASInterface
*
uas
,
systems
)
{
...
...
@@ -63,7 +49,6 @@ QGCToolWidget::QGCToolWidget(const QString& title, QWidget *parent, QSettings* s
}
}
connect
(
UASManager
::
instance
(),
SIGNAL
(
UASCreated
(
UASInterface
*
)),
this
,
SLOT
(
addUAS
(
UASInterface
*
)));
if
(
!
instances
()
->
contains
(
widgetTitle
))
instances
()
->
insert
(
widgetTitle
,
this
);
// Enforce storage if this not loaded from settings
// is MUST NOT BE SAVED if it was loaded from settings!
...
...
@@ -80,13 +65,7 @@ QGCToolWidget::~QGCToolWidget()
void
QGCToolWidget
::
setParent
(
QWidget
*
parent
)
{
QWidget
::
setParent
(
parent
);
// Try with parent
QDockWidget
*
dock
=
dynamic_cast
<
QDockWidget
*>
(
parent
);
if
(
dock
)
{
dock
->
setWindowTitle
(
getTitle
());
dock
->
setObjectName
(
getTitle
()
+
"DOCK"
);
}
setTitle
(
getTitle
());
//Update titles
}
/**
...
...
@@ -654,34 +633,20 @@ void QGCToolWidget::setTitle()
}
}
void
QGCToolWidget
::
set
Window
Title
(
const
QString
&
title
)
void
QGCToolWidget
::
setTitle
(
const
QString
&
title
)
{
// Sets title and calls setWindowTitle on QWidget
widgetTitle
=
title
;
QWidget
::
setWindowTitle
(
title
);
}
void
QGCToolWidget
::
setTitle
(
QString
title
)
{
// Remove references to old title
/*QSettings settings;
settings.beginGroup(widgetTitle);
settings.remove("");
settings.endGroup();
settings.sync();*/
if
(
instances
()
->
contains
(
widgetTitle
))
instances
()
->
remove
(
widgetTitle
);
if
(
!
instances
()
->
contains
(
title
))
instances
()
->
insert
(
title
,
this
);
// S
witch to new title
// S
ets title and calls setWindowTitle on QWidget
widgetTitle
=
title
;
if
(
!
instances
()
->
contains
(
title
))
instances
()
->
insert
(
title
,
this
);
QWidget
::
setWindowTitle
(
title
);
QDockWidget
*
parent
=
dynamic_cast
<
QDockWidget
*>
(
this
->
parentWidget
());
if
(
parent
)
parent
->
setWindowTitle
(
title
);
// Store all widgets
//storeWidgetsToSettings();
setObjectName
(
widgetTitle
);
QDockWidget
*
dock
=
dynamic_cast
<
QDockWidget
*>
(
this
->
parentWidget
());
if
(
dock
)
{
dock
->
setWindowTitle
(
widgetTitle
);
dock
->
setObjectName
(
widgetTitle
+
"DOCK"
);
}
emit
titleChanged
(
title
);
if
(
mainMenuAction
)
mainMenuAction
->
setText
(
title
);
}
...
...
src/ui/dockwidgeteventfilter.cpp
0 → 100644
View file @
661b9aeb
#include <QDockWidget>
#include <QEvent>
#include <QLabel>
#include "dockwidgeteventfilter.h"
DockWidgetEventFilter
::
DockWidgetEventFilter
(
QObject
*
parent
)
:
QObject
(
parent
)
{}
bool
DockWidgetEventFilter
::
eventFilter
(
QObject
*
object
,
QEvent
*
event
)
{
if
(
event
->
type
()
==
QEvent
::
WindowTitleChange
)
{
QDockWidget
*
dock
=
dynamic_cast
<
QDockWidget
*>
(
object
);
if
(
dock
)
{
QLabel
*
label
=
dynamic_cast
<
QLabel
*>
(
dock
->
titleBarWidget
());
if
(
label
)
label
->
setText
(
dock
->
windowTitle
());
}
}
return
QObject
::
eventFilter
(
object
,
event
);
}
src/ui/dockwidgeteventfilter.h
0 → 100644
View file @
661b9aeb
#ifndef DOCKWIDGETEVENTFILTER_H
#define DOCKWIDGETEVENTFILTER_H
#include <QObject>
/** Event filter to update a QLabel titleBarWidget if the window's title changes */
class
DockWidgetEventFilter
:
public
QObject
{
Q_OBJECT
public:
DockWidgetEventFilter
(
QObject
*
parent
=
0
);
protected:
virtual
bool
eventFilter
(
QObject
*
object
,
QEvent
*
event
)
override
;
};
#endif // DOCKWIDGETEVENTFILTER_H
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment