Merge pull request #6078 from imgntn/top_tool_tabs

Move  Edit.js Tool Window Tabs to the Top
This commit is contained in:
Ryan Huffman 2015-10-15 15:40:42 -07:00
commit 421e2a6c21
2 changed files with 21 additions and 3 deletions

View file

@ -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 {

View file

@ -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);
} }