Skip to content
Merged
Show file tree
Hide file tree
Changes from 13 commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
0e7048e
Use eventFilter to process closeEvent
sqrvrt Oct 16, 2025
76da997
revert MixerView height cap
sqrvrt Oct 18, 2025
6fb9f9a
Remove obsolete part of ITW::closeEvent
sqrvrt Oct 18, 2025
0fe643f
refactor SampleTrackWindow, sync detached icon
sqrvrt Oct 18, 2025
c1e9c1e
Set window icon directly on InstrumenTrackView
sqrvrt Oct 19, 2025
b128009
Preserve detached state in ITW prev/next buttons
sqrvrt Oct 19, 2025
806d964
remove leftover comment
sqrvrt Oct 19, 2025
7656b1c
Account for size of decorations
sqrvrt Oct 20, 2025
a7f6c60
Fix ITW movement again (lazy version)
sqrvrt Oct 20, 2025
e3c854b
Move the close hook into SubWindow eventFilter
sqrvrt Oct 20, 2025
fac6160
Keep track of detached window while it's hidden
sqrvrt Oct 21, 2025
bad5f04
Code cleanup
sqrvrt Oct 21, 2025
6e45b96
re-fix ITW because apparently it still breaks
sqrvrt Oct 21, 2025
34681b2
fix codestyle
sqrvrt Oct 22, 2025
5529ed3
make another `if` inline
sqrvrt Oct 22, 2025
50f70ac
more codestyle fixes
sqrvrt Oct 22, 2025
e62b039
Expand SubWindow::setWidget() docs
sqrvrt Oct 22, 2025
608fe14
Constrain attached window positions
sqrvrt Oct 22, 2025
ddcadc9
Hide windows when attaching on closeEvent
sqrvrt Oct 23, 2025
fedfef8
Clarify wayland move workaround
sqrvrt Oct 23, 2025
c21f641
Remove redundant includes
sqrvrt Oct 23, 2025
c8cfe67
make detached closeEvent transparent
sqrvrt Oct 23, 2025
21beffd
fix editor windows minimizing their height on close
sqrvrt Oct 23, 2025
9b596b0
Enable minimize button on detached windows
sqrvrt Oct 23, 2025
5b1b493
Change detach button SVG
sqrvrt Oct 24, 2025
deeb802
rename detach icon
sqrvrt Oct 24, 2025
8968652
clean up detach.svg
sqrvrt Oct 25, 2025
f6e2cdd
Disable broken detach for MacOS builds
sqrvrt Oct 25, 2025
36cbf35
fix typo
sqrvrt Oct 25, 2025
d6129cc
revert SimpleTextFloat to master branch
sqrvrt Oct 25, 2025
08fbfed
clean up diff against master
sqrvrt Oct 25, 2025
58ab680
Fix effect control views bing killed on close
sqrvrt Oct 26, 2025
6e35157
Use, init and update childGeomm only when detached
sqrvrt Oct 27, 2025
50d527c
Use std::clamp
sqrvrt Oct 28, 2025
c60029e
Make hide-on-attach-on-close configurable
sqrvrt Oct 29, 2025
1d0634c
Fix window size resetting for real this time
sqrvrt Oct 29, 2025
ca14048
Restore EffectView functionality actually
sqrvrt Oct 29, 2025
696e2e3
Fix SubWindow label overlapping detach button
sqrvrt Oct 29, 2025
12e1509
Add SubWindow::eventFilter docs
sqrvrt Oct 29, 2025
69e4ed0
Get rid of childGeom
sqrvrt Oct 29, 2025
a9654fc
Keep attached widget position
sqrvrt Oct 29, 2025
d144abb
Initial attempt at always-detach
sqrvrt Oct 30, 2025
34888a7
close autodetached windows properly
sqrvrt Oct 30, 2025
93f4dc6
Improve window positioning on attach
sqrvrt Oct 31, 2025
c1ed85d
Fix editor windows having minimal height on first show
sqrvrt Oct 31, 2025
49b23d5
Remove redundant subwindow-related code from MainWindow
sqrvrt Nov 1, 2025
53c23c2
fix typo in setup menu
sqrvrt Nov 1, 2025
0255db6
Fix ITW icon always showing up as piano
sqrvrt Nov 1, 2025
80a9ffd
Update ControllerView
sqrvrt Nov 1, 2025
485c8c1
minor formatting fixes
sqrvrt Nov 1, 2025
4a8d6f9
even more minor formatting fixes
sqrvrt Nov 1, 2025
ff29cf5
Don't hard-set size of EffectView
sqrvrt Nov 2, 2025
666094a
Change label text
sqrvrt Nov 2, 2025
f0282aa
Destroy childless subwindows
sqrvrt Nov 2, 2025
6acbae9
Get rid of isResizable in EffectView
sqrvrt Nov 4, 2025
f0d57d1
Fix EffectControlDialog not hiding the title bar
sqrvrt Nov 4, 2025
50a73e4
Remove redundant widget->show() on showEvent
sqrvrt Nov 4, 2025
e50247e
fix drag&drop not updating ITW SubWindow
sqrvrt Nov 6, 2025
98e6078
Disable FixedSizeDialogHint on ITW
sqrvrt Nov 7, 2025
1a7f6be
Disable SubWindow flag when detaching a window
sqrvrt Nov 8, 2025
49817e4
Try disabling MacOS soft-fail
sqrvrt Nov 9, 2025
0ca0474
Enable Undo/Redo globally
sqrvrt Nov 9, 2025
84e83e0
Save detached window visibility properly; refactor
sqrvrt Nov 11, 2025
944328f
remove obsolete qt version workarounds
sqrvrt Nov 11, 2025
029a0e4
remove setFixedSize from LadspaControlDialog
sqrvrt Nov 13, 2025
40d3420
Fix resizing LadspaMatrixControlDialog
sqrvrt Nov 13, 2025
6aa4b13
Allow detached windows in topLevelITW; refactor
sqrvrt Nov 13, 2025
17157a0
allow detach to be disabled
sqrvrt Nov 15, 2025
fcb8fdb
disable detach on embedded VST subwindows
sqrvrt Nov 15, 2025
d74cd8d
add attach/detach everything actions
sqrvrt Nov 15, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions include/ControllerDialog.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,10 @@
#ifndef LMMS_GUI_CONTROLLER_DIALOG_H
#define LMMS_GUI_CONTROLLER_DIALOG_H

#include "DetachableWidget.h"
#include "ModelView.h"

#include <QWidget>

namespace lmms
{

Expand All @@ -37,7 +38,7 @@ class Controller;
namespace gui
{

class ControllerDialog : public DetachableWidget, public ModelView
class ControllerDialog : public QWidget, public ModelView
{
public:
ControllerDialog(Controller* controller, QWidget* parent);
Expand Down
5 changes: 3 additions & 2 deletions include/ControllerRackView.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,10 @@
#ifndef LMMS_GUI_CONTROLLER_RACK_VIEW_H
#define LMMS_GUI_CONTROLLER_RACK_VIEW_H

#include "DetachableWidget.h"
#include "SerializingObject.h"

#include <QWidget>

class QPushButton;
class QScrollArea;
class QVBoxLayout;
Expand All @@ -42,7 +43,7 @@ namespace gui

class ControllerView;

class ControllerRackView : public DetachableWidget, public SerializingObject
class ControllerRackView : public QWidget, public SerializingObject
{
Q_OBJECT
public:
Expand Down
49 changes: 0 additions & 49 deletions include/DetachableWidget.h

This file was deleted.

49 changes: 0 additions & 49 deletions include/DetachableWindow.h

This file was deleted.

5 changes: 2 additions & 3 deletions include/Editor.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,9 @@
#ifndef LMMS_GUI_EDITOR_H
#define LMMS_GUI_EDITOR_H

#include <QMainWindow>
#include <QToolBar>

#include "DetachableWindow.h"

class QAction;

namespace lmms::gui
Expand All @@ -46,7 +45,7 @@ class DropToolBar;
///
/// Those editors include the Song Editor, the Automation Editor, B&B Editor,
/// and the Piano Roll.
class Editor : public DetachableWindow
class Editor : public QMainWindow
{
Q_OBJECT
public:
Expand Down
5 changes: 3 additions & 2 deletions include/EffectControlDialog.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,10 @@
#ifndef LMMS_GUI_EFFECT_CONTROL_DIALOG_H
#define LMMS_GUI_EFFECT_CONTROL_DIALOG_H

#include "DetachableWidget.h"
#include "ModelView.h"

#include <QWidget>

namespace lmms
{

Expand All @@ -37,7 +38,7 @@ class EffectControls;
namespace gui
{

class LMMS_EXPORT EffectControlDialog : public DetachableWidget, public ModelView
class LMMS_EXPORT EffectControlDialog : public QWidget, public ModelView
{
public:
EffectControlDialog(EffectControls* controls);
Expand Down
5 changes: 3 additions & 2 deletions include/MicrotunerConfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,17 +27,18 @@

#include "AutomatableModel.h"
#include "ComboBoxModel.h"
#include "DetachableWidget.h"
#include "SerializingObject.h"

#include <QWidget>

class QLineEdit;
class QPlainTextEdit;

namespace lmms::gui
{


class LMMS_EXPORT MicrotunerConfig : public DetachableWidget, public SerializingObject
class LMMS_EXPORT MicrotunerConfig : public QWidget, public SerializingObject
{
Q_OBJECT
public:
Expand Down
5 changes: 3 additions & 2 deletions include/MixerView.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,11 @@
#define LMMS_GUI_MIXER_VIEW_H

#include "MixerChannelView.h"
#include "DetachableWidget.h"
#include "ModelView.h"
#include "SerializingObject.h"

#include <QWidget>

class QDomDocument; // IWYU pragma: keep
class QDomElement; // IWYU pragma: keep
class QHBoxLayout;
Expand All @@ -45,7 +46,7 @@ namespace lmms::gui
{

class LMMS_EXPORT MixerView
: public DetachableWidget
: public QWidget
, public ModelView
, public SerializingObjectHook
{
Expand Down
5 changes: 3 additions & 2 deletions include/ProjectNotes.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,10 @@
#ifndef LMMS_GUI_PROJECT_NOTES_H
#define LMMS_GUI_PROJECT_NOTES_H

#include "DetachableWindow.h"
#include "SerializingObject.h"

#include <QMainWindow>

class QAction;
class QComboBox;
class QTextCharFormat;
Expand All @@ -37,7 +38,7 @@ namespace lmms::gui
{


class LMMS_EXPORT ProjectNotes : public DetachableWindow, public SerializingObject
class LMMS_EXPORT ProjectNotes : public QMainWindow, public SerializingObject
{
Q_OBJECT
public:
Expand Down
5 changes: 3 additions & 2 deletions include/SampleTrackWindow.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,12 @@
#ifndef LMMS_GUI_SAMPLE_TRACK_WINDOW_H
#define LMMS_GUI_SAMPLE_TRACK_WINDOW_H

#include "DetachableWidget.h"
#include "ModelView.h"
#include "SampleTrack.h"
#include "SerializingObject.h"

#include <QWidget>

class QLineEdit;

namespace lmms::gui
Expand All @@ -42,7 +43,7 @@ class MixerChannelLcdSpinBox;
class SampleTrackView;


class SampleTrackWindow : public DetachableWidget, public ModelView, public SerializingObjectHook
class SampleTrackWindow : public QWidget, public ModelView, public SerializingObjectHook
{
Q_OBJECT
public:
Expand Down
16 changes: 10 additions & 6 deletions include/SubWindow.h
Original file line number Diff line number Diff line change
Expand Up @@ -63,11 +63,15 @@ class LMMS_EXPORT SubWindow : public QMdiSubWindow
QBrush activeColor() const;
QColor textShadowColor() const;
QColor borderColor() const;
QMargins decorationMargins() const;
void setActiveColor( const QBrush & b );
void setTextShadowColor( const QColor &c );
void setBorderColor( const QColor &c );
int titleBarHeight() const;
int frameWidth() const;
void setWidget(QWidget* widget); // Hook for QMdiSubWindow::setWidget
bool isDetached() const;
void setDetached(bool on);

// TODO Needed to update the title bar when replacing instruments.
// Update works automatically if QMdiSubWindows are used.
Expand All @@ -80,14 +84,13 @@ public slots:

protected:
// hook the QWidget move/resize events to update the tracked geometry
void moveEvent( QMoveEvent * event ) override;
void resizeEvent( QResizeEvent * event ) override;
void paintEvent( QPaintEvent * pe ) override;
void changeEvent( QEvent * event ) override;
void moveEvent(QMoveEvent* event) override;
void resizeEvent(QResizeEvent* event) override;
void paintEvent(QPaintEvent* pe) override;
void changeEvent(QEvent* event) override;
void showEvent(QShowEvent* e) override;
bool eventFilter(QObject* obj, QEvent* event) override;

bool isDetached() const;

signals:
void focusLost();

Expand All @@ -106,6 +109,7 @@ public slots:
QLabel * m_windowTitle;
QGraphicsDropShadowEffect * m_shadow;
bool m_hasFocus;
QRect m_childGeom;

static void elideText( QLabel *label, QString text );
void adjustTitleBar();
Expand Down
2 changes: 0 additions & 2 deletions src/gui/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@ SET(LMMS_SRCS
gui/ControllerRackView.cpp
gui/ControllerView.cpp
gui/Controls.cpp
gui/DetachableWidget.cpp
gui/DetachableWindow.cpp
gui/EffectControlDialog.cpp
gui/EffectRackView.cpp
gui/EffectView.cpp
Expand Down
2 changes: 1 addition & 1 deletion src/gui/ControllerDialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ namespace lmms::gui
{

ControllerDialog::ControllerDialog(Controller* controller, QWidget* parent)
: DetachableWidget{parent}
: QWidget{parent}
, ModelView{controller, this}
{
}
Expand Down
2 changes: 1 addition & 1 deletion src/gui/ControllerRackView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ namespace lmms::gui


ControllerRackView::ControllerRackView()
: DetachableWidget{}
: QWidget{}
, m_nextIndex{0}
{
setWindowIcon( embed::getIconPixmap( "controller" ) );
Expand Down
56 changes: 0 additions & 56 deletions src/gui/DetachableWidget.cpp

This file was deleted.

Loading
Loading