mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 07:19:05 +02:00
Merge pull request #6078 from imgntn/top_tool_tabs
Move Edit.js Tool Window Tabs to the Top
This commit is contained in:
commit
421e2a6c21
2 changed files with 21 additions and 3 deletions
|
@ -52,7 +52,10 @@ WebWindowClass::WebWindowClass(const QString& title, const QString& url, int wid
|
||||||
|
|
||||||
dockWidget->setWidget(_webView);
|
dockWidget->setWidget(_webView);
|
||||||
|
|
||||||
toolWindow->addDockWidget(Qt::RightDockWidgetArea, dockWidget);
|
auto titleWidget = new QWidget(dockWidget);
|
||||||
|
dockWidget->setTitleBarWidget(titleWidget);
|
||||||
|
|
||||||
|
toolWindow->addDockWidget(Qt::TopDockWidgetArea, dockWidget, Qt::Horizontal);
|
||||||
|
|
||||||
_windowWidget = dockWidget;
|
_windowWidget = dockWidget;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -22,6 +22,8 @@ ToolWindow::ToolWindow(QWidget* parent) :
|
||||||
_hasShown(false),
|
_hasShown(false),
|
||||||
_lastGeometry() {
|
_lastGeometry() {
|
||||||
|
|
||||||
|
setTabPosition(Qt::TopDockWidgetArea, QTabWidget::TabPosition::North);
|
||||||
|
|
||||||
# ifndef Q_OS_LINUX
|
# ifndef Q_OS_LINUX
|
||||||
setDockOptions(QMainWindow::ForceTabbedDocks);
|
setDockOptions(QMainWindow::ForceTabbedDocks);
|
||||||
# endif
|
# endif
|
||||||
|
@ -31,6 +33,7 @@ ToolWindow::ToolWindow(QWidget* parent) :
|
||||||
bool ToolWindow::event(QEvent* event) {
|
bool ToolWindow::event(QEvent* event) {
|
||||||
QEvent::Type type = event->type();
|
QEvent::Type type = event->type();
|
||||||
if (type == QEvent::Show) {
|
if (type == QEvent::Show) {
|
||||||
|
|
||||||
if (!_hasShown) {
|
if (!_hasShown) {
|
||||||
_hasShown = true;
|
_hasShown = true;
|
||||||
|
|
||||||
|
@ -40,10 +43,12 @@ bool ToolWindow::event(QEvent* event) {
|
||||||
int titleBarHeight = UIUtil::getWindowTitleBarHeight(this);
|
int titleBarHeight = UIUtil::getWindowTitleBarHeight(this);
|
||||||
int topMargin = titleBarHeight;
|
int topMargin = titleBarHeight;
|
||||||
|
|
||||||
_lastGeometry = QRect(mainGeometry.topLeft().x(), mainGeometry.topLeft().y() + topMargin,
|
_lastGeometry = QRect(mainGeometry.topLeft().x(), mainGeometry.topLeft().y() + topMargin,
|
||||||
DEFAULT_WIDTH, mainGeometry.height() - topMargin);
|
DEFAULT_WIDTH, mainGeometry.height() - topMargin);
|
||||||
}
|
}
|
||||||
|
|
||||||
setGeometry(_lastGeometry);
|
setGeometry(_lastGeometry);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
} else if (type == QEvent::Hide) {
|
} else if (type == QEvent::Hide) {
|
||||||
_lastGeometry = geometry();
|
_lastGeometry = geometry();
|
||||||
|
@ -109,6 +114,7 @@ void ToolWindow::addDockWidget(Qt::DockWidgetArea area, QDockWidget* dockWidget)
|
||||||
|
|
||||||
// We want to force tabbing, so retabify all of our widgets.
|
// We want to force tabbing, so retabify all of our widgets.
|
||||||
QDockWidget* lastDockWidget = dockWidget;
|
QDockWidget* lastDockWidget = dockWidget;
|
||||||
|
|
||||||
foreach (QDockWidget* nextDockWidget, dockWidgets) {
|
foreach (QDockWidget* nextDockWidget, dockWidgets) {
|
||||||
tabifyDockWidget(lastDockWidget, nextDockWidget);
|
tabifyDockWidget(lastDockWidget, nextDockWidget);
|
||||||
lastDockWidget = nextDockWidget;
|
lastDockWidget = nextDockWidget;
|
||||||
|
@ -118,8 +124,17 @@ void ToolWindow::addDockWidget(Qt::DockWidgetArea area, QDockWidget* dockWidget)
|
||||||
}
|
}
|
||||||
|
|
||||||
void ToolWindow::addDockWidget(Qt::DockWidgetArea area, QDockWidget* dockWidget, Qt::Orientation orientation) {
|
void ToolWindow::addDockWidget(Qt::DockWidgetArea area, QDockWidget* dockWidget, Qt::Orientation orientation) {
|
||||||
|
QList<QDockWidget*> dockWidgets = findChildren<QDockWidget*>();
|
||||||
|
|
||||||
QMainWindow::addDockWidget(area, dockWidget, orientation);
|
QMainWindow::addDockWidget(area, dockWidget, orientation);
|
||||||
|
|
||||||
|
QDockWidget* lastDockWidget = dockWidget;
|
||||||
|
|
||||||
|
foreach(QDockWidget* nextDockWidget, dockWidgets) {
|
||||||
|
tabifyDockWidget(lastDockWidget, nextDockWidget);
|
||||||
|
lastDockWidget = nextDockWidget;
|
||||||
|
}
|
||||||
|
|
||||||
connect(dockWidget, &QDockWidget::visibilityChanged, this, &ToolWindow::onChildVisibilityUpdated);
|
connect(dockWidget, &QDockWidget::visibilityChanged, this, &ToolWindow::onChildVisibilityUpdated);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue