#include "mainwindow.h" #include "ui_mainwindow.h" #include #include #include MainWindow::MainWindow(QWidget* parent) : QMainWindow(parent), ui(new Ui::MainWindow), m_selectedTe(nullptr), m_currentNewTopicEditor(nullptr), m_currentEditTopicEditor(nullptr) { ui->setupUi(this); ui->masterSplitter->setStretchFactor(ui->masterSplitter->indexOf(ui->masterSplitter), 20); ui->masterSplitter->setStretchFactor(ui->masterSplitter->indexOf(ui->toolBox), 0); ui->detailSplitter->setStretchFactor(ui->masterSplitter->indexOf(ui->scriptTimeline), 20); ui->detailSplitter->setStretchFactor(ui->masterSplitter->indexOf(ui->detailLayout), 0); connect(ui->scriptTimeline, &LtsScriptTimeline::ScriptTimeline::signalTrackEntrySelectionChanged, this, &MainWindow::slotTrackEntrySelectionChanged); connect(ui->pbTopicAddAudio, &QPushButton::clicked, this, [this]() { LtsScriptTimeline::TrackEntry* te = new LtsScriptTimeline::TrackEntry(LtsScriptTimeline::TrackEntryType::Audio); te->time = -1; te->length = 30; te->topicId = 3; if (m_currentNewTopicEditor) delete m_currentNewTopicEditor; LtsScriptTimeline::AudioTopicEditor* ate = new LtsScriptTimeline::AudioTopicEditor(te); connect(ate, &LtsScriptTimeline::AudioTopicEditor::destroyed, this, [this]() { m_currentNewTopicEditor = nullptr; }); m_currentNewTopicEditor = ate; ui->newTopicTab->layout()->addWidget(ate); ui->detailLayout->setCurrentWidget(ui->newTopicTab); }); ui->scriptTimeline->addTrack(ui->scriptTimeline->newTrackName()); qCritical() << "THIS EXAMPLE NO LONGER WORKS!"; } void MainWindow::disconnectTrackEntry() { if (!m_selectedTe) return; m_selectedTe = nullptr; if (m_currentEditTopicEditor) { delete m_currentEditTopicEditor; m_currentEditTopicEditor = nullptr; ui->lblNoTopicSelected->setVisible(true); } ui->lblNoTopicSelected->setVisible(true); } void MainWindow::slotTrackEntrySelectionChanged(LtsScriptTimeline::TrackEntry* te) { qDeleteAll(ui->topicEditorTab->layout()->children()); disconnectTrackEntry(); if (!te) return; ui->lblNoTopicSelected->setVisible(false); m_selectedTe = te; LtsScriptTimeline::AudioTopicEditor* ate = new LtsScriptTimeline::AudioTopicEditor(te); connect(ate, &LtsScriptTimeline::AudioTopicEditor::destroyed, this, [this]() { m_currentEditTopicEditor = nullptr; }); m_currentEditTopicEditor = ate; ui->topicEditorTab->layout()->addWidget(ate); } MainWindow::~MainWindow() { delete ui; }