-
-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Feature: Detach window #3532
base: master
Are you sure you want to change the base?
Feature: Detach window #3532
Conversation
016df50
to
cfed76a
Compare
Wow! That's really awesome! |
Very useful functionality especially when using multi-monitor setup! 👍 I played a little bit with it and found some bugs:
LMMS 1.2.0-rc2.153 |
@karmux Thanks for testing! I'll have a look at the issues you pointed out as soon as I find the time. I already noticed number 2 (X-button doesn't work), but couldn't find the cause. |
This is super useful!! I can't seem to make a windows build of it though. The build seems to go without a hitch, but when I open the app, it doesn't have the detach button. This might be my own error, but maybe someone else should look into it. I can confirm all the issues that @karmux pointed out. Also, getting the detached window back into lmms is a little unwieldy. I basically need to re-open the window (for exmaple, clicking the FX-Mixer button to re-attach the FX-Mixer). Not exactly a bug, but it would be useful if the minimize button reattached the window, or if there was another button entirely. Good job, looking forward to be able to use this for major producing :) |
Sorry for the bump. PS: Sorry to bother... |
@NickAcPT Yeah, my idea is that since the minimize button reattaches, they wouldn't have to add another button. The minimize button on the main LMMS window should probably shrink all child windows so there is a way to minimize them. |
Now we've, so I think we can continue working on this.
It's already fixed.
I guess the event is propagated to |
Found some more issues:
|
If the minimize button is used for attaching, wouldn't it be confusing? Also, I can't find platform-independent way to add such a button to the title bar unless we create a custom window class which would be quite difficult. There's an easier workaround, wrapping window content and window controls in a layout. It might be a little bit ugly, but it's easy. @lukas-w may I continue this work? |
Go for it. 👍 |
cfed76a
to
0b5eae1
Compare
Fixed almost all bugs reported by @karmux. As a side effects, minimize button doesn't re-attach windows anymore. I can restore the behavior, but I think that might be confusing. |
I think that's correct. IIRC I copied some code from instrument track and it had some issue(fixed in this PR). |
It never did. This was just suggested by @Jousboxx in #3532 (comment). |
hello, |
@pwepwe973 This feature is in development and not a part of released versions. Sorry. |
thank you
thank you for your message |
@PhysSong Can you please summarize the current state of this? Is it ready to be merged? I'm willing to help get this finished if possible. |
I unintentionally abandoned this one, but I can restart working on this.
Not yet, mainly due to #3532 (comment). |
can i haz write access to this |
I submitted a PR (#7592) to this, fixing wayland misbehavior. |
I fixed all the bugs I know of and can test. It's probably best to leave attachment behavior as it is, at least for now. We could probably hook attachment to minimize button instead, if there even is a call for that. I'd mainly go for shortcuts, but there's ongoing work on them, so it's probably best not to touch it for now. I can't check anything about window icons, since y'know, wayland. From further testing the best I can do about window constraints is set up a helper function which syncs them since setting either of these is not sufficient and there doesn't seem to be a way to dynamically infer one from another. Is there anything that prevents this from exiting the draft stage? |
@SpomJ The taskbar icon bug isn't occurring for me anymore, at least when I built this branch locally with Qt 5.15.2. Maybe it was a Qt bug that got fixed upstream, or your changes fixed it somehow. |
The only bug I've found so far is that |
What are those windows? Only thing I know of still doing this is SlicerT and it seems to be reworked anyways, so I think tweaking it now would do more bad than good. |
SlicerT, Microtuner config, and the LADSPA plugin browser. And Tap Tempo is resizable when detached but it shouldn't be. |
Found some more windows with resizing issues: |
Disregard all my previous whines about SubWindows being broken. Turns out all I needed was layout SizeConstraint on SubWindow. I submitted a pr for this (#7596). |
I should have fixed SlicerT, Microtuner, LadspaBrowser and Tap Tempo. Regardng VSTs - Rack appears to wannabe-constrained (and thus, not intended to maximize) which is weird, considering its max size is strictly below its scroll area width (same applies to mixer btw). I also lack any embed protocols to test how VST windows behave. Not sure what you mean by {VST,LADSPA} effect windows?? |
I also just discovered that setting fixed width does not prevent maximizing. Oh well, what a great thing Qt is. |
… from SubWindow (#7596) * Improve the way size constraints are placed * Transition VeSTige to patched SubWindow (fix missing minimize button and constraint issues) * Move window constraints to embed in LadspaBrowser (fix resizing) * Fix detached window resizeability for TapTempo * Codestyle
I tested the Linux AppImage that was automatically built for this PR, and there were some issues. The detach button didn't display correctly and the taskbar icon bug was back. However, when I built it locally, these issues were gone. I'm using Qt 5.15.2 locally, while the CI uses Qt 5.12.8, so they were likely upstream Qt bugs that got fixed. #7316 updates our Qt version on Linux to Qt 5.15.2, so it would probably fix the CI issues here. I've just been waiting on people to review that PR. |
@messmerd Since mixer can't be resized vertically anymore, shouldn't we disable maximizing? Is it even a good idea to disable vertical resizing? |
Didn't we add resize ability for mixer recently? Why you saying it ain't resizeable? |
It was added back in bf922af#diff-ae4b38c15f268a0cd930edea9a6481663edf21a1ff206291784fd55b8513904eR182 for some reason. This was written long before I joined the discussion so I didn't really question it lol So should we revert that line? |
I haven't been following the recent work on the Mixer. If the Mixer in this PR deviates from the resize behavior on master, it should probably be reverted. |
Conflicts: - include/SubWindow.h - src/gui/ControllerRackView.cpp - src/gui/Editor.cpp - src/gui/instrument/InstrumentTrackWindow.cpp NOTE: PR #7514 caused a regression in InstrumentTrackWindow when merged into this detachable windows PR.
Also what's the desired behavior for VeSTige controller window? rn it's very janky, doesn't have a title nor a maximize button and its maximum width is less than embedded area width. Should I unfix the width so that it can be maximized and resized? (Here it could also be beneficial to tamper with scrollarea to snap the controls into the empty space, but this is really out of scope now) |
#7688 fixes everything remaining I know of. If no new issues are found, after its merge this pr will be actually ready this time. |
Allows detaching a window from LMMS's main window, making things like working on multiple screens easier.
Closes #1259
Quick demonstration:
![lmms-window-detach](https://cloud.githubusercontent.com/assets/2879917/25752905/fb023c4c-31b9-11e7-9938-e3dce88f6eca.gif)
Edit: This uses some Qt5-only features, so it's best to wait with merging this until we've switched (#2611).