Better separation
This commit is contained in:
@ -11,6 +11,11 @@ win32: {
|
|||||||
LIBS += -lwinmm
|
LIBS += -lwinmm
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unix: {
|
||||||
|
DEFINES += __LINUX_ALSA__
|
||||||
|
LIBS += -lasound
|
||||||
|
}
|
||||||
|
|
||||||
DEFINES += QT_DEPRECATED_WARNINGS QT_DISABLE_DEPRECATED_BEFORE=0x060000
|
DEFINES += QT_DEPRECATED_WARNINGS QT_DISABLE_DEPRECATED_BEFORE=0x060000
|
||||||
|
|
||||||
SOURCES += \
|
SOURCES += \
|
||||||
|
@ -17,9 +17,12 @@ MainWindow::MainWindow(const presets::PresetsConfig &presetsConfig, QWidget *par
|
|||||||
m_presetsModel{*presetsConfig.presets}
|
m_presetsModel{*presetsConfig.presets}
|
||||||
{
|
{
|
||||||
m_ui->setupUi(this);
|
m_ui->setupUi(this);
|
||||||
|
m_ui->splitter->setSizes({99999, 1});
|
||||||
|
|
||||||
connect(&m_midiIn, &MidiInWrapper::messageReceived, this, &MainWindow::messageReceived);
|
connect(&m_midiIn, &MidiInWrapper::messageReceived, this, &MainWindow::messageReceived);
|
||||||
|
|
||||||
|
connect(m_ui->sequencerWidget, &SequencerWidget::triggerSample, m_ui->samplesWidget, &SamplesWidget::sequencerTriggerSample);
|
||||||
|
|
||||||
updateMidiDevices();
|
updateMidiDevices();
|
||||||
|
|
||||||
connect(m_ui->pushButtonMidiController, &QAbstractButton::pressed, this, [this](){
|
connect(m_ui->pushButtonMidiController, &QAbstractButton::pressed, this, [this](){
|
||||||
@ -99,6 +102,7 @@ void MainWindow::currentRowChanged(const QModelIndex ¤t)
|
|||||||
|
|
||||||
m_ui->presetDetailWidget->setPreset(preset);
|
m_ui->presetDetailWidget->setPreset(preset);
|
||||||
m_filesModel.setPreset(preset);
|
m_filesModel.setPreset(preset);
|
||||||
|
m_ui->sequencerWidget->setPreset(preset);
|
||||||
m_ui->samplesWidget->setPreset(preset);
|
m_ui->samplesWidget->setPreset(preset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -192,7 +192,16 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="SamplesWidget" name="samplesWidget" native="true"/>
|
<widget class="QWidget" name="layoutWidget">
|
||||||
|
<layout class="QVBoxLayout" stretch="1,0">
|
||||||
|
<item>
|
||||||
|
<widget class="SequencerWidget" name="sequencerWidget" native="true"/>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="SamplesWidget" name="samplesWidget" native="true"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
@ -222,6 +231,12 @@
|
|||||||
<header>presetdetailwidget.h</header>
|
<header>presetdetailwidget.h</header>
|
||||||
<container>1</container>
|
<container>1</container>
|
||||||
</customwidget>
|
</customwidget>
|
||||||
|
<customwidget>
|
||||||
|
<class>SequencerWidget</class>
|
||||||
|
<extends>QWidget</extends>
|
||||||
|
<header>sequencerwidget.h</header>
|
||||||
|
<container>1</container>
|
||||||
|
</customwidget>
|
||||||
</customwidgets>
|
</customwidgets>
|
||||||
<resources/>
|
<resources/>
|
||||||
<connections/>
|
<connections/>
|
||||||
|
@ -28,8 +28,6 @@ SamplesWidget::SamplesWidget(QWidget *parent) :
|
|||||||
for (const auto &ref : getWidgets())
|
for (const auto &ref : getWidgets())
|
||||||
connect(&ref.get(), &SampleWidget::chokeTriggered, this, &SamplesWidget::chokeTriggered);
|
connect(&ref.get(), &SampleWidget::chokeTriggered, this, &SamplesWidget::chokeTriggered);
|
||||||
|
|
||||||
connect(m_ui->sequencerWidget, &SequencerWidget::triggerSample, this, &SamplesWidget::sequencerTriggerSample);
|
|
||||||
|
|
||||||
m_ui->sampleWidget_1->setNote(48);
|
m_ui->sampleWidget_1->setNote(48);
|
||||||
m_ui->sampleWidget_2->setNote(50);
|
m_ui->sampleWidget_2->setNote(50);
|
||||||
m_ui->sampleWidget_3->setNote(52);
|
m_ui->sampleWidget_3->setNote(52);
|
||||||
@ -58,8 +56,6 @@ void SamplesWidget::setPreset(const presets::Preset &preset)
|
|||||||
{
|
{
|
||||||
m_preset = preset;
|
m_preset = preset;
|
||||||
|
|
||||||
m_ui->sequencerWidget->setPreset(preset);
|
|
||||||
|
|
||||||
updateWidgets();
|
updateWidgets();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -95,6 +91,17 @@ void SamplesWidget::setAudioDevice(const QAudioDeviceInfo &device)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SamplesWidget::sequencerTriggerSample(int index)
|
||||||
|
{
|
||||||
|
const auto widgets = getWidgets();
|
||||||
|
if (index < 0 || index >= std::size(widgets))
|
||||||
|
{
|
||||||
|
qDebug() << "index out of range" << index;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
widgets[index].get().pressed(127);
|
||||||
|
}
|
||||||
|
|
||||||
void SamplesWidget::chokeTriggered(int choke)
|
void SamplesWidget::chokeTriggered(int choke)
|
||||||
{
|
{
|
||||||
for (const auto &ref : getWidgets())
|
for (const auto &ref : getWidgets())
|
||||||
@ -124,17 +131,6 @@ void SamplesWidget::updateWidgets()
|
|||||||
widgetsIter->get().setFile(*m_preset.id, *filesIter);
|
widgetsIter->get().setFile(*m_preset.id, *filesIter);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SamplesWidget::sequencerTriggerSample(int index)
|
|
||||||
{
|
|
||||||
const auto widgets = getWidgets();
|
|
||||||
if (index < 0 || index >= std::size(widgets))
|
|
||||||
{
|
|
||||||
qDebug() << "index out of range" << index;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
widgets[index].get().pressed(127);
|
|
||||||
}
|
|
||||||
|
|
||||||
void SamplesWidget::stopAll()
|
void SamplesWidget::stopAll()
|
||||||
{
|
{
|
||||||
for (const auto &ref : getWidgets())
|
for (const auto &ref : getWidgets())
|
||||||
|
@ -28,10 +28,12 @@ public:
|
|||||||
|
|
||||||
void setAudioDevice(const QAudioDeviceInfo &device);
|
void setAudioDevice(const QAudioDeviceInfo &device);
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
void sequencerTriggerSample(int index);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void chokeTriggered(int choke);
|
void chokeTriggered(int choke);
|
||||||
void updateWidgets();
|
void updateWidgets();
|
||||||
void sequencerTriggerSample(int index);
|
|
||||||
void stopAll();
|
void stopAll();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
273
sampleswidget.ui
273
sampleswidget.ui
@ -13,145 +13,26 @@
|
|||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>Form</string>
|
<string>Form</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout" rowstretch="1,0,1,0,0,0,0,1" columnstretch="1,0,0,0,1,0,0,0,1">
|
<layout class="QGridLayout" name="gridLayout" rowstretch="0,0,0,0,0" columnstretch="0,0,0,0,0,0,0,0,0">
|
||||||
<item row="3" column="5">
|
|
||||||
<widget class="SampleWidget" name="sampleWidget_13" native="true"/>
|
|
||||||
</item>
|
|
||||||
<item row="6" column="2">
|
|
||||||
<widget class="SampleWidget" name="sampleWidget_11" native="true"/>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="4">
|
|
||||||
<spacer name="verticalSpacer">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Vertical</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>20</width>
|
|
||||||
<height>40</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item row="4" column="1">
|
|
||||||
<widget class="SampleWidget" name="sampleWidget_4" native="true"/>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="2">
|
|
||||||
<widget class="SampleWidget" name="sampleWidget_2" native="true"/>
|
|
||||||
</item>
|
|
||||||
<item row="4" column="7">
|
|
||||||
<widget class="SampleWidget" name="sampleWidget_18" native="true"/>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="8">
|
|
||||||
<spacer name="horizontalSpacer_3">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>40</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item row="6" column="5">
|
|
||||||
<widget class="SampleWidget" name="sampleWidget_22" native="true"/>
|
|
||||||
</item>
|
|
||||||
<item row="5" column="5">
|
|
||||||
<widget class="SampleWidget" name="sampleWidget_19" native="true"/>
|
|
||||||
</item>
|
|
||||||
<item row="5" column="2">
|
|
||||||
<widget class="SampleWidget" name="sampleWidget_8" native="true"/>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="3">
|
<item row="3" column="3">
|
||||||
<widget class="SampleWidget" name="sampleWidget_3" native="true"/>
|
|
||||||
</item>
|
|
||||||
<item row="5" column="7">
|
|
||||||
<widget class="SampleWidget" name="sampleWidget_21" native="true"/>
|
|
||||||
</item>
|
|
||||||
<item row="6" column="7">
|
|
||||||
<widget class="SampleWidget" name="sampleWidget_24" native="true"/>
|
|
||||||
</item>
|
|
||||||
<item row="5" column="1">
|
|
||||||
<widget class="SampleWidget" name="sampleWidget_7" native="true"/>
|
|
||||||
</item>
|
|
||||||
<item row="6" column="3">
|
|
||||||
<widget class="SampleWidget" name="sampleWidget_12" native="true"/>
|
|
||||||
</item>
|
|
||||||
<item row="4" column="2">
|
|
||||||
<widget class="SampleWidget" name="sampleWidget_5" native="true"/>
|
|
||||||
</item>
|
|
||||||
<item row="4" column="6">
|
|
||||||
<widget class="SampleWidget" name="sampleWidget_17" native="true"/>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="7">
|
|
||||||
<widget class="SampleWidget" name="sampleWidget_15" native="true"/>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="4">
|
|
||||||
<spacer name="horizontalSpacer">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>40</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item row="5" column="6">
|
|
||||||
<widget class="SampleWidget" name="sampleWidget_20" native="true"/>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="1">
|
|
||||||
<widget class="SampleWidget" name="sampleWidget_1" native="true"/>
|
|
||||||
</item>
|
|
||||||
<item row="4" column="3">
|
|
||||||
<widget class="SampleWidget" name="sampleWidget_6" native="true"/>
|
|
||||||
</item>
|
|
||||||
<item row="4" column="5">
|
|
||||||
<widget class="SampleWidget" name="sampleWidget_16" native="true"/>
|
|
||||||
</item>
|
|
||||||
<item row="6" column="6">
|
|
||||||
<widget class="SampleWidget" name="sampleWidget_23" native="true"/>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="6">
|
|
||||||
<widget class="SampleWidget" name="sampleWidget_14" native="true"/>
|
|
||||||
</item>
|
|
||||||
<item row="7" column="4">
|
|
||||||
<spacer name="verticalSpacer_2">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Vertical</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>20</width>
|
|
||||||
<height>40</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="0">
|
|
||||||
<spacer name="horizontalSpacer_2">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>40</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item row="6" column="1">
|
|
||||||
<widget class="SampleWidget" name="sampleWidget_10" native="true"/>
|
|
||||||
</item>
|
|
||||||
<item row="5" column="3">
|
|
||||||
<widget class="SampleWidget" name="sampleWidget_9" native="true"/>
|
<widget class="SampleWidget" name="sampleWidget_9" native="true"/>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="0" colspan="9">
|
<item row="4" column="3">
|
||||||
|
<widget class="SampleWidget" name="sampleWidget_12" native="true"/>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="5">
|
||||||
|
<widget class="SampleWidget" name="sampleWidget_13" native="true"/>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="7">
|
||||||
|
<widget class="SampleWidget" name="sampleWidget_15" native="true"/>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="7">
|
||||||
|
<widget class="SampleWidget" name="sampleWidget_18" native="true"/>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="6">
|
||||||
|
<widget class="SampleWidget" name="sampleWidget_23" native="true"/>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0" colspan="9">
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
<item>
|
<item>
|
||||||
<spacer name="horizontalSpacer_4">
|
<spacer name="horizontalSpacer_4">
|
||||||
@ -166,30 +47,6 @@
|
|||||||
</property>
|
</property>
|
||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
|
||||||
<widget class="QGroupBox" name="groupBox">
|
|
||||||
<property name="title">
|
|
||||||
<string>Sequencer</string>
|
|
||||||
</property>
|
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
|
||||||
<property name="leftMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="topMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="rightMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="bottomMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<item>
|
|
||||||
<widget class="SequencerWidget" name="sequencerWidget" native="true"/>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="checkBox">
|
<widget class="QCheckBox" name="checkBox">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@ -219,19 +76,99 @@
|
|||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="4">
|
<item row="3" column="2">
|
||||||
<spacer name="verticalSpacer_3">
|
<widget class="SampleWidget" name="sampleWidget_8" native="true"/>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="7">
|
||||||
|
<widget class="SampleWidget" name="sampleWidget_24" native="true"/>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<spacer name="horizontalSpacer_2">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Vertical</enum>
|
<enum>Qt::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizeHint" stdset="0">
|
<property name="sizeHint" stdset="0">
|
||||||
<size>
|
<size>
|
||||||
<width>20</width>
|
<width>40</width>
|
||||||
<height>40</height>
|
<height>20</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="SampleWidget" name="sampleWidget_1" native="true"/>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="5">
|
||||||
|
<widget class="SampleWidget" name="sampleWidget_19" native="true"/>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="7">
|
||||||
|
<widget class="SampleWidget" name="sampleWidget_21" native="true"/>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="8">
|
||||||
|
<spacer name="horizontalSpacer_3">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="2">
|
||||||
|
<widget class="SampleWidget" name="sampleWidget_5" native="true"/>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="2">
|
||||||
|
<widget class="SampleWidget" name="sampleWidget_2" native="true"/>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="6">
|
||||||
|
<widget class="SampleWidget" name="sampleWidget_17" native="true"/>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="6">
|
||||||
|
<widget class="SampleWidget" name="sampleWidget_20" native="true"/>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="4">
|
||||||
|
<spacer name="horizontalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="5">
|
||||||
|
<widget class="SampleWidget" name="sampleWidget_16" native="true"/>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<widget class="SampleWidget" name="sampleWidget_4" native="true"/>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="5">
|
||||||
|
<widget class="SampleWidget" name="sampleWidget_22" native="true"/>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="2">
|
||||||
|
<widget class="SampleWidget" name="sampleWidget_11" native="true"/>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="3">
|
||||||
|
<widget class="SampleWidget" name="sampleWidget_3" native="true"/>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="6">
|
||||||
|
<widget class="SampleWidget" name="sampleWidget_14" native="true"/>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="1">
|
||||||
|
<widget class="SampleWidget" name="sampleWidget_10" native="true"/>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="3">
|
||||||
|
<widget class="SampleWidget" name="sampleWidget_6" native="true"/>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="1">
|
||||||
|
<widget class="SampleWidget" name="sampleWidget_7" native="true"/>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<customwidgets>
|
<customwidgets>
|
||||||
@ -241,12 +178,6 @@
|
|||||||
<header>samplewidget.h</header>
|
<header>samplewidget.h</header>
|
||||||
<container>1</container>
|
<container>1</container>
|
||||||
</customwidget>
|
</customwidget>
|
||||||
<customwidget>
|
|
||||||
<class>SequencerWidget</class>
|
|
||||||
<extends>QWidget</extends>
|
|
||||||
<header>sequencerwidget.h</header>
|
|
||||||
<container>1</container>
|
|
||||||
</customwidget>
|
|
||||||
</customwidgets>
|
</customwidgets>
|
||||||
<resources/>
|
<resources/>
|
||||||
<connections/>
|
<connections/>
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
#include "ui_samplewidget.h"
|
#include "ui_samplewidget.h"
|
||||||
|
|
||||||
#include <QAbstractEventDispatcher>
|
#include <QAbstractEventDispatcher>
|
||||||
#include <QAudioDeviceInfo>
|
|
||||||
#include <QSoundEffect>
|
#include <QSoundEffect>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
|
||||||
@ -32,14 +31,14 @@ SampleWidget::SampleWidget(QWidget *parent) :
|
|||||||
|
|
||||||
connect(m_ui->pushButton, &QAbstractButton::pressed, this, [this](){ pressed(127); });
|
connect(m_ui->pushButton, &QAbstractButton::pressed, this, [this](){ pressed(127); });
|
||||||
connect(m_ui->pushButton, &QAbstractButton::released, this, &SampleWidget::released);
|
connect(m_ui->pushButton, &QAbstractButton::released, this, &SampleWidget::released);
|
||||||
|
connect(m_ui->toolButtonReload, &QAbstractButton::pressed, this, &SampleWidget::createEffect);
|
||||||
|
|
||||||
updateStatus();
|
updateStatus();
|
||||||
}
|
}
|
||||||
|
|
||||||
SampleWidget::~SampleWidget()
|
SampleWidget::~SampleWidget()
|
||||||
{
|
{
|
||||||
if (m_effect)
|
destroyEffect();
|
||||||
QMetaObject::invokeMethod(m_effect.get(), [effect=m_effect.release()](){ delete effect; });
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SampleWidget::setFile(const QString &presetId, const presets::File &file)
|
void SampleWidget::setFile(const QString &presetId, const presets::File &file)
|
||||||
@ -112,7 +111,9 @@ void SampleWidget::pressed(quint8 velocity)
|
|||||||
Q_UNUSED(velocity)
|
Q_UNUSED(velocity)
|
||||||
|
|
||||||
if (m_effect)
|
if (m_effect)
|
||||||
|
{
|
||||||
QMetaObject::invokeMethod(m_effect.get(), &QSoundEffect::play);
|
QMetaObject::invokeMethod(m_effect.get(), &QSoundEffect::play);
|
||||||
|
}
|
||||||
|
|
||||||
if (m_file && m_file->choke && *m_file->choke)
|
if (m_file && m_file->choke && *m_file->choke)
|
||||||
emit chokeTriggered(*m_file->choke);
|
emit chokeTriggered(*m_file->choke);
|
||||||
@ -130,8 +131,16 @@ void SampleWidget::forceStop()
|
|||||||
|
|
||||||
void SampleWidget::setupAudioThread(const QAudioDeviceInfo &device, QThread &thread)
|
void SampleWidget::setupAudioThread(const QAudioDeviceInfo &device, QThread &thread)
|
||||||
{
|
{
|
||||||
const auto setupEffect = [this,device](){
|
m_device = device;
|
||||||
m_effect = std::make_unique<QSoundEffect>(device);
|
m_thread = &thread;
|
||||||
|
|
||||||
|
createEffect();
|
||||||
|
}
|
||||||
|
|
||||||
|
void SampleWidget::createEffect()
|
||||||
|
{
|
||||||
|
QMetaObject::invokeMethod(QAbstractEventDispatcher::instance(m_thread), [this](){
|
||||||
|
m_effect = std::make_unique<QSoundEffect>(m_device);
|
||||||
|
|
||||||
connect(m_effect.get(), &QSoundEffect::playingChanged, this, &SampleWidget::updateStatus);
|
connect(m_effect.get(), &QSoundEffect::playingChanged, this, &SampleWidget::updateStatus);
|
||||||
connect(m_effect.get(), &QSoundEffect::statusChanged, this, &SampleWidget::updateStatus);
|
connect(m_effect.get(), &QSoundEffect::statusChanged, this, &SampleWidget::updateStatus);
|
||||||
@ -141,10 +150,7 @@ void SampleWidget::setupAudioThread(const QAudioDeviceInfo &device, QThread &thr
|
|||||||
m_effect->setSource(sampleUrl);
|
m_effect->setSource(sampleUrl);
|
||||||
|
|
||||||
QMetaObject::invokeMethod(this, &SampleWidget::updateStatus);
|
QMetaObject::invokeMethod(this, &SampleWidget::updateStatus);
|
||||||
};
|
});
|
||||||
|
|
||||||
QMetaObject::invokeMethod(QAbstractEventDispatcher::instance(&thread), setupEffect);
|
|
||||||
//setupEffect();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SampleWidget::updateStatus()
|
void SampleWidget::updateStatus()
|
||||||
@ -183,6 +189,12 @@ void SampleWidget::updateStatus()
|
|||||||
m_ui->statusLabel->setText(toString(m_effect->status()));
|
m_ui->statusLabel->setText(toString(m_effect->status()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SampleWidget::destroyEffect()
|
||||||
|
{
|
||||||
|
if (m_effect)
|
||||||
|
QMetaObject::invokeMethod(m_effect.get(), [effect=m_effect.release()](){ delete effect; });
|
||||||
|
}
|
||||||
|
|
||||||
QUrl SampleWidget::sampleUrl() const
|
QUrl SampleWidget::sampleUrl() const
|
||||||
{
|
{
|
||||||
if (!m_file || !m_file->filename)
|
if (!m_file || !m_file->filename)
|
||||||
|
@ -3,12 +3,12 @@
|
|||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
#include <QFrame>
|
#include <QFrame>
|
||||||
|
#include <QAudioDeviceInfo>
|
||||||
|
|
||||||
#include "presets.h"
|
#include "presets.h"
|
||||||
|
|
||||||
namespace Ui { class SampleWidget; }
|
namespace Ui { class SampleWidget; }
|
||||||
class QThread;
|
class QThread;
|
||||||
class QAudioDeviceInfo;
|
|
||||||
class QSoundEffect;
|
class QSoundEffect;
|
||||||
|
|
||||||
class SampleWidget : public QFrame
|
class SampleWidget : public QFrame
|
||||||
@ -40,9 +40,12 @@ signals:
|
|||||||
void chokeTriggered(int choke);
|
void chokeTriggered(int choke);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
void createEffect();
|
||||||
void updateStatus();
|
void updateStatus();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
void destroyEffect();
|
||||||
|
|
||||||
QUrl sampleUrl() const;
|
QUrl sampleUrl() const;
|
||||||
|
|
||||||
const std::unique_ptr<Ui::SampleWidget> m_ui;
|
const std::unique_ptr<Ui::SampleWidget> m_ui;
|
||||||
@ -51,4 +54,7 @@ private:
|
|||||||
std::optional<presets::File> m_file;
|
std::optional<presets::File> m_file;
|
||||||
|
|
||||||
std::unique_ptr<QSoundEffect> m_effect;
|
std::unique_ptr<QSoundEffect> m_effect;
|
||||||
|
|
||||||
|
QThread *m_thread{};
|
||||||
|
QAudioDeviceInfo m_device;
|
||||||
};
|
};
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QToolButton" name="toolButton">
|
<widget class="QToolButton" name="toolButtonReload">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>↻</string>
|
<string>↻</string>
|
||||||
</property>
|
</property>
|
||||||
|
@ -3,6 +3,8 @@
|
|||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
||||||
|
#include <QDebug>
|
||||||
|
|
||||||
#include "presets.h"
|
#include "presets.h"
|
||||||
|
|
||||||
SequencerWidget::SequencerWidget(QWidget *parent) :
|
SequencerWidget::SequencerWidget(QWidget *parent) :
|
||||||
@ -30,6 +32,9 @@ void SequencerWidget::setPreset(const presets::Preset &preset)
|
|||||||
if (preset.tempo)
|
if (preset.tempo)
|
||||||
m_ui->spinBoxTempo->setValue(*preset.tempo);
|
m_ui->spinBoxTempo->setValue(*preset.tempo);
|
||||||
|
|
||||||
|
for (int i = 0; i < 24; i++)
|
||||||
|
qobject_cast<QLabel*>(m_ui->gridLayout->itemAtPosition(2+(i*2), 0)->widget())->setText(*preset.files->at(i).filename);
|
||||||
|
|
||||||
m_selectedSequence = nullptr;
|
m_selectedSequence = nullptr;
|
||||||
m_ui->horizontalSlider->setMaximum(0);
|
m_ui->horizontalSlider->setMaximum(0);
|
||||||
|
|
||||||
|
@ -2,12 +2,14 @@
|
|||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <array>
|
||||||
|
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
|
|
||||||
namespace Ui { class SequencerWidget; }
|
namespace Ui { class SequencerWidget; }
|
||||||
namespace presets { class Preset; class Sequence; }
|
namespace presets { class Preset; class Sequence; }
|
||||||
|
class QLabel;
|
||||||
|
|
||||||
class SequencerWidget : public QWidget
|
class SequencerWidget : public QWidget
|
||||||
{
|
{
|
||||||
@ -41,4 +43,5 @@ private:
|
|||||||
QTimer m_timer;
|
QTimer m_timer;
|
||||||
|
|
||||||
int m_pos;
|
int m_pos;
|
||||||
|
std::array<QLabel*, 24> m_sampleLabels;
|
||||||
};
|
};
|
||||||
|
@ -6,16 +6,16 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>412</width>
|
<width>912</width>
|
||||||
<height>65</height>
|
<height>611</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>Form</string>
|
<string>Form</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
<layout class="QVBoxLayout" name="verticalLayout" stretch="0,1">
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
<layout class="QHBoxLayout" name="horizontalLayout" stretch="0,0,0,0,0,1">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QSpinBox" name="spinBoxTempo">
|
<widget class="QSpinBox" name="spinBoxTempo">
|
||||||
<property name="suffix">
|
<property name="suffix">
|
||||||
@ -62,13 +62,457 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QSlider" name="horizontalSlider">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QSlider" name="horizontalSlider">
|
<widget class="QScrollArea" name="scrollArea">
|
||||||
<property name="orientation">
|
<property name="widgetResizable">
|
||||||
<enum>Qt::Horizontal</enum>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
|
<widget class="QWidget" name="scrollAreaWidgetContents">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>878</width>
|
||||||
|
<height>921</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout" columnstretch="0,0,1">
|
||||||
|
<item row="38" column="0">
|
||||||
|
<widget class="QLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>TextLabel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="34" column="0">
|
||||||
|
<widget class="QLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>TextLabel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="19" column="0" colspan="3">
|
||||||
|
<widget class="QFrame">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::HLine</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Sunken</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="10" column="0">
|
||||||
|
<widget class="QLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>TextLabel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="7" column="0" colspan="3">
|
||||||
|
<widget class="QFrame">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::HLine</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Sunken</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="14" column="0">
|
||||||
|
<widget class="QLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>TextLabel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="0" colspan="3">
|
||||||
|
<widget class="QFrame">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::HLine</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Sunken</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="15" column="0" colspan="3">
|
||||||
|
<widget class="QFrame">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::HLine</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Sunken</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="41" column="0" colspan="3">
|
||||||
|
<widget class="QFrame">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::HLine</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Sunken</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="44" column="0">
|
||||||
|
<widget class="QLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>TextLabel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="47" column="0" colspan="3">
|
||||||
|
<widget class="QFrame">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::HLine</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Sunken</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="29" column="0" colspan="3">
|
||||||
|
<widget class="QFrame">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::HLine</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Sunken</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="32" column="0">
|
||||||
|
<widget class="QLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>TextLabel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="12" column="0">
|
||||||
|
<widget class="QLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>TextLabel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="27" column="0" colspan="3">
|
||||||
|
<widget class="QFrame">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::HLine</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Sunken</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="48" column="0">
|
||||||
|
<widget class="QLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>TextLabel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="11" column="0" colspan="3">
|
||||||
|
<widget class="QFrame">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::HLine</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Sunken</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="28" column="0">
|
||||||
|
<widget class="QLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>TextLabel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="18" column="0">
|
||||||
|
<widget class="QLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>TextLabel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="16" column="0">
|
||||||
|
<widget class="QLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>TextLabel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="13" column="0" colspan="3">
|
||||||
|
<widget class="QFrame">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::HLine</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Sunken</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="25" column="0" colspan="3">
|
||||||
|
<widget class="QFrame">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::HLine</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Sunken</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="40" column="0">
|
||||||
|
<widget class="QLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>TextLabel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="6" column="0">
|
||||||
|
<widget class="QLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>TextLabel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="30" column="0">
|
||||||
|
<widget class="QLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>TextLabel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="26" column="0">
|
||||||
|
<widget class="QLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>TextLabel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="43" column="0" colspan="3">
|
||||||
|
<widget class="QFrame">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::HLine</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Sunken</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="42" column="0">
|
||||||
|
<widget class="QLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>TextLabel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="0" colspan="3">
|
||||||
|
<widget class="QFrame">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::HLine</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Sunken</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="39" column="0" colspan="3">
|
||||||
|
<widget class="QFrame">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::HLine</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Sunken</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="21" column="0" colspan="3">
|
||||||
|
<widget class="QFrame">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::HLine</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Sunken</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="31" column="0" colspan="3">
|
||||||
|
<widget class="QFrame">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::HLine</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Sunken</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="23" column="0" colspan="3">
|
||||||
|
<widget class="QFrame">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::HLine</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Sunken</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="37" column="0" colspan="3">
|
||||||
|
<widget class="QFrame">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::HLine</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Sunken</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="0">
|
||||||
|
<widget class="QLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>TextLabel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="35" column="0" colspan="3">
|
||||||
|
<widget class="QFrame">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::HLine</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Sunken</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="9" column="0" colspan="3">
|
||||||
|
<widget class="QFrame">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::HLine</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Sunken</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="20" column="0">
|
||||||
|
<widget class="QLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>TextLabel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="17" column="0" colspan="3">
|
||||||
|
<widget class="QFrame">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::HLine</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Sunken</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="36" column="0">
|
||||||
|
<widget class="QLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>TextLabel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1" rowspan="49" colspan="3">
|
||||||
|
<widget class="QFrame">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::VLine</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Sunken</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="8" column="0">
|
||||||
|
<widget class="QLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>TextLabel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>TextLabel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="33" column="0" colspan="3">
|
||||||
|
<widget class="QFrame">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::HLine</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Sunken</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="22" column="0">
|
||||||
|
<widget class="QLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>TextLabel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0" colspan="3">
|
||||||
|
<widget class="QFrame">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::HLine</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Sunken</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="46" column="0">
|
||||||
|
<widget class="QLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>TextLabel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="45" column="0" colspan="3">
|
||||||
|
<widget class="QFrame">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::HLine</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Sunken</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="24" column="0">
|
||||||
|
<widget class="QLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>TextLabel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="2">
|
||||||
|
<widget class="QLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>TextLabel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
Reference in New Issue
Block a user