Fix QT backend creating extra blank windows
This commit is contained in:
parent
27113f6443
commit
7b0f270a57
5 changed files with 37 additions and 37 deletions
|
@ -41,23 +41,23 @@ LicenseModel::~LicenseModel() {
|
||||||
|
|
||||||
}
|
}
|
||||||
AboutWindow::AboutWindow() {
|
AboutWindow::AboutWindow() {
|
||||||
license_text = new QTextBrowser();
|
license_text = new QTextBrowser(this);
|
||||||
license_list = new QListView();
|
license_list = new QListView(this);
|
||||||
license_list->setModel(new LicenseModel());
|
license_list->setModel(new LicenseModel());
|
||||||
QObject::connect(license_list, &QListView::clicked, [=,this](const QModelIndex &idx) {
|
QObject::connect(license_list, &QListView::clicked, [=,this](const QModelIndex &idx) {
|
||||||
license_text->setText(license_list->model()->data(idx, Qt::UserRole).toString());
|
license_text->setText(license_list->model()->data(idx, Qt::UserRole).toString());
|
||||||
});
|
});
|
||||||
license_list->setSelectionMode(QAbstractItemView::SingleSelection);
|
license_list->setSelectionMode(QAbstractItemView::SingleSelection);
|
||||||
license_list->setSelectionBehavior(QAbstractItemView::SelectRows);
|
license_list->setSelectionBehavior(QAbstractItemView::SelectRows);
|
||||||
QBoxLayout *mainLayout = new QBoxLayout(QBoxLayout::TopToBottom);
|
QBoxLayout *mainLayout = new QBoxLayout(QBoxLayout::TopToBottom, this);
|
||||||
QLabel *title = new QLabel("Looper");
|
QLabel *title = new QLabel("Looper", this);
|
||||||
auto font = title->font();
|
auto font = title->font();
|
||||||
font.setPointSize(24);
|
font.setPointSize(24);
|
||||||
title->setFont(font);
|
title->setFont(font);
|
||||||
mainLayout->addWidget(title);
|
mainLayout->addWidget(title);
|
||||||
QLabel *versionText = new QLabel(TAG);
|
QLabel *versionText = new QLabel(TAG, this);
|
||||||
mainLayout->addWidget(versionText);
|
mainLayout->addWidget(versionText);
|
||||||
QSplitter *splitter = new QSplitter(Qt::Orientation::Horizontal);
|
QSplitter *splitter = new QSplitter(Qt::Orientation::Horizontal, this);
|
||||||
splitter->addWidget(license_list);
|
splitter->addWidget(license_list);
|
||||||
splitter->addWidget(license_text);
|
splitter->addWidget(license_text);
|
||||||
mainLayout->addWidget(splitter);
|
mainLayout->addWidget(splitter);
|
||||||
|
|
|
@ -46,7 +46,7 @@ LooperWindow::LooperWindow(Playback *playback) : QMainWindow() {
|
||||||
this->layout()->setContentsMargins(QMargins(0, 0, 0, 0));
|
this->layout()->setContentsMargins(QMargins(0, 0, 0, 0));
|
||||||
this->playback = playback;
|
this->playback = playback;
|
||||||
this->root_layout = new QBoxLayout(QBoxLayout::TopToBottom);
|
this->root_layout = new QBoxLayout(QBoxLayout::TopToBottom);
|
||||||
QWidget *central_widget = new QWidget();
|
QWidget *central_widget = new QWidget(this);
|
||||||
central_widget->setLayout(this->root_layout);
|
central_widget->setLayout(this->root_layout);
|
||||||
this->setCentralWidget(central_widget);
|
this->setCentralWidget(central_widget);
|
||||||
prefs_window = new PrefsWindow();
|
prefs_window = new PrefsWindow();
|
||||||
|
@ -83,18 +83,18 @@ LooperWindow::LooperWindow(Playback *playback) : QMainWindow() {
|
||||||
root_layout->addWidget(bar);
|
root_layout->addWidget(bar);
|
||||||
QSpacerItem *spacer = new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::MinimumExpanding);
|
QSpacerItem *spacer = new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::MinimumExpanding);
|
||||||
root_layout->addSpacerItem(spacer);
|
root_layout->addSpacerItem(spacer);
|
||||||
QBoxLayout *top_row = new QBoxLayout(QBoxLayout::LeftToRight);
|
QBoxLayout *top_row = new QBoxLayout(QBoxLayout::LeftToRight, this);
|
||||||
pause_resume_btn = new QPushButton("Pause");
|
pause_resume_btn = new QPushButton("Pause", this);
|
||||||
QObject::connect(pause_resume_btn, &QPushButton::pressed, [=,this]() {
|
QObject::connect(pause_resume_btn, &QPushButton::pressed, [=,this]() {
|
||||||
playback->Pause();
|
playback->Pause();
|
||||||
});
|
});
|
||||||
restart_btn = new QPushButton("Restart");
|
restart_btn = new QPushButton("Restart", this);
|
||||||
QObject::connect(restart_btn, &QPushButton::pressed, [=,this]() {
|
QObject::connect(restart_btn, &QPushButton::pressed, [=,this]() {
|
||||||
playback->Seek(0.0);
|
playback->Seek(0.0);
|
||||||
});
|
});
|
||||||
top_row->addWidget(pause_resume_btn);
|
top_row->addWidget(pause_resume_btn);
|
||||||
top_row->addWidget(restart_btn);
|
top_row->addWidget(restart_btn);
|
||||||
slider = new LooperSlider("seek", "Position", 0.0, 1.0, 0.00000000001, false);
|
slider = new LooperSlider("seek", "Position", 0.0, 1.0, 0.00000000001, false, this);
|
||||||
slider->DisableModeButton();
|
slider->DisableModeButton();
|
||||||
slider->UseSlider();
|
slider->UseSlider();
|
||||||
QObject::connect(slider, &LooperSlider::changed, [=,this](double value) {
|
QObject::connect(slider, &LooperSlider::changed, [=,this](double value) {
|
||||||
|
@ -106,16 +106,16 @@ LooperWindow::LooperWindow(Playback *playback) : QMainWindow() {
|
||||||
playback->Stop();
|
playback->Stop();
|
||||||
});
|
});
|
||||||
top_row->addWidget(stop_btn);
|
top_row->addWidget(stop_btn);
|
||||||
volume_slider = new LooperSlider("volume", "Volume", 0.0, 100.0, 1.0, false);
|
volume_slider = new LooperSlider("volume", "Volume", 0.0, 100.0, 1.0, false, this);
|
||||||
volume_slider->SetLimitLabels("Muted", "Full Volume");
|
volume_slider->SetLimitLabels("Muted", "Full Volume");
|
||||||
QObject::connect(volume_slider, &LooperSlider::changed, [=,this](double value) {
|
QObject::connect(volume_slider, &LooperSlider::changed, [=,this](double value) {
|
||||||
playback->SetVolume(value);
|
playback->SetVolume(value);
|
||||||
});
|
});
|
||||||
top_row->addWidget(volume_slider);
|
top_row->addWidget(volume_slider);
|
||||||
QWidget *top_row_widget = new QWidget();
|
QWidget *top_row_widget = new QWidget(this);
|
||||||
top_row_widget->setLayout(top_row);
|
top_row_widget->setLayout(top_row);
|
||||||
root_layout->addWidget(top_row_widget);
|
root_layout->addWidget(top_row_widget);
|
||||||
QBoxLayout *bottom_row = new QBoxLayout(QBoxLayout::LeftToRight);
|
QBoxLayout *bottom_row = new QBoxLayout(QBoxLayout::LeftToRight, this);
|
||||||
speed_slider = new LooperSlider("speed", "Speed", 0.25, 4.0, 0.01, true);
|
speed_slider = new LooperSlider("speed", "Speed", 0.25, 4.0, 0.01, true);
|
||||||
pitch_slider = new LooperSlider("pitch", "Pitch", 0.25, 4.0, 0.01, true);
|
pitch_slider = new LooperSlider("pitch", "Pitch", 0.25, 4.0, 0.01, true);
|
||||||
tempo_slider = new LooperSlider("tempo", "Tempo", 0.25, 4.0, 0.01, true);
|
tempo_slider = new LooperSlider("tempo", "Tempo", 0.25, 4.0, 0.01, true);
|
||||||
|
@ -134,7 +134,7 @@ LooperWindow::LooperWindow(Playback *playback) : QMainWindow() {
|
||||||
bottom_row->addWidget(speed_slider);
|
bottom_row->addWidget(speed_slider);
|
||||||
bottom_row->addWidget(pitch_slider);
|
bottom_row->addWidget(pitch_slider);
|
||||||
bottom_row->addWidget(tempo_slider);
|
bottom_row->addWidget(tempo_slider);
|
||||||
QWidget *bottom_row_widget = new QWidget();
|
QWidget *bottom_row_widget = new QWidget(this);
|
||||||
bottom_row_widget->setLayout(bottom_row);
|
bottom_row_widget->setLayout(bottom_row);
|
||||||
root_layout->addWidget(bottom_row_widget);
|
root_layout->addWidget(bottom_row_widget);
|
||||||
QTimer *timer = new QTimer(this);
|
QTimer *timer = new QTimer(this);
|
||||||
|
|
|
@ -5,12 +5,12 @@
|
||||||
#include <options.hpp>
|
#include <options.hpp>
|
||||||
using namespace Looper::Options;
|
using namespace Looper::Options;
|
||||||
PrefsWindow::PrefsWindow() {
|
PrefsWindow::PrefsWindow() {
|
||||||
auto *root_layout = new QBoxLayout(QBoxLayout::TopToBottom);
|
auto *root_layout = new QBoxLayout(QBoxLayout::TopToBottom, this);
|
||||||
this->setLayout(root_layout);
|
this->setLayout(root_layout);
|
||||||
restart_warning = new QLabel("A restart is needed to apply some changes.");
|
restart_warning = new QLabel("A restart is needed to apply some changes.", this);
|
||||||
restart_warning->hide();
|
restart_warning->hide();
|
||||||
root_layout->addWidget(restart_warning);
|
root_layout->addWidget(restart_warning);
|
||||||
frontend_btn = new QPushButton();
|
frontend_btn = new QPushButton(this);
|
||||||
frontend_menu = new QMenu();
|
frontend_menu = new QMenu();
|
||||||
for (auto &kv : UIBackend::backends) {
|
for (auto &kv : UIBackend::backends) {
|
||||||
UIBackend *backend = kv.second;
|
UIBackend *backend = kv.second;
|
||||||
|
@ -26,21 +26,21 @@ PrefsWindow::PrefsWindow() {
|
||||||
}
|
}
|
||||||
frontend_btn->setMenu(frontend_menu);
|
frontend_btn->setMenu(frontend_menu);
|
||||||
root_layout->addWidget(frontend_btn);
|
root_layout->addWidget(frontend_btn);
|
||||||
QFrame *frame = new QFrame();
|
QFrame *frame = new QFrame(this);
|
||||||
frame->setWindowTitle("Labels and Icons");
|
frame->setWindowTitle("Labels and Icons");
|
||||||
auto *label_settings_group = new QBoxLayout(QBoxLayout::TopToBottom);
|
auto *label_settings_group = new QBoxLayout(QBoxLayout::TopToBottom, this);
|
||||||
frame->setLayout(label_settings_group);
|
frame->setLayout(label_settings_group);
|
||||||
labels_only = new QRadioButton("Labels Only");
|
labels_only = new QRadioButton("Labels Only", frame);
|
||||||
labels_only->connect(labels_only, &QRadioButton::pressed, [=,this]() {
|
labels_only->connect(labels_only, &QRadioButton::pressed, [=,this]() {
|
||||||
this->new_label_setting = "labels";
|
this->new_label_setting = "labels";
|
||||||
this->set_options_changed(true);
|
this->set_options_changed(true);
|
||||||
});
|
});
|
||||||
icons_only = new QRadioButton("Icons Only");
|
icons_only = new QRadioButton("Icons Only", frame);
|
||||||
icons_only->connect(icons_only, &QRadioButton::pressed, [=,this]() {
|
icons_only->connect(icons_only, &QRadioButton::pressed, [=,this]() {
|
||||||
this->new_label_setting = "icons";
|
this->new_label_setting = "icons";
|
||||||
this->set_options_changed(true);
|
this->set_options_changed(true);
|
||||||
});
|
});
|
||||||
both_labels_icons = new QRadioButton("Both");
|
both_labels_icons = new QRadioButton("Both", frame);
|
||||||
both_labels_icons->connect(both_labels_icons, &QRadioButton::pressed, [=,this]() {
|
both_labels_icons->connect(both_labels_icons, &QRadioButton::pressed, [=,this]() {
|
||||||
this->new_label_setting = "both";
|
this->new_label_setting = "both";
|
||||||
this->set_options_changed(true);
|
this->set_options_changed(true);
|
||||||
|
@ -49,12 +49,12 @@ PrefsWindow::PrefsWindow() {
|
||||||
label_settings_group->addWidget(icons_only);
|
label_settings_group->addWidget(icons_only);
|
||||||
label_settings_group->addWidget(both_labels_icons);
|
label_settings_group->addWidget(both_labels_icons);
|
||||||
root_layout->addWidget(frame);
|
root_layout->addWidget(frame);
|
||||||
revert_btn = new QPushButton("Revert");
|
QWidget *btn_view = new QWidget(this);
|
||||||
|
QBoxLayout *btn_box = new QBoxLayout(QBoxLayout::LeftToRight, this);
|
||||||
|
revert_btn = new QPushButton("Revert", btn_view);
|
||||||
QObject::connect(revert_btn, &QPushButton::pressed, this, &PrefsWindow::revert);
|
QObject::connect(revert_btn, &QPushButton::pressed, this, &PrefsWindow::revert);
|
||||||
apply_btn = new QPushButton("Apply");
|
apply_btn = new QPushButton("Apply", btn_view);
|
||||||
QObject::connect(apply_btn, &QPushButton::pressed, this, &PrefsWindow::apply);
|
QObject::connect(apply_btn, &QPushButton::pressed, this, &PrefsWindow::apply);
|
||||||
QWidget *btn_view = new QWidget();
|
|
||||||
QBoxLayout *btn_box = new QBoxLayout(QBoxLayout::LeftToRight);
|
|
||||||
btn_view->setLayout(btn_box);
|
btn_view->setLayout(btn_box);
|
||||||
btn_box->addWidget(revert_btn);
|
btn_box->addWidget(revert_btn);
|
||||||
btn_box->addWidget(apply_btn);
|
btn_box->addWidget(apply_btn);
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
#include "slider.hpp"
|
#include "slider.hpp"
|
||||||
LooperSlider::LooperSlider(const char *name, const char *label, double min, double max, double tick, bool logarithmic) : QWidget() {
|
LooperSlider::LooperSlider(const char *name, const char *label, double min, double max, double tick, bool logarithmic, QWidget *parent) : QWidget(parent) {
|
||||||
root_layout = new QBoxLayout(QBoxLayout::LeftToRight, this);
|
root_layout = new QBoxLayout(QBoxLayout::LeftToRight, this);
|
||||||
text_layout_view = new QBoxLayout(QBoxLayout::TopToBottom);
|
text_layout_view = new QBoxLayout(QBoxLayout::TopToBottom);
|
||||||
QWidget *text_layout_widget = new QWidget();
|
QWidget *text_layout_widget = new QWidget(this);
|
||||||
text_layout_widget->setLayout(text_layout_view);
|
text_layout_widget->setLayout(text_layout_view);
|
||||||
root_layout->addWidget(text_layout_widget);
|
root_layout->addWidget(text_layout_widget);
|
||||||
text_label = new QLabel();
|
text_label = new QLabel(text_layout_widget);
|
||||||
slider = new _looperSlider(Qt::Orientation::Horizontal);
|
slider = new _looperSlider(Qt::Orientation::Horizontal, text_layout_widget);
|
||||||
slider->connect(slider, &_looperSlider::mousePressed, [=,this]() {
|
slider->connect(slider, &_looperSlider::mousePressed, [=,this]() {
|
||||||
pressed = true;
|
pressed = true;
|
||||||
slider_value_changed_after_release = false;
|
slider_value_changed_after_release = false;
|
||||||
|
@ -25,12 +25,12 @@ LooperSlider::LooperSlider(const char *name, const char *label, double min, doub
|
||||||
slider_value_changed_after_release = true;
|
slider_value_changed_after_release = true;
|
||||||
});
|
});
|
||||||
text_layout_view->addWidget(slider);
|
text_layout_view->addWidget(slider);
|
||||||
btn = new QPushButton();
|
btn = new QPushButton(this);
|
||||||
btn->connect(btn, &QPushButton::pressed, [=,this]() {
|
btn->connect(btn, &QPushButton::pressed, [=,this]() {
|
||||||
SwitchModes();
|
SwitchModes();
|
||||||
});
|
});
|
||||||
root_layout->addWidget(btn);
|
root_layout->addWidget(btn);
|
||||||
text = new QLineEdit();
|
text = new QLineEdit(text_layout_widget);
|
||||||
text->setVisible(false);
|
text->setVisible(false);
|
||||||
text_layout_view->addWidget(text);
|
text_layout_view->addWidget(text);
|
||||||
text->connect(text, &QLineEdit::textChanged, [=,this]() {
|
text->connect(text, &QLineEdit::textChanged, [=,this]() {
|
||||||
|
@ -48,10 +48,10 @@ LooperSlider::LooperSlider(const char *name, const char *label, double min, doub
|
||||||
this->SetValue(output);
|
this->SetValue(output);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
limits_view = new QBoxLayout(QBoxLayout::LeftToRight);
|
limits_view = new QBoxLayout(QBoxLayout::LeftToRight, text_layout_widget);
|
||||||
min_label_view = new QLabel();
|
min_label_view = new QLabel(text_layout_widget);
|
||||||
limits_view->addWidget(min_label_view, 0, Qt::Alignment::enum_type::AlignLeft);
|
limits_view->addWidget(min_label_view, 0, Qt::Alignment::enum_type::AlignLeft);
|
||||||
max_label_view = new QLabel();
|
max_label_view = new QLabel(text_layout_widget);
|
||||||
limits_view->addWidget(max_label_view, 0, Qt::Alignment::enum_type::AlignRight);
|
limits_view->addWidget(max_label_view, 0, Qt::Alignment::enum_type::AlignRight);
|
||||||
scaler = new LooperLogScaler(min, max);
|
scaler = new LooperLogScaler(min, max);
|
||||||
set_min(min);
|
set_min(min);
|
||||||
|
|
|
@ -109,7 +109,7 @@ class LooperSlider : public QWidget {
|
||||||
inline void SwitchModes() {
|
inline void SwitchModes() {
|
||||||
SetMode(!text_edit_mode);
|
SetMode(!text_edit_mode);
|
||||||
}
|
}
|
||||||
explicit LooperSlider(const char *name, const char *label, double min, double max, double tick = 0.0001, bool logarithmic = false);
|
explicit LooperSlider(const char *name, const char *label, double min, double max, double tick = 0.0001, bool logarithmic = false, QWidget *parent = nullptr);
|
||||||
~LooperSlider();
|
~LooperSlider();
|
||||||
void changeEvent(QEvent *event) override;
|
void changeEvent(QEvent *event) override;
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
|
|
Loading…
Reference in a new issue