ADS: Integrate newest base repository commits

* Activate new ADS feature focus highlight
* Remove resources.qrc and related *.svg files
* Clean up new and existing source

Base repository was merged until commit
3de877fe5635ff51a6d1205ca98aad85d204427f

Merged changes from base repository include the following:

* Fix wrong current index when removing a widget from DockAreaLayout
* Fix invisible TabWidget for DockWidgets that are not part of a
  restored state
* Enable ClickFocus for DockWidget to support focussing in case the
  content does not support it
* Move focus related functionality into DockFocusController class
* Add new DockManger config flag FocusStyling
* Add support for focus styling of FloatingWidgetTitleBar
* Improve focus handling when dropping a DockWidget
* Improve highlighting focused DockWidget
* Improve setting of DockWidgetTab focus
* Add styling of focused DockWidget
* Fix docking of floating widgets for macOS
* Fix setting of DockingStateReader file version - use internal file
  version instead of user file version
* Fix saveState() and restoreState() version handling to work like the
  function from QMainWindow
* Fix escape key handling in native window event function if event
  WM_EXITSIZEMOVE occurs
* Implement windows drag handling with native WM_ nonclient area
  messages
* Fix showing DockArea when inserting a DockWidget in a hidden DockArea
* Fix setting DockAreaTabBar index to prevent showing of tab 0 when
  inserting a DockWidget into an area with no current index tab
* Fix wrong insertion order of DockWidget when dropping a floating
  widget to the left or top container drop area
* Fix tab changes position when redocking it to the same position
* Add nullptr check to fix potential nullptr access when closing a
  FloatingDockContainer
* Fix single DockArea cannot be split
* Fix visibility issue when adding dock widget after all other dock
  widgets have ben closed
* Fix FloatingDragPreview flashing of hidden overlay when dragging the
  last visible DockWidget in non opaque docking mode
* Fix FloatingDragPreview preventing dock widget from floating when
  dragging over another dock widget
* Fix DockWidget::setWidget function to test for QAbstractScrollArea
  instead of QScrollArea. Now setWidget properly supports ItemViews like
  QTreeView or QTableView
* Fix wrong display of center drop area when dragging over invisible
  dock area title bar
* Fix bug that drop overlay sometimes was not visible when moving the
  drag preview over a floating window
* Fix dropping of FloatingDragPreview into center of dock container with
  only one single visible dock area. If this happens the dropped dock
  widget needs to get tabified
* Fix crash when trying to make a DockWidget floating in non-opaque mode
  if the DockWidget is not floatable
* Fix DockWidgetTab to provide the right size when starting floating
* Add DockWidget functions setAsCurrentTab, raise, isCurrentTab,
  isTabbed
* Add new config flag HideSingleCentralWidgetTitleBar to enable a
  central single dock widget in the main dock container (dock manager)
  without titlebar
* Fix DockContainerWidget::hasTopLevelDockWidget() and
  DockContainerWidget::topLevelDockArea() to work properly also for the
  main non floating dock container
* Fix ElidingLabel to properly support Qt::ElideNone
* Add setElideMode function to DockWidgetTab
* Add setFullScreen(), setNormal() and isFullScreen() function to
  DockWidget
* Fix takeWidget() function and fixed setWidget() function to handle
  case when there is already a content widget

Task-number: QDS-2180
Change-Id: Ie30648ba329016c91fd19e9b4e12e31e47614b18
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
Henning Gruendl
2020-06-22 16:46:25 +02:00
committed by Henning Gründl
parent e5d9cb3779
commit a98c254c59
31 changed files with 1704 additions and 876 deletions

View File

@@ -82,12 +82,12 @@ namespace ADS
/**
* Convenience function to access first tab
*/
DockWidgetTab *firstTab() const {return q->tab(0);}
DockWidgetTab *firstTab() const { return q->tab(0); }
/**
* Convenience function to access last tab
*/
DockWidgetTab *lastTab() const {return q->tab(q->count() - 1);}
DockWidgetTab *lastTab() const { return q->tab(q->count() - 1); }
}; // class DockAreaTabBarPrivate
DockAreaTabBarPrivate::DockAreaTabBarPrivate(DockAreaTabBar *parent)
@@ -140,11 +140,10 @@ namespace ADS
{
event->accept();
const int direction = event->angleDelta().y();
if (direction < 0) {
if (direction < 0)
horizontalScrollBar()->setValue(horizontalScrollBar()->value() + 20);
} else {
else
horizontalScrollBar()->setValue(horizontalScrollBar()->value() - 20);
}
}
void DockAreaTabBar::setCurrentIndex(int index)
@@ -189,9 +188,11 @@ namespace ADS
&DockAreaTabBar::elidedChanged);
dockWidgetTab->installEventFilter(this);
emit tabInserted(index);
if (index <= d->m_currentIndex || d->m_currentIndex == -1) {
if (index <= d->m_currentIndex)
setCurrentIndex(d->m_currentIndex + 1);
}
else if (d->m_currentIndex == -1)
setCurrentIndex(index);
updateGeometry();
}
@@ -235,11 +236,11 @@ namespace ADS
dockWidgetTab->disconnect(this);
dockWidgetTab->removeEventFilter(this);
qCInfo(adsLog) << "NewCurrentIndex " << newCurrentIndex;
if (newCurrentIndex != d->m_currentIndex) {
if (newCurrentIndex != d->m_currentIndex)
setCurrentIndex(newCurrentIndex);
} else {
else
d->updateTabs();
}
updateGeometry();
}
@@ -247,12 +248,11 @@ namespace ADS
DockWidgetTab *DockAreaTabBar::currentTab() const
{
if (d->m_currentIndex < 0) {
if (d->m_currentIndex < 0)
return nullptr;
} else {
else
return qobject_cast<DockWidgetTab *>(
d->m_tabsLayout->itemAt(d->m_currentIndex)->widget());
}
}
void DockAreaTabBar::onTabClicked()
@@ -292,9 +292,8 @@ namespace ADS
// If the the dock widget blocks closing, i.e. if the flag
// CustomCloseHandling is set, and the dock widget is still open,
// then we do not need to correct the index
if (currentTab->dockWidget()->isClosed()) {
if (currentTab->dockWidget()->isClosed())
i -= offset;
}
}
}
}