Coder Social home page Coder Social logo

kdab / kddockwidgets Goto Github PK

View Code? Open in Web Editor NEW
738.0 738.0 161.0 30.78 MB

KDAB's Dock Widget Framework for Qt

Home Page: https://www.kdab.com/development-resources/qt-tools/kddockwidgets

License: Other

CMake 3.05% C++ 69.08% C 4.71% QML 0.82% Python 0.42% Makefile 0.01% Ruby 0.01% Dockerfile 0.06% Batchfile 0.02% Dart 21.78% Slint 0.05%

kddockwidgets's People

Contributors

albert-astals-cid-kdab avatar alistair-baxter-kdab avatar amantia avatar bbc131 avatar bebuch avatar cogilvie avatar cschleifenbaum avatar dangelog avatar dantti avatar dfaure avatar dfaure-kdab avatar eism avatar ferdnyc avatar iamsergio avatar jacobly0 avatar jcelerier avatar jpatricer avatar kpales avatar krf avatar milianw avatar montel avatar mpersano avatar olafmandel avatar pre-commit-ci[bot] avatar redstrate avatar renatofilho avatar romanpudashkin avatar shaan7 avatar waqar144 avatar winterz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kddockwidgets's Issues

QProperties in DockWidgetBase

Hi,
it would be great, if DockWidgetBase have QProperties. At the moment the class interface is not uniform. Example:
The focus has a Qt signal:
connect(dockWidget, &KDDockWidgets::DockWidget::isFocusedChanged, ui->isFocusCheckBox, &QCheckBox::setChecked);
But for floating I must use the corresponding QAction:
connect(dockWidget->floatAction(), &QAction::toggled, ui->isFloatingCheckBox, &QCheckBox::setChecked);

Here are some suggested QProperties:
image

Furthermore for using GammaRay all QProperties will be displayed:
image

Kind Regards,
Thomas

Window repaint issue when moving dockwidgets from main window to secondary monitor

KDDockWidgets commit: 4e88b37
Windows 10
QT 5.14.2
When using 2 identical model side by side displays, each set to same display resolution, sliding a dockwidget panel from one monitor to the other monitor causes the dock widget panel to not repaint properly at right edge of window. Slightly expanding/contracting the widget causes a repaint which will then paint properly.

Reproduce:
Launch example test app.
Slide widget containing DockWidget #6, #7 & #8 to the other display.
Note dock widget on right hand side & bottom of window has a repaint issue.

This issue can also be reproduced by sliding a contained dock widget from one monitor to the 2nd monitor. Letting the widget stay in the 2nd monitor by releasing the drag button on the mouse. Then sliding the widget back to the original monitor and releasing the drag button on the mouse.

Annotation 2020-05-31 174726

Showing the close button for a tab when hovering over the tab

Hi,
at this moment, it is not possible to hide the close icon on the tabs if we choose closable tabs.
Will it be possible to provide a feature like in visual studio, where the close icon appears on the tab widget upon mouse hover event
and close icon is also visible on currently active Tab.

In the attached fig we see close buttons of all the tabs, irrespective of the active status of the tab and mouse position.
TabsWithCloseButton

Kind Regards
Nandish

Why are some Widgets private?

I'm wondering why some widgets are private.
I'm as a user of the library I see this "interface":
| Config.h
| docks_export.h
| DockWidget.h
| DockWidgetBase.h
| FocusScope.h
| FrameworkWidgetFactory.h
| KDDockWidgets.h
| LayoutSaver.h
| LayoutSaver_p.h
| MainWindow.h
| MainWindowBase.h
| QWidgetAdapter.h
|
+---multisplitter
| Item_p.h
| multisplitter_export.h
| Separator_p.h
| Separator_qwidget.h
| Widget.h
| Widget_qwidget.h
|
---private
| Draggable_p.h
| DropIndicatorOverlayInterface_p.h
| FloatingWindow_p.h
| Frame_p.h
| TitleBar_p.h
|
---widgets
FloatingWindowWidget_p.h
FrameWidget_p.h
QWidgetAdapter_widgets_p.h
TabBarWidget_p.h
TabWidgetWidget_p.h
TabWidget_p.h
TitleBarWidget_p.h
For example I can reimplement/inherit from TitleBarWidget which is located in private/widgets/TitleBarWidget_p.h.

It is strange to use something from a "private" folder. If I use for exmaple QToolBar https://doc.qt.io/qt-5/qtoolbar.html it is not hidden in a private folder.

Furthermore in the documentation the "private" classes/types are not listed (https://docs.kdab.com/kddockwidgets/latest/annotated.html). Of course I can change the doxygen configuration to list the private classes, but for me there aren't private.

For me it is interessting to see the inheritance graph to have a feeling how the classes relate to each other.

Kind Regards,
Thomas

Build error

Hello. I cannot build project.

cmake -G Ninja
CMake Error: Could not find cmake module file: CMakeDetermineHOMEPAGE_URLCompiler.cmake
CMake Error: Error required internal CMake variable not set, cmake may not be built correctly.
Missing variable is:
CMAKE_HOMEPAGE_URL_COMPILER_ENV_VAR
CMake Error: Error required internal CMake variable not set, cmake may not be built correctly.
Missing variable is:
CMAKE_HOMEPAGE_URL_COMPILER
CMake Error: Could not find cmake module file: /home/andrei/KDDockWidgets/CMakeFiles/3.10.2/CMakeHOMEPAGE_URLCompiler.cmake
CMake Error: Could not find cmake module file: CMakeDeterminehttps://github.com/KDAB/KDDockWidgetsCompiler.cmake
CMake Error: Error required internal CMake variable not set, cmake may not be built correctly.
Missing variable is:
CMAKE_https://github.com/KDAB/KDDockWidgets_COMPILER_ENV_VAR
CMake Error: Error required internal CMake variable not set, cmake may not be built correctly.
Missing variable is:
CMAKE_https://github.com/KDAB/KDDockWidgets_COMPILER
CMake Error: Could not find cmake module file: /home/andrei/KDDockWidgets/CMakeFiles/3.10.2/CMakehttps://github.com/KDAB/KDDockWidgetsCompiler.cmake
CMake Error at CMakeLists.txt:3 (project):
No CMAKE_HOMEPAGE_URL_COMPILER could be found.

Tell CMake where to find the compiler by setting the CMake cache entry
CMAKE_HOMEPAGE_URL_COMPILER to the full path to the compiler, or to the
compiler name if it is in the PATH.

CMake Error: Could not find cmake module file: CMakeHOMEPAGE_URLInformation.cmake
CMake Error at CMakeLists.txt:3 (project):
No CMAKE_https://github.com/KDAB/KDDockWidgets_COMPILER could be found.

Tell CMake where to find the compiler by setting the CMake cache entry
CMAKE_https://github.com/KDAB/KDDockWidgets_COMPILER to the full path to
the compiler, or to the compiler name if it is in the PATH.

CMake Error: Could not find cmake module file: CMakehttps://github.com/KDAB/KDDockWidgetsInformation.cmake
CMake Error: CMAKE_HOMEPAGE_URL_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_https://github.com/KDAB/KDDockWidgets_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!

Tabs without icons

Hi,
With the below code, I could add icons to all the dockwidgets.
By adding the below lines in KDDockWidgets::DockWidgetBase *MyMainWindow::newDockWidget() Function
QIcon myIcon(":/assets/bakterium.svg");
dock->setIcon(myIcon);
It appears as shown in attachment TabwithIcons.png

However i needed tabwidgets without icon, but the dockwidgets with icons.
I could achieve this by tweaking the function
void TabWidgetWidget::insertDockWidget(int index, DockWidgetBase *dw,
const QIcon &icon, const QString &title)
{
insertTab(index, dw, title);
}

It appears as shown in TabwithoutIcons.

TabwithIcons

TabwithoutIcons

Would it be possible for you to provide an interface where in which we could create dockwidgets with icons and the icons does not appear when the dock widget is tabbed.

This is required in our application and we would highly appriciate the efforts from your side.

Kind Regards
Nandish

undocking qopenglwidget results in a blank widget

Hi, I tested the KDDockWidgets with the cube example QOpenGLWidget from Qt 5.12. It initializes the widget ok but as soon as I undock the widget, it doesn't draw my gl widget but instead just shows a floating window with nothing in it. When I stepped through with the debugger, it calls InitializeGL after undocking, but it never calls the resizeGL or paintGL functions within my class.

Scaling problem if flag aero snap is disabled

There is a scaling problem with the kddock widgets example. How to reproduce:
2 screens (100% and 150%)
Build the example with
flags &= ~KDDockWidgets::Config::Flag_AeroSnapWithClientDecos;
The animation explains the rest:
scaling_problem_no_aerosnap
The behaviour is crashing the application (like in this animation) or the dock widget is getting bigger/smaller.

Dock widgets reusage

Hello! How can I safely delete previous widget and insert another one into DockWidget?
Do I have to assign another unique name to dock widget in the same MainWindow instance, if I recreate dock widget itself?

Add option to not resize sibling widgets when docking

When docking widgets, KDDockWidgets resizes the entire container where the widget is going to go, resizing every widget in that container, seen here:
kddockwidgets_behavior

It would be nice to have an option to have dragged widgets split the area of the widget where it is being dragged on, without modifying any other widgets. The AdvancedDockingSystem repo does this:
ads_behavior

Calling close before DockWidget reusage

Hello! The question is about resetting DockWidget. When I simply remove widgetA after calling setWidget(widgetB), then I've got empty area besides widgetB. Do I have to call close()/forceClose()?

dock->setWidget(widgetA);
dock->close(); // or forceClose()?
dock->setWidget(widgetB);
delete widgetA;

Have you ever tested it on windows?

I really tried but still failed. I installed ninga and configured the required environment. It's almost the latest step. But when I try to run cmake step, I encountered the following problems.

CMake Error at CMakeLists.txt:10 (find_package):
Could not find a configuration file for package "KDDockWidgets" that is
compatible with requested version "".
The following configuration files were considered but not accepted:
C:/library/kddockwidgets/src/KDDockWidgetsConfig.cmake, version: 0.1 (64bit)

ps:
when I use command
cmake -DCMAKE_PREFIX_PATH=C:\library\kddockwidgets,

error occured as follows,
Could not find a package configuration file provided by "KDDockWidgets" with any of the following names:
KDDockWidgetsConfig.cmake
kddockwidgets-config.cmake

so I use this instead
cmake -DKDDockWidgets_DIR=C:\library\kddockwidgets\src

could you please help me,thanks a lot

use 'restoreLayout' to restore layout from file, resize again, error occurred!

Environment:
Windows 10;
Qt 5.12.6;
MSVC 2017 community;
Cmake 3.15.2.

here is my code:
@Code1

    KDDockWidgets::LayoutSaver saver;
if (true == saver.saveToDisk())
{
	auto arr = saver.serializeLayout();
	std::string s = saver.serializeLayout().toStdString();
	std::ofstream ofile(".\\layout.config", ios::out);
	if (ofile.is_open())
	{
		ofile << s;
		ofile.close();
	}
	saver.restoreLayout(arr);
}

// @Code1
@Code2

    std::ifstream ifile("layout.config", ios::in);
if (ifile.is_open())
{
	std::string temp, s;
	while (std::getline(ifile, temp))
	{
		s += temp;
		s += "\n";
	}
		
	QByteArray arr = QByteArray::fromStdString(s);
	KDDockWidgets::LayoutSaver saver;
	saver.restoreLayout(arr);
}

// @Code2

I hope to use the last layout, when opening the app again.
but, the following error occurred!
1234

I tried to solve the error, but I failed. Is it possible that the information ‘saver.serializeLayout()’ keeps is not comprehensive?

Build error at first step - target "kddockwidgets_multisplitter"

Download commit 180fb96

cd s:\KDDockWidgets-master
cmake -DCMAKE_INSTALL_PREFIX=S:\KDDockWidgets

ERROR:
-- Selecting Windows SDK version 10.0.18362.0 to target Windows 10.0.18363.
CMake Error at src/CMakeLists.txt:157 (install):
install TARGETS given target "kddockwidgets_multisplitter" which does not
exist in this directory.

-- Configuring incomplete, errors occurred!
See also "S:/QT/KDDockWidgets-master/CMakeFiles/CMakeOutput.log".

QT_BEGIN_NAMESPACE is missing

The QT_BEGIN_NAMESPACE and QT_END_NAMESPACE macros are missing. So the code currently will not compile for Qt5 Builds using a different Namespace.

Bug: dock widget does not appear at previous place

Steps:

  1. Attach several dock widgets to some floating window
  2. try to hide one of dock widget (toggleAction()->setChecked(false))
  3. then show it (toggleAction()->setChecked(true))

Result: This dock widget does not appear at previos place.

Bug only with floating windows.
Window 10, Qt 5.11.0 and Qt 5.14.1

Docking does not work

After installing the KDDockWidget library into my program and building the example project, neither allow docking
Programmatic docking is functional but the interface for docking floating windows nor the functionality itself works
I created a custom (*.pri) file in order to import the library as I have with my other libraries, rather than using the cmake implementation - I am unsure if this is the reason this is happening
https://streamable.com/ybnwt

Layout not working with different monitor scaling

  • Start a program on a screen with a scaling set at 125%
  • Move to another screen with scaling set at 100%: the application is unusable
  • Resize the application: the layout is destroyed
  • Move the application back to the first screen: it works again

Reorder tabs

Hi, is it possible to enable changing the order of the tabs by dragging? You can't do it by default in the example, I was wondering if there are any flags to enable that functionality.

Crash when quickly clicking on the "close widget".

Environment:
Windows 8 and 10;
Qt 5.12.3 and 5.12.4;
mingw (gcc 8.3) and MSVC 19.16;
Cmake 3.12.

Steps to reproduce:

  1. Open example application.
  2. Click as fast as you can on "close" at some dock widget.
  3. Do move action with another opened dock widget.

I assume that this crash happens when you have time to click twice or more on the "close" button.

crash3

Inform the underlaying widget if docked or floating state is entered

Hi,
we have widgets which will display different gui elements (e.g. toggle visiblity of a toolbar) depending if the dockwidget is docked or is a flaoting window.
It would be great if the underlaying widget will be informed if the dockwidget is docked or floating.
I have prepared two suggestions with connecting signal/slot:
image

Or do you have already a solution for this?
Greetings,
Thomas

What is the minimum required Qt version?

My project (x64dbg) is using Qt 5.6 and I managed to get it to compile on Qt 5.6 with minimal configuration changes. However I'd like to know what Qt version is officially required as a minimum version, because things do not seem to work very well on this version.

Module disco.cli

Traceback (most recent call last):
File "C:\Server\sborka\dcbot.py", line 1, in
from disco.cli import disco_main
ImportError: No module named disco.cli
[ERROR] Erro nas Portas server. Reiniciar servidor 3 seconds

Help, i try to install this module, but it gives an error.

DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
ERROR: Could not find a version that satisfies the requirement disco.cli (from versions: none)
ERROR: No matching distribution found for disco.cli

Wrong include in QWidgetAdapter

Hi,
there is a wrong include path in QWidgetAdapter.h:

#include "../multisplitter/Widget_qwidget.h"

It should be

#include "multisplitter/Widget_qwidget.h"

image

Background: In our project we didn't added the include dir "multisplitter". Therefore Widget_qwidget.h couldn't be found.

If the multisplitter dir is important then please add it to the cmake file:
image

Greetings,
Thomas

Why examples depend on library installation?

As a user, I don't want to install anything to see a demo. What I want is to build a library, build examples, and check them out. Why should I care about how to make examples work?

Also as a developer, I don't want to reinstall the library after each library change. What I want is to rebuild the library and see my changes quickly.

I suggest getting rid of installation dependency for library examples.

Add lazy resized separator

In many cases resizing via separator on the fly causes flicking and glaring of rendered content inside a widget. It would be nice to have an option of lazy resizing separator to get a more pleasant user's perception.
lazy_sep

Status of QtQuick implementation?

Apologies if this is the wrong place, but just generally curious about the status of using this in a QtQuick-based project? I see many references to it across the source files, but note that it is still part of the 'Roadmap' at the same time. It seems like it is not quite functional yet, but please correct me if I'm wrong.

Assuming there is still work to be done, is there any particular way to be helpful in terms of contributions?

A click on tabs there is no focus changed

With the flag KDDockWidgets::Config::Flag_TitleBarIsFocusable the title bar is able to get the focus changed.
But the tabs we need the same functionality. A click on a tab the focus changed signal should be emitted.
In the following animation I started the example with "-p". So the content and the title bar react on the click event, but not the tabs:
Click_on_tab_No_Focus
This even more important, if the titlebar is hidden.
Kind Regards,
Thomas

Move floating window before show does ignore pos

To reduce screen flickering I need to be able to set the position of a newly created floating dock widget before calling show / raise.

Currently this does not seem possible because the framework centers newly created floating widgets automatically.

IsDockedToMainWindow()

Hi Sergio,

could you please provide an interface like IsDockedToMainWindow() which informs if the dock widget is docked to mainWindow or if its docked to some other dock widget.
For example in the attach,
MainWindow

Dockwidget 1, 3,4,5,8 are docked to Mainwindow and should return true.

For example in attach
DockedInsideFloatingWindow

Dockwidget 0,3,4 are not docked to mainwindow and should return false.

Dockwidget->IsDockedToMainWindow().

I have a requirement to dock the widget or float depending on if the widget is docked to main window or not.

Kind Regards
Nandish

Missing forward headers

Hi,
I would like to extend the kddockwidgets_example with the KDDockWidgets::TabBar and KDDockWidgets::TabWidget. But the forward headers of TabBar and TabWidget are missing. A look into the fwd_headers folder there is only TitleBar:
image
And the FrameworkWidgetFactory have a lot of futher Widgets which can be reimplemented:
image
Please add the missing forward headers.

Furthermore the includes in MyFrameworkWidgetFactory are not needed, because of the forward decarations in kddockwidgets/FrameworkWidgetFactory.h.
image

Here is the example of the missing TabWidget header:
image

Do you need further information?
Kind Regards,
Thomas Lämmlein

Crash when using the no titlebar option if trying to dock a new widget

Hi,

using the current master (14.Aug.2020) compiled with Qt5.15 VS2019 on Windows 10, if you start the examples with -t,
the application crashes when trying to dock a new window to the left dockable area.

I hope the following gif illustrates my problem:
kddw-crash

P.S.: no code changes where made.

Icons / pixmaps are not at the right size in hidpi screens

See attached image, with Qt Creator for reference

  • the buttons on docks are too big visually when comparing to lodpi screens
  • they are pixelated
  • the central icons which appear when moving are also pixelated
  • the line under the tab seems to be missing
  • the tab icon is too large and pixelated

out12

Bug in renaming Floating window Titlebar

Hello Sergio,

in the Dock Widget example program, once we drag out the docked widgets from the Floating window (technically not floating because it has multiple dock widgets with in), the window title is wrongly updated.
Attached gif is self explanatory.
FloatingWndBug

However this happens only for the first time, then on we get the correct name on the title bar.
Could you please fix this.

Kind Regards
Nandish

Floating signal bug

Hello Sergio,

I added the below code
----------------------------MyWidget.cpp----------------------------
MyWidget::MyWidget(const QString &backgroundFile, const QString &logoFile, QWidget parent)
: QWidget(parent)
{
m_is_floating_checkbox = new QCheckBox(this);
m_label = new QLabel(this);
m_label->setStyleSheet("QLabel { background-color : orange; color : black; }");
m_label->setText("Floating");
QFont f( "Arial", 12, QFont::Bold);
m_label->setFont( f);
m_label->move(20,0);
....
....
....
}
void MyWidget::connectTo(KDDockWidgets::DockWidget
dock) {
connect(dock->floatAction(), &QAction::toggled, m_is_floating_checkbox, &QCheckBox::setChecked);
bool val = dock->floatAction()->isChecked();
m_is_floating_checkbox->setChecked(val);
}
----------------------------MyWidget.h----------------------------
class MyWidget : public QWidget
{
...
...
public:
void connectTo(KDDockWidgets::DockWidget* parent);
protected:
QCheckBox* m_is_floating_checkbox = nullptr;
QLabel* m_label = nullptr;
};
---------------------------MyMainWindow.cpp------------------------
MyMainWindow::MyMainWindow(.. ) {
...
...
connect(newAction, &QAction::triggered, this, [] {
static int count = 0;
count++;
auto w = newMyWidget();
w->setGeometry(100, 100, 400, 400);
auto dock = new KDDockWidgets::DockWidget(QStringLiteral("new dock %1").arg(count));
dock->setWidget(w);
w->connectTo(dock);
dock->resize(600, 600);
dock->show();
});
}
KDDockWidgets::DockWidgetBase *MyMainWindow::newDockWidget()
{
....
....
myWidget->connectTo(dock);
count++;
return dock;
}

To simplify, i have added a checkbox which will be checked if the window is floating. But in the below gif, you can see that checkbox remains checked when dock widget is docked to another floating widget.

FloatingSignalBug

We do not see this issue when widgets are tabbed.
FloatingSignalBug2

If you need more information, please feel free to write back.

Kind Regards
Nandish

No focus when widget docked to floating window

Hello Sergio,

When I dock a newdockwidget to another newdockwidget, exactly at this point none of the tab is active.
Please see the below gif.
DockingFocusBug

I expected the widget which i docked to have focus, but that is not the case.

Kind Regards
Nandish

cmake requires pkg_config for Python bindings on WIN32

Following errors occurs while running cmake on Windows with -DOPTION_BUILD_PYTHON_BINDINGS=ON
The error is due to missing pkg_config

CMake Error at C:/Program Files/CMake/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:164 (message):
  Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
Call Stack (most recent call first):
  C:/Program Files/CMake/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:445 (_FPHSA_FAILURE_MESSAGE)
  C:/Program Files/CMake/share/cmake-3.17/Modules/FindPkgConfig.cmake:45 (find_package_handle_standard_args)
  cmake/Python/FindShiboken2.cmake:20 (find_package)
  python/CMakeLists.txt:14 (find_package)

The error is due to find_package(PkgConfig REQUIRED) line in the following cmake files:

  • KDDockWidgets/cmake/Python/FindPySide2.cmake
  • KDDockWidgets/cmake/Python/FindShiboken2.cmake

Both cmake files run happily when

find_package(PkgConfig REQUIRED)
pkg_check_modules(SHIBOKEN2_PRIV shiboken2 QUIET)

is replaced with:

if(NOT WIN32)
    find_package(PkgConfig REQUIRED)
    pkg_check_modules(SHIBOKEN2_PRIV shiboken2 QUIET)
endif()

So WIN32 specific logic is implemented in these files, but crash occurs due to pkg_config not found.

Suggested patch attached. Happy to submit a PR, if you think that's valid.
win32_cmake_files.patch.txt

Tested on:
Windows 10 version 1909 / CMake 3.17.0 / cl.exe 19.25.28611 (x64) / Qt 5.15.0

Thanks for creating Python bindings for KDDockWidgets!

Add icon to maximize/unmaximize docks

When a dock is extracted, it's possible to maximize it by double clicking on the title bar.

Add an icon to maximize/unmaximize in the titlebar, like on VS:
image
image

It is possible to change the title bar color for toggle active state for a dock widget?

Hi,
my goal is to have a different title bar color if the dock widget is "active".
I (re)implemented the "MyTitleBar" in the kddockwidgets example:

void paintEvent(QPaintEvent*) override
	{
		QPainter p(this);
		QColor c = isActiveWindow() ? QColor("#F28D26") : Qt::gray;
		p.fillRect(rect(), c);
		p.drawText(rect().adjusted(5, 0, 0, 0), Qt::AlignLeading | Qt::AlignVCenter, title());
	}

But this is not right. It changes the title bar color if the whole window is active. I would like to change the color for dock widget.

The following animation shows that only the whole window is changing the color and not the dock widget.

active_dock_widget

In Visual Studio it is possible to change the "active" color of each docking window.
active_dock_widget_visual_studio

Greetings,
Thomas

Removable Title bar with docked Tab Widgets.

Hi,

we find that the title bar occupies so much space, specially when Docked and has more Tabs with in the dock widget. In our product we are trying to eliminate the title bar if the widget has more than one tab and is docked to another widget.
In the attach you shall find 3 different screen shots.
In MainWindow pic,
MainWindow we would want to remove titlebar dockwidget#4.
FloatingWindow

However we would like to keep the title bar if the widget is floating, as seen in FloatingWindow pic.

Would it be possible for you to provide such an option or interface.

Kind Regards
Nandish

Demo not showing close buttons on tabs

Even though the demo should have closable tabs, you can't close them in any way. There is no button on the tabs or a context menu on the tabs to close them. This is what I see:
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.