Conversation
…indow.h rendergl1.cpp ->selectTexture changed id from 1 to 2. It seems that Qt reserves 1 for its own purposes.. not confirmed
- Rename qglmainwindow.h as guiqt.h.
Move some code from header to source. The header has not been removed
entirely so that Qt MOC files can use it.
- Rename GLWidget as SSView and QtGLMainWindow as SSMainWindow.
- Make TOOL window a QDockWidget (SSTextWindow).
- Fix mouse moving the application window.
- Replace deprectated QWheelEvent::delta() method.
- Replace tinyxml2 settings with QSettings.
- Remove unnecessary QOpenGLFunctions object.
- Remove personal app stylesheet. Fix QApplication::exec() crash.
Passing a local argc variable to QApplication causes the crash and this
was exposed by removing the stylesheet code.
Provide main() for Qt to avoid the constraints with the
InitGui/RunGui/ClearGui interface and ensure that the argc passed to the
QApplication constructor exists for the life of the object.
- Simplify SetAccelerator() by using Qt::Key codes.
- Only create QActionGroup for RADIO_MARK when necessary.
|
@WickedSmoke Why so much code in a header file? qglwindow.h |
|
@WickedSmoke you made an RPM package. Is there any hope of getting that into copr or even Fedora repository? Fedora is my OS of choice and while I obviously build this from source, it feels strange that there is no proper package. |
Not sure what you're referring to. Raed's header was qglmainwindow.h and that was converted to guiqt.h.
My copr is wickedsmoke/SolveSpace but there are some hacks to get that working. The Source URLs need to pull from Github archives (including submodules). I would prefer to build with the system |
|
Another hack in the |
|
In order to expedite this pull request it would be best to deal with the RPM stuff afterwards. |
Just a lot of function implementation in the header. Not much compared to the .cpp file though.
I would prefer you build with system mimalloc as well. IIRC the original problem causing us to point at a specific version were MacOS issues with some mimalloc versions. I thought @rpavlik already had linux version using system mimalloc if it's available. If not, go for it with all Linux builds not just qt. |
|
@WickedSmoke I pulled this branch. How do I tell it to build with qt? |
|
@phkahler Do Master still uses the extlib/mimalloc, but after looking at how you release the tarball that includes all the extlib directories that seems fine. As the Git hash is hardcoded in the tarball, making the RPM from that will be a simple affair. |
|
@WickedSmoke Sorry, one more question. What packages need to be installed to build it on Fedora? We will want to add a few to these lists once this is merged. |
|
Here's the BuildRequires line from my .spec file: My Releases page links to a Fedora 43 package built last night on Copr. |
|
Looks good! The text window became unmovable for me when undocked on gnome (Fedora 42). I could double-click it back into the main window. But it generally works and that kind of stuff can be fixed post-merge. |
This problem is somewhere between Qt and Wayland compositors actually. It is reproducible in sway with or without |
|
The KWin/Wayland dock widget behavior is better, but still incomplete. There is no problem moving the window, but the depth changes based on when it's created. When undocked by the user the window stays above the main window and is minimized with it. If the program starts in an undocked state then the window stays below the main window and does not get minimized. |
|
The code said it can be docked left or right. I prefer it on the right. Is there a way to disallow making it separate? Until they fix the issues we could just not let it do that. |
|
Qt only officially supports Linux/X11. The QDockWidget bugs are a Wayland issue and it will be good for programs to be out in the wild that exhibit them so that they get attention. I prefer giving users options so I was pleased to introduce the use of a docking widget. |
|
@WickedSmoke and @shingen75 Thank you for this excellent contribution to Solvespace. |
This replaces the #1451 request and limits the scope to support Linux only.