mirror of
https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System.git
synced 2025-04-01 02:42:39 +08:00
Merge branch 'githubuser0xFFFF:master' into auto-hide-no-close
This commit is contained in:
commit
95c8aea94b
@ -1,5 +1,9 @@
|
|||||||
cmake_minimum_required(VERSION 3.5)
|
cmake_minimum_required(VERSION 3.5)
|
||||||
|
|
||||||
|
if (POLICY CMP0091)
|
||||||
|
cmake_policy(SET CMP0091 NEW)
|
||||||
|
endif (POLICY CMP0091)
|
||||||
|
|
||||||
# By default, the version information is extracted from the git index. However,
|
# By default, the version information is extracted from the git index. However,
|
||||||
# we can override this behavior by explicitly setting ADS_VERSION and
|
# we can override this behavior by explicitly setting ADS_VERSION and
|
||||||
# skipping the git checks. This is useful for cases where this project is being
|
# skipping the git checks. This is useful for cases where this project is being
|
||||||
|
@ -2,7 +2,7 @@ import os
|
|||||||
import sys
|
import sys
|
||||||
|
|
||||||
from PyQt5 import uic
|
from PyQt5 import uic
|
||||||
from PyQtAds import QtAds
|
import PyQtAds as QtAds
|
||||||
|
|
||||||
UI_FILE = os.path.join(os.path.dirname(__file__), 'StatusDialog.ui')
|
UI_FILE = os.path.join(os.path.dirname(__file__), 'StatusDialog.ui')
|
||||||
StatusDialogUI, StatusDialogBase = uic.loadUiType(UI_FILE)
|
StatusDialogUI, StatusDialogBase = uic.loadUiType(UI_FILE)
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
- [`FloatingContainerForceNativeTitleBar` (Linux only)](#floatingcontainerforcenativetitlebar-linux-only)
|
- [`FloatingContainerForceNativeTitleBar` (Linux only)](#floatingcontainerforcenativetitlebar-linux-only)
|
||||||
- [`FloatingContainerForceQWidgetTitleBar` (Linux only)](#floatingcontainerforceqwidgettitlebar-linux-only)
|
- [`FloatingContainerForceQWidgetTitleBar` (Linux only)](#floatingcontainerforceqwidgettitlebar-linux-only)
|
||||||
- [`MiddleMouseButtonClosesTab`](#middlemousebuttonclosestab)
|
- [`MiddleMouseButtonClosesTab`](#middlemousebuttonclosestab)
|
||||||
|
- [`DisableTabTextEliding`](#disabletabtexteliding)
|
||||||
- [Auto-Hide Configuration Flags](#auto-hide-configuration-flags)
|
- [Auto-Hide Configuration Flags](#auto-hide-configuration-flags)
|
||||||
- [Auto Hide Dock Widgets](#auto-hide-dock-widgets)
|
- [Auto Hide Dock Widgets](#auto-hide-dock-widgets)
|
||||||
- [Pinning Auto-Hide Widgets to a certain border](#pinning-auto-hide-widgets-to-a-certain-border)
|
- [Pinning Auto-Hide Widgets to a certain border](#pinning-auto-hide-widgets-to-a-certain-border)
|
||||||
@ -467,6 +468,10 @@ possible in various web browsers.
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
### `DisableTabTextEliding`
|
||||||
|
|
||||||
|
Set this flag to disable eliding of tab texts in dock area tabs.
|
||||||
|
|
||||||
## Auto-Hide Configuration Flags
|
## Auto-Hide Configuration Flags
|
||||||
|
|
||||||
### Auto Hide Dock Widgets
|
### Auto Hide Dock Widgets
|
||||||
|
@ -8,7 +8,7 @@ from PyQt5.QtWidgets import (QApplication, QLabel, QCalendarWidget, QFrame, QTre
|
|||||||
QTableWidget, QFileSystemModel, QPlainTextEdit, QToolBar,
|
QTableWidget, QFileSystemModel, QPlainTextEdit, QToolBar,
|
||||||
QWidgetAction, QComboBox, QAction, QSizePolicy, QInputDialog)
|
QWidgetAction, QComboBox, QAction, QSizePolicy, QInputDialog)
|
||||||
|
|
||||||
from PyQtAds import QtAds
|
import PyQtAds as QtAds
|
||||||
|
|
||||||
UI_FILE = os.path.join(os.path.dirname(__file__), 'mainwindow.ui')
|
UI_FILE = os.path.join(os.path.dirname(__file__), 'mainwindow.ui')
|
||||||
MainWindowUI, MainWindowBase = uic.loadUiType(UI_FILE)
|
MainWindowUI, MainWindowBase = uic.loadUiType(UI_FILE)
|
||||||
|
@ -8,7 +8,7 @@ from PyQt5.QtWidgets import (QApplication, QLabel, QCalendarWidget, QFrame, QTre
|
|||||||
QTableWidget, QFileSystemModel, QPlainTextEdit, QToolBar,
|
QTableWidget, QFileSystemModel, QPlainTextEdit, QToolBar,
|
||||||
QWidgetAction, QComboBox, QAction, QSizePolicy, QInputDialog)
|
QWidgetAction, QComboBox, QAction, QSizePolicy, QInputDialog)
|
||||||
|
|
||||||
from PyQtAds import QtAds
|
import PyQtAds as QtAds
|
||||||
|
|
||||||
UI_FILE = os.path.join(os.path.dirname(__file__), 'mainwindow.ui')
|
UI_FILE = os.path.join(os.path.dirname(__file__), 'mainwindow.ui')
|
||||||
MainWindowUI, MainWindowBase = uic.loadUiType(UI_FILE)
|
MainWindowUI, MainWindowBase = uic.loadUiType(UI_FILE)
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import sys
|
import sys
|
||||||
|
|
||||||
from PyQtAds import QtAds
|
import PyQtAds as QtAds
|
||||||
from PyQt5.QtGui import QCloseEvent
|
from PyQt5.QtGui import QCloseEvent
|
||||||
from PyQt5.QtCore import (qDebug, pyqtSlot, QObject, pyqtSignal)
|
from PyQt5.QtCore import (qDebug, pyqtSlot, QObject, pyqtSignal)
|
||||||
from PyQt5.QtWidgets import (QMainWindow, QAction, QTextEdit, QApplication,
|
from PyQt5.QtWidgets import (QMainWindow, QAction, QTextEdit, QApplication,
|
||||||
@ -70,4 +70,4 @@ if __name__ == '__main__':
|
|||||||
action.triggered.connect(on_action2_triggered)
|
action.triggered.connect(on_action2_triggered)
|
||||||
|
|
||||||
w.show()
|
w.show()
|
||||||
app.exec_()
|
app.exec_()
|
||||||
|
@ -3,7 +3,7 @@ import sys
|
|||||||
from PyQt5.QtWidgets import (QApplication, QWidget, QVBoxLayout, QMessageBox,
|
from PyQt5.QtWidgets import (QApplication, QWidget, QVBoxLayout, QMessageBox,
|
||||||
QInputDialog, QMenu, QLineEdit)
|
QInputDialog, QMenu, QLineEdit)
|
||||||
from PyQt5.QtGui import QIcon
|
from PyQt5.QtGui import QIcon
|
||||||
from PyQtAds import QtAds
|
import PyQtAds as QtAds
|
||||||
|
|
||||||
from dockindockmanager import DockInDockManager
|
from dockindockmanager import DockInDockManager
|
||||||
from perspectiveactions import LoadPerspectiveAction, RemovePerspectiveAction
|
from perspectiveactions import LoadPerspectiveAction, RemovePerspectiveAction
|
||||||
@ -200,4 +200,4 @@ class DockInDockWidget(QWidget):
|
|||||||
|
|
||||||
for closed in self.getManager().dockWidgetsMap().values():
|
for closed in self.getManager().dockWidgetsMap().values():
|
||||||
if not closed in visible_widgets:
|
if not closed in visible_widgets:
|
||||||
self.dumpStatus(widget=closed, tab=tab, suffix=" (closed)")
|
self.dumpStatus(widget=closed, tab=tab, suffix=" (closed)")
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
from PyQt5.QtWidgets import QAction, QMenu, QInputDialog, QLineEdit
|
from PyQt5.QtWidgets import QAction, QMenu, QInputDialog, QLineEdit
|
||||||
from PyQt5.QtCore import QSettings
|
from PyQt5.QtCore import QSettings
|
||||||
|
|
||||||
from PyQtAds import QtAds
|
import PyQtAds as QtAds
|
||||||
|
|
||||||
CHILD_PREFIX = "Child-"
|
CHILD_PREFIX = "Child-"
|
||||||
|
|
||||||
@ -211,4 +211,4 @@ class MoveDockWidgetAction(QAction):
|
|||||||
widget.dockManager().removeDockWidget(widget)
|
widget.dockManager().removeDockWidget(widget)
|
||||||
move_to.addDockWidget(QtAds.CenterDockWidgetArea, widget, move_to.getInsertDefaultPos())
|
move_to.addDockWidget(QtAds.CenterDockWidgetArea, widget, move_to.getInsertDefaultPos())
|
||||||
else:
|
else:
|
||||||
assert False
|
assert False
|
||||||
|
@ -4,7 +4,7 @@ import atexit
|
|||||||
|
|
||||||
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel
|
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel
|
||||||
from PyQt5.QtCore import Qt
|
from PyQt5.QtCore import Qt
|
||||||
from PyQtAds import QtAds
|
import PyQtAds as QtAds
|
||||||
|
|
||||||
from perspectives import PerspectivesManager
|
from perspectives import PerspectivesManager
|
||||||
from dockindock import DockInDockWidget
|
from dockindock import DockInDockWidget
|
||||||
@ -69,4 +69,4 @@ if __name__ == '__main__':
|
|||||||
|
|
||||||
w = MainWindow()
|
w = MainWindow()
|
||||||
w.show()
|
w.show()
|
||||||
app.exec_()
|
app.exec_()
|
||||||
|
@ -4,7 +4,7 @@ import shutil
|
|||||||
import atexit
|
import atexit
|
||||||
|
|
||||||
from PyQt5.QtCore import pyqtSignal, QSettings, QObject
|
from PyQt5.QtCore import pyqtSignal, QSettings, QObject
|
||||||
from PyQtAds import QtAds
|
import PyQtAds as QtAds
|
||||||
|
|
||||||
from dockindockmanager import DockInDockManager
|
from dockindockmanager import DockInDockManager
|
||||||
from dockindock import DockInDockWidget
|
from dockindock import DockInDockWidget
|
||||||
@ -200,4 +200,4 @@ class PerspectivesManager(QObject):
|
|||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
pass
|
pass
|
||||||
if not shutil.copy(settings.fileName(), to_save):
|
if not shutil.copy(settings.fileName(), to_save):
|
||||||
assert False
|
assert False
|
||||||
|
@ -6,7 +6,7 @@ from PyQt5.QtCore import Qt, QSignalBlocker
|
|||||||
from PyQt5.QtWidgets import (QApplication, QMainWindow, QLabel, QComboBox, QTableWidget,
|
from PyQt5.QtWidgets import (QApplication, QMainWindow, QLabel, QComboBox, QTableWidget,
|
||||||
QAction, QWidgetAction, QSizePolicy, QInputDialog)
|
QAction, QWidgetAction, QSizePolicy, QInputDialog)
|
||||||
from PyQt5.QtGui import QCloseEvent
|
from PyQt5.QtGui import QCloseEvent
|
||||||
from PyQtAds import QtAds
|
import PyQtAds as QtAds
|
||||||
|
|
||||||
|
|
||||||
UI_FILE = os.path.join(os.path.dirname(__file__), 'mainwindow.ui')
|
UI_FILE = os.path.join(os.path.dirname(__file__), 'mainwindow.ui')
|
||||||
@ -105,4 +105,4 @@ if __name__ == '__main__':
|
|||||||
|
|
||||||
w = CMainWindow()
|
w = CMainWindow()
|
||||||
w.show()
|
w.show()
|
||||||
app.exec_()
|
app.exec_()
|
||||||
|
@ -5,7 +5,7 @@ from PyQt5 import uic
|
|||||||
from PyQt5.QtCore import Qt, QMargins
|
from PyQt5.QtCore import Qt, QMargins
|
||||||
from PyQt5.QtWidgets import QApplication, QLabel, QVBoxLayout, QPlainTextEdit
|
from PyQt5.QtWidgets import QApplication, QLabel, QVBoxLayout, QPlainTextEdit
|
||||||
|
|
||||||
from PyQtAds import QtAds
|
import PyQtAds as QtAds
|
||||||
|
|
||||||
UI_FILE = os.path.join(os.path.dirname(__file__), 'MainWindow.ui')
|
UI_FILE = os.path.join(os.path.dirname(__file__), 'MainWindow.ui')
|
||||||
MainWindowUI, MainWindowBase = uic.loadUiType(UI_FILE)
|
MainWindowUI, MainWindowBase = uic.loadUiType(UI_FILE)
|
||||||
|
@ -6,7 +6,7 @@ from PyQt5.QtCore import Qt, QTimer
|
|||||||
from PyQt5.QtGui import QCloseEvent
|
from PyQt5.QtGui import QCloseEvent
|
||||||
from PyQt5.QtWidgets import QApplication, QLabel
|
from PyQt5.QtWidgets import QApplication, QLabel
|
||||||
|
|
||||||
from PyQtAds import QtAds
|
import PyQtAds as QtAds
|
||||||
|
|
||||||
UI_FILE = os.path.join(os.path.dirname(__file__), 'MainWindow.ui')
|
UI_FILE = os.path.join(os.path.dirname(__file__), 'MainWindow.ui')
|
||||||
MainWindowUI, MainWindowBase = uic.loadUiType(UI_FILE)
|
MainWindowUI, MainWindowBase = uic.loadUiType(UI_FILE)
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
# Specify the build system.
|
# Specify the build system.
|
||||||
[build-system]
|
[build-system]
|
||||||
requires = ["sip >=6.0.2, <6.3", "PyQt-builder >=1.6, <2", "PyQt5==5.15.4", "PyQt5-sip<13,>=12.8"]
|
requires = ["sip >=6.0.2", "PyQt-builder >=1.6", "PyQt5>=5.15", "PyQt5-sip>=12.8"]
|
||||||
build-backend = "sipbuild.api"
|
build-backend = "sipbuild.api"
|
||||||
|
|
||||||
# Specify the PEP 566 metadata for the project.
|
# Specify the PEP 566 metadata for the project.
|
||||||
[tool.sip.metadata]
|
[tool.sip.metadata]
|
||||||
name = "PyQtAds"
|
name = "PyQtAds"
|
||||||
version = "4.0.2"
|
version = "4.4.1"
|
||||||
summary = "Python bindings for Qt Advanced Docking System"
|
summary = "Python bindings for Qt Advanced Docking System"
|
||||||
home-page = "https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System/"
|
home-page = "https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System/"
|
||||||
license = "LGPL v2.1"
|
license = "LGPL v2.1"
|
||||||
@ -16,8 +16,10 @@ description-content-type = "text/markdown"
|
|||||||
|
|
||||||
[tool.sip.project]
|
[tool.sip.project]
|
||||||
tag-prefix = "QtAds"
|
tag-prefix = "QtAds"
|
||||||
|
dunder-init = true
|
||||||
|
|
||||||
[tool.sip.bindings.ads]
|
[tool.sip.bindings.ads]
|
||||||
|
pep484-pyi = true
|
||||||
define-macros = ["ADS_SHARED_EXPORT"]
|
define-macros = ["ADS_SHARED_EXPORT"]
|
||||||
sip-file = "ads.sip"
|
sip-file = "ads.sip"
|
||||||
include-dirs = ["src"]
|
include-dirs = ["src"]
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
%Module(name=PyQtAds, call_super_init=True, keyword_arguments="Optional", use_limited_api=True)
|
%Module(name=PyQtAds, call_super_init=True, keyword_arguments="Optional", use_limited_api=True)
|
||||||
|
%HideNamespace(name=ads)
|
||||||
|
|
||||||
%Import QtCore/QtCoremod.sip
|
%Import QtCore/QtCoremod.sip
|
||||||
%DefaultSupertype sip.simplewrapper
|
%DefaultSupertype sip.simplewrapper
|
||||||
|
|
||||||
|
@ -98,6 +98,7 @@ set_target_properties(${library_name} PROPERTIES
|
|||||||
CXX_EXTENSIONS OFF
|
CXX_EXTENSIONS OFF
|
||||||
VERSION ${VERSION_SHORT}
|
VERSION ${VERSION_SHORT}
|
||||||
EXPORT_NAME ${library_name}
|
EXPORT_NAME ${library_name}
|
||||||
|
DEBUG_POSTFIX "d"
|
||||||
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib"
|
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib"
|
||||||
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib"
|
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib"
|
||||||
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/bin"
|
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/bin"
|
||||||
|
@ -213,6 +213,7 @@ public:
|
|||||||
//!< If neither this nor FloatingContainerForceNativeTitleBar is set (the default) native titlebars are used except on known bad systems.
|
//!< If neither this nor FloatingContainerForceNativeTitleBar is set (the default) native titlebars are used except on known bad systems.
|
||||||
//! Users can overwrite this by setting the environment variable ADS_UseNativeTitle to "1" or "0".
|
//! Users can overwrite this by setting the environment variable ADS_UseNativeTitle to "1" or "0".
|
||||||
MiddleMouseButtonClosesTab = 0x2000000, //! If the flag is set, the user can use the mouse middle button to close the tab under the mouse
|
MiddleMouseButtonClosesTab = 0x2000000, //! If the flag is set, the user can use the mouse middle button to close the tab under the mouse
|
||||||
|
DisableTabTextEliding = 0x4000000, //! Set this flag to disable eliding of tab texts in dock area tabs
|
||||||
|
|
||||||
DefaultDockAreaButtons = DockAreaHasCloseButton
|
DefaultDockAreaButtons = DockAreaHasCloseButton
|
||||||
| DockAreaHasUndockButton
|
| DockAreaHasUndockButton
|
||||||
|
@ -245,7 +245,14 @@ DockWidgetTabPrivate::DockWidgetTabPrivate(CDockWidgetTab* _public) :
|
|||||||
void DockWidgetTabPrivate::createLayout()
|
void DockWidgetTabPrivate::createLayout()
|
||||||
{
|
{
|
||||||
TitleLabel = new tTabLabel();
|
TitleLabel = new tTabLabel();
|
||||||
TitleLabel->setElideMode(Qt::ElideRight);
|
if (CDockManager::testConfigFlag(CDockManager::DisableTabTextEliding))
|
||||||
|
{
|
||||||
|
TitleLabel->setElideMode(Qt::ElideNone);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TitleLabel->setElideMode(Qt::ElideRight);
|
||||||
|
}
|
||||||
TitleLabel->setText(DockWidget->windowTitle());
|
TitleLabel->setText(DockWidget->windowTitle());
|
||||||
TitleLabel->setObjectName("dockWidgetTabLabel");
|
TitleLabel->setObjectName("dockWidgetTabLabel");
|
||||||
TitleLabel->setAlignment(Qt::AlignCenter);
|
TitleLabel->setAlignment(Qt::AlignCenter);
|
||||||
|
@ -662,7 +662,6 @@ CFloatingDockContainer::CFloatingDockContainer(CDockManager *DockManager) :
|
|||||||
|
|
||||||
#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS)
|
#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS)
|
||||||
QDockWidget::setWidget(d->DockContainer);
|
QDockWidget::setWidget(d->DockContainer);
|
||||||
QDockWidget::setFloating(true);
|
|
||||||
QDockWidget::setFeatures(QDockWidget::DockWidgetClosable
|
QDockWidget::setFeatures(QDockWidget::DockWidgetClosable
|
||||||
| QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable);
|
| QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user