Skip to content

Gui: overlay dock widgets user interface #7888

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Oct 11, 2023

Conversation

realthunder
Copy link
Collaborator

@github-actions github-actions bot added Mod: Core Issue or PR touches core sections (App, Gui, Base) of FreeCAD Mod: TechDraw Related to the TechDraw Workbench labels Nov 27, 2022
@freecadci
Copy link

pipeline status for feature branch PR_7888. Pipeline 706385033 was triggered at 7cf7aac. All CI branches and pipelines.

@luzpaz luzpaz added the Topic: User Interface Issue related UI / UX label Nov 28, 2022
@freecadci
Copy link

pipeline status for feature branch PR_7888. Pipeline 706832222 was triggered at 9bd4415. All CI branches and pipelines.

@adrianinsaval
Copy link
Member

adrianinsaval commented Nov 28, 2022

I'll try to give a more detailed report later or during the week but it is behaving very buggy for me right now, for starters it's not really transparent for me
image
And I can't manage to resize the panels to show for example teh property view and tree view at the same time one above the other or the python console and report view one besides the other.

luzpaz added a commit to luzpaz/FreeCAD-snap that referenced this pull request Nov 28, 2022
@luzpaz
Copy link
Contributor

luzpaz commented Nov 28, 2022

Snap test package being generated. Watch this space for updates

Edit: build available (until retriggered if new commits are made to this PR) at FreeCAD/FreeCAD-snap#72 (comment)

Edit2: updated ☝️

Copy link
Member

@chennes chennes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've only looked at the code for the first four commits so far, but it looks very good. I've left a few small comments, nothing blocking a merge if you don't get to them. I love the changes to Parameter, thanks for doing that.

switch(static_cast<int>(getParamType())) {
case QMetaType::Int:
case QMetaType::LongLong:
index = findData((int)getWindowParameter()->GetInt(entryName(), m_Default.toInt()));
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like a couple stray C-style casts are floating around in here.

case FCGroup:
return "FCParamGroup";
default:
return 0;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think some static analyzers are going to flag this: consider nullptr (or throw something).

pcTemp)->getAttributes()->getNamedItem(
XStr("Name").unicodeForm())->getNodeValue()).c_str();
// check on filter condition
if (sFilter == NULL || Name.find(sFilter)!= std::string::npos) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NULL -> nullptr


/** @name methods for generic attribute handling */
//@{
enum ParamType {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any reason not to use a class enum?

@chennes
Copy link
Member

chennes commented Nov 29, 2022

@realthunder I am getting a strange multiply-defined-symbol error when I compile on Windows:

Error	LNK2005	"public: virtual __cdecl Base::Observer<char const *>::~Observer<char const *>(void)" (??1?$Observer@PEBD@Base@@UEAA@XZ) already defined in EditModeCoinManager.obj	SketcherGui	E:\FreeCAD\FreeCAD-build\src\Mod\Sketcher\Gui\FreeCADGui.lib(FreeCADGui.dll)	1	

Any idea what's causing this?

@realthunder
Copy link
Collaborator Author

@chennes Commit added for a fix. Please try. I've also made some code changes according to your suggestion.

@freecadci
Copy link

pipeline status for feature branch PR_7888. Pipeline 708120807 was triggered at 4de2174. All CI branches and pipelines.

@chennes
Copy link
Member

chennes commented Nov 29, 2022

@chennes Commit added for a fix. Please try. I've also made some code changes according to your suggestion.

Thanks, Windows build compiles now.

@luzpaz
Copy link
Contributor

luzpaz commented Nov 29, 2022

Retriggering Snap build

Edit: Done. New snap available.

@chennes
Copy link
Member

chennes commented Dec 3, 2022

I think the first five commits here are obviously improvements, and can be (uncontroversially) merged. So I propose to cherry-pick those commits, so that the remainder of the review can focus on the more exciting things in this PR. That's:

  • [Base/App: add new signal interface to Parameter] 2c9b560
  • [Tools: add utility script for code generation using cog] 4b8ed4d
  • [Gui: split out TreeParams into its own source files] d27748c
  • [Gui: support more parameter types in PrefComboBox] 6d3a574
  • [Gui: fix transparency saving in PrefColorButton] e0da4c0

plus the final new commit,

  • [Base: fix Windows build issue] 4de2174

@realthunder any objection to this? Obviously you'll have to rebase afterwards.

@realthunder
Copy link
Collaborator Author

That's great! Thanks @chennes

@chennes
Copy link
Member

chennes commented Dec 3, 2022

The cherry-pick is failing because that set of commits won't compile on its own (at least on MSVC): I'm missing a definition for Gui::TreeWidget::setIconHeight -- where can I find that?

@realthunder
Copy link
Collaborator Author

realthunder commented Dec 3, 2022

Please comment out the setIconHeight() call inside TreeParams::onIconSizeChanged(), in TreeParams.cpp. I'll add it back when I rebase.

@chennes
Copy link
Member

chennes commented Dec 3, 2022

OK, those six commits I mentioned above were cherry-picked -- I had to rebase before committing, so the hashes will be different. I also added 848e6cc to comment out those two problematic lines.

Copy link
Member

@chennes chennes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Another round of comments below, focusing entirely on the code in commit 998afb8. I did not complete my review of OverlayWidgets.* due to their size. I'll return to it once some documentation is in place.

if(!prop)
prop = new PropertyView(this);

modelIndex = tabs->insertTab(0, splitter,trUtf8("Model"));
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't trUtf8 the Qt4 way of doing it? As of Qt5 everything is UTF-8, right?

Comment on lines 108 to 110
Gui::PropertyView * prop = nullptr;
Gui::TreePanel * tree = nullptr;
Gui::TaskView::TaskView * taskPanel = nullptr;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are owned by this class, right? Now might be a good opportunity to make them unique_ptr.

sGroup = "View";
sMenuText = QT_TR_NOOP("Toggle transparent for all");
sToolTipText = QT_TR_NOOP("Toggle transparent for all overlay docked window.\n"
"This makes the docked widget stay transparent at al times.");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

al -> all

sGroup = "Standard-View";
sMenuText = QT_TR_NOOP("Toggle transparent");
sToolTipText = QT_TR_NOOP("Toggle transparent mode for the docked widget under cursor.\n"
"This makes the docked widget stay transparent at al times.");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

al -> all

if (static_cast<QMouseEvent*>(e)->buttons() != Qt::NoButton)
return false;
auto pos = QCursor::pos();
const int m = 5;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IMO m is not descriptive enough a name for this variable, especially since it looks like a magic number. Does this behave on high-DPI displays? I'm not a big fan of hardcoding this here.

drawLine = false;
update();
}
return hit;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It doesn't look like client code ever actually uses this return value (which is a bool, despite hit being an int?!).

// This is necessary to capture any focus lost from switching the tab,
// otherwise the lost focus will leak to the parent, i.e. MdiArea, which may
// cause unexpected Mdi sub window switching.
// setFocusPolicy(Qt::StrongFocus);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If the comment is true, why is this line commented out?

void retranslate();
void refreshIcons();

enum ReloadMode {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably modernize all of these enums to class enums.

Comment on lines 91 to 138
void initDockWidget(QDockWidget *, QWidget *);
void setupDockWidget(QDockWidget *, int dockArea = Qt::NoDockWidgetArea);
void unsetupDockWidget(QDockWidget *);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Without any comments it's hard to tell what these actually do -- what is the difference between "init" and "setup"? Overall I think this file, and the individual classes in it, are too long, too complex, and lack documentation. The first two problems we can work on over time, but only if there is documentation to get started.

src/Gui/Tree.cpp Outdated
Comment on lines 446 to 450
if(ti->type()!=TreeWidget::ObjectType || index.column()>1)
return 0;
DocumentObjectItem *item = static_cast<DocumentObjectItem*>(ti);
App::DocumentObject *obj = item->object()->getObject();
auto &prop = index.column()?obj->Label2:obj->Label;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like mistakenly-included code that overwrites some formatting improvements.

@realthunder realthunder force-pushed the OverlayWidgets branch 2 times, most recently from ae2f789 to 367f75f Compare December 11, 2022 12:33
@freecadci
Copy link

pipeline status for feature branch PR_7888. Pipeline 719160026 was triggered at ae2f789. All CI branches and pipelines.

@freecadci
Copy link

pipeline status for feature branch PR_7888. Pipeline 719160783 was triggered at 367f75f. All CI branches and pipelines.

@freecadci
Copy link

pipeline status for feature branch PR_7888. Pipeline 719194144 was triggered at ebc6c08. All CI branches and pipelines.

@realthunder
Copy link
Collaborator Author

@chennes I've modified and rebase the code according to suggestions. Please check.

@adrianinsaval
Copy link
Member

I add my vote to merging and then fixing problems one by one in subsequent PRs, even in it's current state I found using this VERY useful

@PaddleStroke
Copy link
Contributor

Bump for #include <QDesktopWidget> header issue that needs to be fixed @realthunder.
I think the problem is because the header is missing from PreCompiled.h.

@chennes if RT is out for now, maybe we can just fix the precompiled in another PR that we merge first and merge this?

@PaddleStroke
Copy link
Contributor

PaddleStroke commented Oct 10, 2023

I strongly suggest that we merge this asap, if we don't here's whats going to happen :

  • A random clang format PR or modernize PR or typo PR is going to make a small conflict.
  • By the time RT comes around there will be a lot of conflicts, which will demotivate RT from rebasing again. So it will take a lot of time until he does and so on.

One tiny typo PR landing on this massive PR (which I'm surprised hasn't happened yet) and we're in for 2 months. And if it happens once, no reason it won't repeat -> rebasing hell and it will never merge.

@0penBrain
Copy link
Contributor

Bump for #include <QDesktopWidget> header issue that needs to be fixed @realthunder. I think the problem is because the header is missing from PreCompiled.h.

@chennes if RT is out for now, maybe we can just fix the precompiled in another PR that we merge first and merge this?

Another PR isn't needed. Branch is open to maintainer edit.

@yorikvanhavre
Copy link
Member

yorikvanhavre commented Oct 11, 2023

Another PR isn't needed. Branch is open to maintainer edit.

I can't edit a file that is not included in this PR apparently... I'll try to do it locally but not sure I'll be able to push to @realthunder 's repo.

EDIT

I can't:

To github.com:realthunder/FreeCAD.git
! [remote rejected]       realthunder-OverlayWidgets -> OverLayWidgets (permission denied)
error: failed to push some refs to 'github.com:realthunder/FreeCAD.git'

Ok let's merge this and I'll add the fix right after

@luzpaz
Copy link
Contributor

luzpaz commented Oct 11, 2023

Huge congrats to everyone!!!

@wwmayer
Copy link
Contributor

wwmayer commented Oct 11, 2023

    // We are migrating from saving qt main window layout state in QSettings to
    // FreeCAD parameters, for more control. The old settings is explicitly
    // remove from old QSettings conf to allow easier complete reset of
    // application state by just removing FC user.cfg file.
    config.remove(qtver);

I wonder what's the point of removing settings here. Every time a user starts the new version the settings will be removed so that when using an older version all layout settings are completely gone. This is very annoying behaviour!

Furthermore I wonder what is the more control you are talking about? The QSettings class was only used to store the size, position, maximized or not, layout of toolbars and dock windows and the visibility of the status bar because (except of the maximized flag and the status bar) these are system-related settings and haven't been added to the user.cfg on purpose.

Having all these things in the user.cfg doesn't have any advantage but will sooner or later cause trouble for people who wants to use their user.cfg on different computers.

@obelisk79
Copy link
Contributor

It may allow for additional control via distributed preference packs perhaps? This would include saving and importing these parameters via the same mechanism I believe. Just my speculation.

@MisterMakerNL
Copy link
Contributor

Already cleaned and polished the overlay qss a bit #11005

@wwmayer
Copy link
Contributor

wwmayer commented Oct 11, 2023

It may allow for additional control via distributed preference packs perhaps?

I doubt that having junk like this in the user.cfg is of any help:

          <FCText Name="MainWindowState">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AHQAdABpAG4AZwEAAABkAAADhgAAAAAAAAAA+wAAAB4AUwBlAGMAdABpAG8AbgAgAEMAdQB0AHQAaQBuAGcBAAAAZAAAA4YAAAAAAAAAAPsAAAAeAFMAZQBjAHQAaQBvAG4AIABDAHUAdAB0AGkAbgBnAQAAAGQAAAOGAAAAAAAAAAD7AAAAHgBTAGUAYwB0AGkAbwBuACAAQwB1AHQAdABpAG4AZwEAAABkAAADhgAAAAAAAAAA+wAAAB4AUwBlAGMAdABpAG8AbgAgAEMAdQB0AHQAaQBuAGcBAAAAZAAAA4YAAAAAAAAAAPsAAAAeAFMAZQBjAHQAaQBvAG4AIABDAHUAdAB0AGkAbgBnAQAAAGQAAAOGAAAAAAAAAAD7AAAAHgBTAGUAYwB0AGkAbwBuACAAQwB1AHQAdABpAG4AZwEAAABkAAADhgAAAAAAAAAA+wAAAB4AUwBlAGMAdABpAG8AbgAgAEMAdQB0AHQAaQBuAGcBAAAAZAAAA4YAAAAAAAAAAPsAAAAeAFMAZQBjAHQAaQBvAG4AIABDAHUAdAB0AGkAbgBnAQAAAGQAAAOGAAAAAAAAAAD7AAAAHgBTAGUAYwB0AGkAbwBuACAAQwB1AHQAdABpAG4AZwEAAABkAAADhgAAAAAAAAAA+wAAAB4AUwBlAGMAdABpAG8AbgAgAEMAdQB0AHQAaQBuAGcBAAAAZAAAA4YAAAAAAAAAAPsAAAAeAFMAZQBjAHQAaQBvAG4AIABDAHUAdAB0AGkAbgBnAQAAAGQAAAOGAAAAAAAAAAD7AAAAHgBTAGUAYwB0AGkAbwBuACAAQwB1AHQAdABpAG4AZwEAAABkAAADhgAAAAAAAAAA+wAAAB4AUwBlAGMAdABpAG8AbgAgAEMAdQB0AHQAaQBuAGcBAAAAZAAAA4YAAAAAAAAAAPsAAAAeAFMAZQBjAHQAaQBvAG4AIABDAHUAdAB0AGkAbgBnAQAAAGQAAAOGAAAAAAAAAAD7AAAAHgBTAGUAYwB0AGkAbwBuACAAQwB1AHQAdABpAG4AZwEAAABkAAADgAAAAAAAAAAA+wAAAB4AUwBlAGMAdABpAG8AbgAgAEMAdQB0AHQAaQBuAGcBAAAAZAAAA4AAAAAAAAAAAPsAAAAeAFMAZQBjAHQAaQBvAG4AIABDAHUAdAB0AGkAbgBnAQAAAGQA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</FCText>

Also, when starting an older version after customizing the layout in the new version then the whole layout will be reverted. Another point is that these data depend on the used Qt version and therefore it makes no sense to share them between different FreeCAD versions that link different Qt versions. These are the reasons why in the past the layout data was written to the registry or FreeCAD.conf file, respectively and not into the user.cfg.

@obelisk79
Copy link
Contributor

perhaps @realthunder can speak to that and its purpose?

@adrianinsaval
Copy link
Member

I can't speak about what purpose that serves for this PR but storing all that in user cfg file may make it much easier to get rid of some nasty bugs related to window and toolbar positions by just running a clean config. Some of these bugs could even prevent freecad from starting on windows for some people.

@adrianinsaval
Copy link
Member

this initially worked fine but now in latest master I get this error in report view and the transparency doesn't work as expected:

QString::arg: Argument missing: overlay:%s, Dark-Outline.qss

image

@kadet1090
Copy link
Member

It must be due to this: #11012 - I'll check what is wrong and provide fix

@wwmayer
Copy link
Contributor

wwmayer commented Oct 13, 2023

It's this line: overlayStyleSheet = QStringLiteral("overlay:%s").arg(overlayStyleSheet);
%s must be replaced with %1

@kadet1090
Copy link
Member

Can you provide the fix? I won't be able to do that in 12 hours or so

@wwmayer
Copy link
Contributor

wwmayer commented Oct 13, 2023

#11021

@maxwxyz
Copy link
Collaborator

maxwxyz commented Dec 12, 2023

Some features do not automatically open the task dialog when set to Auto show on edit #11637
Not sure if this is a general issue or if this need to be tackled by the individual features?

@luzpaz
Copy link
Contributor

luzpaz commented Dec 21, 2023

Reqrefusion pushed a commit to Reqrefusion/FreeCAD-Documentation-html that referenced this pull request Jan 7, 2025
…|320px]] | добавлена функция, позволяющая накладывать прикрепляемые виджеты (дерево и прозрачность задач). [FreeCAD/FreeCAD#7888 Pull request #7888] |}"
Reqrefusion pushed a commit to Reqrefusion/FreeCAD-Documentation-Project that referenced this pull request Jan 7, 2025
…|320px]] | добавлена функция, позволяющая накладывать прикрепляемые виджеты (дерево и прозрачность задач). [FreeCAD/FreeCAD#7888 Pull request #7888] |}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Mod: Core Issue or PR touches core sections (App, Gui, Base) of FreeCAD Mod: TechDraw Related to the TechDraw Workbench Topic: User Interface Issue related UI / UX
Projects
No open projects
Status: Done
Development

Successfully merging this pull request may close these issues.

[Feature Request] Tree and Task transparency (inspired by Link Branch)