diff --git a/.travis/install.sh b/.travis/install.sh index 52ae8375e..d38d4e291 100644 --- a/.travis/install.sh +++ b/.travis/install.sh @@ -8,11 +8,11 @@ if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then elif [[ "$TRAVIS_OS_NAME" == "linux" ]]; then if [ "$ARCH" == "x86_64" ]; then - sudo apt-get -y install qt59base qt59multimedia libavformat-dev libavcodec-dev libavfilter-dev libavutil-dev libswscale-dev libswresample-dev frei0r-plugins-dev frei0r-plugins fuse libgtk2.0-dev + sudo apt-get -y install qt59base qt59multimedia libavformat-dev libavcodec-dev libavfilter-dev libavutil-dev libswscale-dev libswresample-dev frei0r-plugins-dev frei0r-plugins fuse fi if [ "$ARCH" == "i386" ]; then - sudo apt-get -y install gcc-multilib g++-multilib qt59base:i386 qt59multimedia:i386 libavformat-dev:i386 libavcodec-dev:i386 libavfilter-dev:i386 libavutil-dev:i386 libswscale-dev:i386 libswresample-dev:i386 frei0r-plugins-dev:i386 frei0r-plugins:i386 pkg-config:i386 libgl1-mesa-dev:i386 fuse:i386 libgtk2.0-dev:i386 + sudo apt-get -y install gcc-multilib g++-multilib qt59base:i386 qt59multimedia:i386 libavformat-dev:i386 libavcodec-dev:i386 libavfilter-dev:i386 libavutil-dev:i386 libswscale-dev:i386 libswresample-dev:i386 frei0r-plugins-dev:i386 frei0r-plugins:i386 pkg-config:i386 libgl1-mesa-dev:i386 fuse:i386 fi source /opt/qt*/bin/qt*-env.sh diff --git a/.travis/script.sh b/.travis/script.sh index 075f5ae5f..b15b61eee 100644 --- a/.travis/script.sh +++ b/.travis/script.sh @@ -31,14 +31,6 @@ if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then elif [[ "$TRAVIS_OS_NAME" == "linux" ]]; then - # get, compile, and install GTK style plugin - git clone http://code.qt.io/qt/qtstyleplugins.git - cd qtstyleplugins - qmake - make -j$(nproc) - make install - cd - - # generate translation files lrelease olive.pro @@ -66,7 +58,7 @@ elif [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export VERSION=$(git rev-parse --short HEAD) # use linuxdeployqt to set up dependencies - ./linuxdeployqt-continuous-x86_64.AppImage appdir/usr/share/applications/*.desktop -appimage -extra-plugins=platformthemes/libqgtk2.so,styles/libqgtk2style.so + ./linuxdeployqt-continuous-x86_64.AppImage appdir/usr/share/applications/*.desktop -appimage # 64-bit linuxdeployqt can only generate a 64-bit AppImage # to generate a 32-bit one, we need to download and run 32-bit AppImageTool diff --git a/Doxyfile b/Doxyfile index 132db714e..bddbd4e1c 100644 --- a/Doxyfile +++ b/Doxyfile @@ -897,7 +897,8 @@ RECURSIVE = YES # Note that relative paths are relative to the directory from which doxygen is # run. -EXCLUDE = +EXCLUDE = docs\ + .git # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded diff --git a/debian/changelog b/debian/changelog index cb91265e6..0f9a79b8e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,9 +1,5 @@ -olive-editor (18.11.13bionic1-1) bionic; urgency=low +olive-editor (201902160026-0ac9dd9+805~ubuntu19.04.1) disco; urgency=low - * Initial Release - * Included missing dep - * Included another missing dep - * Updated source to dd55b97 - * Updated source to 6a38cd0 + * Auto build. - -- Olive Team Fri, 13 Nov 2018 10:04:05 +1100 + -- Launchpad Package Builder Sat, 16 Feb 2019 00:26:45 +0000 \ No newline at end of file diff --git a/debian/gitfromlog.sh b/debian/gitfromlog.sh new file mode 100644 index 000000000..726fd4e95 --- /dev/null +++ b/debian/gitfromlog.sh @@ -0,0 +1,3 @@ +# A simple script to extract the Git hash from an auto-generated debian/changelog + +grep -Po '(?<=-)(([a-z0-9])\w+)(?=\+)' -m 1 $1 \ No newline at end of file diff --git a/dialogs/aboutdialog.h b/dialogs/aboutdialog.h index 9c548b9ab..2faee3f58 100644 --- a/dialogs/aboutdialog.h +++ b/dialogs/aboutdialog.h @@ -28,7 +28,7 @@ class AboutDialog : public QDialog Q_OBJECT public: - explicit AboutDialog(QWidget *parent = 0); + explicit AboutDialog(QWidget *parent = 0); }; #endif // ABOUTDIALOG_H diff --git a/dialogs/actionsearch.h b/dialogs/actionsearch.h index a3898b063..5d9632899 100644 --- a/dialogs/actionsearch.h +++ b/dialogs/actionsearch.h @@ -24,9 +24,7 @@ #include #include #include - -class QListWidget; -class QMenu; +#include class ActionSearchList : public QListWidget { Q_OBJECT diff --git a/dialogs/advancedvideodialog.h b/dialogs/advancedvideodialog.h index 95c14b310..5f986692d 100644 --- a/dialogs/advancedvideodialog.h +++ b/dialogs/advancedvideodialog.h @@ -22,11 +22,10 @@ #define ADVANCEDVIDEODIALOG_H #include +#include #include "io/exportthread.h" -class QComboBox; - class AdvancedVideoDialog : public QDialog { Q_OBJECT public: diff --git a/dialogs/debugdialog.h b/dialogs/debugdialog.h index d3b5bbeec..b58c53833 100644 --- a/dialogs/debugdialog.h +++ b/dialogs/debugdialog.h @@ -22,7 +22,7 @@ #define DEBUGDIALOG_H #include -class QTextEdit; +#include class DebugDialog : public QDialog { Q_OBJECT diff --git a/dialogs/exportdialog.cpp b/dialogs/exportdialog.cpp index f13cedc78..7328e4b23 100644 --- a/dialogs/exportdialog.cpp +++ b/dialogs/exportdialog.cpp @@ -28,18 +28,12 @@ #include #include #include -#include -#include -#include -#include #include -#include #include "oliveglobal.h" #include "dialogs/advancedvideodialog.h" #include "panels/panels.h" #include "ui/viewerwidget.h" -#include "project/sequence.h" #include "io/exportthread.h" #include "playback/playback.h" #include "mainwindow.h" @@ -343,6 +337,7 @@ void ExportDialog::render_thread_finished() { panel_sequence_viewer->viewer_widget->makeCurrent(); panel_sequence_viewer->viewer_widget->initializeGL(); update_ui(false); + et->deleteLater(); if (progressBar->value() == 100) accept(); } @@ -537,7 +532,6 @@ void ExportDialog::export_action() { et = new ExportThread(params, vcodec_params, this); - connect(et, SIGNAL(finished()), et, SLOT(deleteLater())); connect(et, SIGNAL(finished()), this, SLOT(render_thread_finished())); connect(et, SIGNAL(progress_changed(int, qint64)), this, SLOT(update_progress_bar(int, qint64))); @@ -549,7 +543,6 @@ void ExportDialog::export_action() { prep_ui_for_render(true); - et->ed = this; cancelled = false; et->start(); diff --git a/dialogs/exportdialog.h b/dialogs/exportdialog.h index d06c7d3eb..8fd4f0ce3 100644 --- a/dialogs/exportdialog.h +++ b/dialogs/exportdialog.h @@ -22,15 +22,14 @@ #define EXPORTDIALOG_H #include +#include +#include +#include +#include +#include +#include -struct Sequence; -class ExportThread; -class QComboBox; -class QSpinBox; -class QDoubleSpinBox; -class QLabel; -class QProgressBar; -class QGroupBox; +#include "project/sequence.h" #include "io/exportthread.h" diff --git a/dialogs/loaddialog.cpp b/dialogs/loaddialog.cpp index 78c4db704..35902a2a0 100644 --- a/dialogs/loaddialog.cpp +++ b/dialogs/loaddialog.cpp @@ -20,17 +20,14 @@ #include "loaddialog.h" -#include #include #include -#include #include #include "oliveglobal.h" #include "panels/panels.h" -#include "io/loadthread.h" #include "playback/playback.h" #include "ui/sourcetable.h" #include "mainwindow.h" @@ -59,7 +56,7 @@ LoadDialog::LoadDialog(QWidget *parent, bool autorecovery) : QDialog(parent) { update(); - lt = new LoadThread(this, autorecovery); + lt = new LoadThread(autorecovery); QObject::connect(lt, SIGNAL(success()), this, SLOT(thread_done())); QObject::connect(lt, SIGNAL(error()), this, SLOT(die())); QObject::connect(lt, SIGNAL(report_progress(int)), bar, SLOT(setValue(int))); diff --git a/dialogs/loaddialog.h b/dialogs/loaddialog.h index 84b112bf9..e75bc289d 100644 --- a/dialogs/loaddialog.h +++ b/dialogs/loaddialog.h @@ -22,13 +22,11 @@ #define LOADDIALOG_H #include +#include +#include -class QProgressBar; -struct Sequence; -class Media; -struct Footage; -class QHBoxLayout; -class LoadThread; +#include "project/projectelements.h" +#include "io/loadthread.h" class LoadDialog : public QDialog { diff --git a/dialogs/mediapropertiesdialog.h b/dialogs/mediapropertiesdialog.h index 9c1ff9d30..a2e63da8b 100644 --- a/dialogs/mediapropertiesdialog.h +++ b/dialogs/mediapropertiesdialog.h @@ -22,14 +22,14 @@ #define MEDIAPROPERTIESDIALOG_H #include +#include +#include +#include +#include +#include -struct Footage; -class QComboBox; -class QLineEdit; -class Media; -class QListWidget; -class QDoubleSpinBox; -class QCheckBox; +#include "project/footage.h" +#include "project/media.h" class MediaPropertiesDialog : public QDialog { Q_OBJECT diff --git a/dialogs/newsequencedialog.h b/dialogs/newsequencedialog.h index bf16f980f..f9d5164c6 100644 --- a/dialogs/newsequencedialog.h +++ b/dialogs/newsequencedialog.h @@ -22,13 +22,13 @@ #define NEWSEQUENCEDIALOG_H #include +#include +#include +#include -class Project; -class Media; -class QComboBox; -class QSpinBox; -class QLineEdit; -struct Sequence; +#include "panels/project.h" +#include "project/media.h" +#include "project/sequence.h" class NewSequenceDialog : public QDialog { diff --git a/dialogs/preferencesdialog.cpp b/dialogs/preferencesdialog.cpp index 5e9f3adc5..cf292e2b7 100644 --- a/dialogs/preferencesdialog.cpp +++ b/dialogs/preferencesdialog.cpp @@ -47,6 +47,7 @@ #include #include #include +#include #include KeySequenceEditor::KeySequenceEditor(QWidget* parent, QAction* a) @@ -82,10 +83,10 @@ PreferencesDialog::PreferencesDialog(QWidget *parent) : setWindowTitle(tr("Preferences")); setup_ui(); - accurateSeekButton->setChecked(!config.fast_seeking); - fastSeekButton->setChecked(config.fast_seeking); - recordingComboBox->setCurrentIndex(config.recording_mode - 1); - imgSeqFormatEdit->setText(config.img_seq_formats); + accurateSeekButton->setChecked(!Olive::CurrentConfig.fast_seeking); + fastSeekButton->setChecked(Olive::CurrentConfig.fast_seeking); + recordingComboBox->setCurrentIndex(Olive::CurrentConfig.recording_mode - 1); + imgSeqFormatEdit->setText(Olive::CurrentConfig.img_seq_formats); } PreferencesDialog::~PreferencesDialog() {} @@ -183,18 +184,18 @@ void PreferencesDialog::save() { } // Check if any settings will require a restart of Olive - if (config.effect_textbox_lines != effect_textbox_lines_field->value() - || config.use_software_fallback != use_software_fallbacks_checkbox->isChecked() - || config.language_file != language_combobox->currentData().toString() - || config.thumbnail_resolution != thumbnail_res_spinbox->value() - || config.waveform_resolution != waveform_res_spinbox->value()) { + if (Olive::CurrentConfig.effect_textbox_lines != effect_textbox_lines_field->value() + || Olive::CurrentConfig.use_software_fallback != use_software_fallbacks_checkbox->isChecked() + || Olive::CurrentConfig.language_file != language_combobox->currentData().toString() + || Olive::CurrentConfig.thumbnail_resolution != thumbnail_res_spinbox->value() + || Olive::CurrentConfig.waveform_resolution != waveform_res_spinbox->value()) { // any changes to these settings will require a restart - ask the user if we should do one now or later int ret = QMessageBox::question(this, "Restart Required", - "Some of the changed settings will require a restart of Olive. Would you like to" - "restart now?", + "Some of the changed settings will require a restart of Olive. Would you like " + "to restart now?", QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel); if (ret == QMessageBox::Cancel) { @@ -214,51 +215,51 @@ void PreferencesDialog::save() { } // Audio settings may require the audio device to be re-initiated. - if (config.preferred_audio_output != audio_output_devices->currentData().toString() - || config.preferred_audio_input != audio_input_devices->currentData().toString() - || config.audio_rate != audio_sample_rate->currentData().toInt()) { + if (Olive::CurrentConfig.preferred_audio_output != audio_output_devices->currentData().toString() + || Olive::CurrentConfig.preferred_audio_input != audio_input_devices->currentData().toString() + || Olive::CurrentConfig.audio_rate != audio_sample_rate->currentData().toInt()) { reinit_audio = true; } // save settings from UI to backend - config.css_path = custom_css_fn->text(); - Olive::MainWindow->load_css_from_file(config.css_path); + Olive::CurrentConfig.css_path = custom_css_fn->text(); + Olive::MainWindow->load_css_from_file(Olive::CurrentConfig.css_path); - config.recording_mode = recordingComboBox->currentIndex() + 1; - config.img_seq_formats = imgSeqFormatEdit->text(); - config.fast_seeking = fastSeekButton->isChecked(); - config.upcoming_queue_size = upcoming_queue_spinbox->value(); - config.upcoming_queue_type = upcoming_queue_type->currentIndex(); - config.previous_queue_size = previous_queue_spinbox->value(); - config.previous_queue_type = previous_queue_type->currentIndex(); - config.add_default_effects_to_clips = add_default_effects_to_clips->isChecked(); + Olive::CurrentConfig.recording_mode = recordingComboBox->currentIndex() + 1; + Olive::CurrentConfig.img_seq_formats = imgSeqFormatEdit->text(); + Olive::CurrentConfig.fast_seeking = fastSeekButton->isChecked(); + Olive::CurrentConfig.upcoming_queue_size = upcoming_queue_spinbox->value(); + Olive::CurrentConfig.upcoming_queue_type = upcoming_queue_type->currentIndex(); + Olive::CurrentConfig.previous_queue_size = previous_queue_spinbox->value(); + Olive::CurrentConfig.previous_queue_type = previous_queue_type->currentIndex(); + Olive::CurrentConfig.add_default_effects_to_clips = add_default_effects_to_clips->isChecked(); - config.preferred_audio_output = audio_output_devices->currentData().toString(); - config.preferred_audio_input = audio_input_devices->currentData().toString(); - config.audio_rate = audio_sample_rate->currentData().toInt(); + Olive::CurrentConfig.preferred_audio_output = audio_output_devices->currentData().toString(); + Olive::CurrentConfig.preferred_audio_input = audio_input_devices->currentData().toString(); + Olive::CurrentConfig.audio_rate = audio_sample_rate->currentData().toInt(); - config.effect_textbox_lines = effect_textbox_lines_field->value(); - config.use_software_fallback = use_software_fallbacks_checkbox->isChecked(); - config.language_file = language_combobox->currentData().toString(); + Olive::CurrentConfig.effect_textbox_lines = effect_textbox_lines_field->value(); + Olive::CurrentConfig.use_software_fallback = use_software_fallbacks_checkbox->isChecked(); + Olive::CurrentConfig.language_file = language_combobox->currentData().toString(); - if (config.thumbnail_resolution != thumbnail_res_spinbox->value() - || config.waveform_resolution != waveform_res_spinbox->value()) { + if (Olive::CurrentConfig.thumbnail_resolution != thumbnail_res_spinbox->value() + || Olive::CurrentConfig.waveform_resolution != waveform_res_spinbox->value()) { // we're changing the size of thumbnails and waveforms, so let's delete them and regenerate them next start // delete nothing char delete_match = 0; - if (config.thumbnail_resolution != thumbnail_res_spinbox->value()) { + if (Olive::CurrentConfig.thumbnail_resolution != thumbnail_res_spinbox->value()) { // delete existing thumbnails - config.thumbnail_resolution = thumbnail_res_spinbox->value(); + Olive::CurrentConfig.thumbnail_resolution = thumbnail_res_spinbox->value(); // delete only thumbnails delete_match = 't'; } - if (config.waveform_resolution != waveform_res_spinbox->value()) { + if (Olive::CurrentConfig.waveform_resolution != waveform_res_spinbox->value()) { // delete existing waveforms - config.waveform_resolution = waveform_res_spinbox->value(); + Olive::CurrentConfig.waveform_resolution = waveform_res_spinbox->value(); // if we're already deleting thumbnails if (delete_match == 't') { @@ -283,7 +284,16 @@ void PreferencesDialog::save() { init_audio(); } - accept(); + accept(); + + if (restart_after_saving) { + // since we already ran can_close_project(), bypass checking again by running setWindowModified(false) + Olive::MainWindow->setWindowModified(false); + + Olive::MainWindow->close(); + + QProcess::startDetached(QApplication::applicationFilePath(), { Olive::ActiveProjectFilename }); + } } void PreferencesDialog::reset_default_shortcut() { @@ -458,7 +468,7 @@ void PreferencesDialog::setup_ui() { QString locale_str = locale_file_basename.mid(locale_file_basename.lastIndexOf('_')+1); language_combobox->addItem(QLocale(locale_str).nativeLanguageName(), locale_relative_path); - if (config.language_file == locale_relative_path) { + if (Olive::CurrentConfig.language_file == locale_relative_path) { language_combobox->setCurrentIndex(language_combobox->count() - 1); } } @@ -473,7 +483,7 @@ void PreferencesDialog::setup_ui() { general_layout->addWidget(new QLabel(tr("Custom CSS:"), this), row, 0); custom_css_fn = new QLineEdit(general_tab); - custom_css_fn->setText(config.css_path); + custom_css_fn->setText(Olive::CurrentConfig.css_path); general_layout->addWidget(custom_css_fn, row, 1, 1, 3); QPushButton* custom_css_browse = new QPushButton(tr("Browse"), general_tab); @@ -506,7 +516,7 @@ void PreferencesDialog::setup_ui() { effect_textbox_lines_field = new QSpinBox(general_tab); effect_textbox_lines_field->setMinimum(1); - effect_textbox_lines_field->setValue(config.effect_textbox_lines); + effect_textbox_lines_field->setValue(Olive::CurrentConfig.effect_textbox_lines); general_layout->addWidget(effect_textbox_lines_field, row, 1, 1, 4); row++; @@ -517,7 +527,7 @@ void PreferencesDialog::setup_ui() { thumbnail_res_spinbox = new QSpinBox(this); thumbnail_res_spinbox->setMinimum(0); thumbnail_res_spinbox->setMaximum(INT_MAX); - thumbnail_res_spinbox->setValue(config.thumbnail_resolution); + thumbnail_res_spinbox->setValue(Olive::CurrentConfig.thumbnail_resolution); general_layout->addWidget(thumbnail_res_spinbox, row, 1); general_layout->addWidget(new QLabel(tr("Waveform Resolution:"), this), row, 2); @@ -525,7 +535,7 @@ void PreferencesDialog::setup_ui() { waveform_res_spinbox = new QSpinBox(this); waveform_res_spinbox->setMinimum(0); waveform_res_spinbox->setMaximum(INT_MAX); - waveform_res_spinbox->setValue(config.waveform_resolution); + waveform_res_spinbox->setValue(Olive::CurrentConfig.waveform_resolution); general_layout->addWidget(waveform_res_spinbox, row, 3); QPushButton* delete_preview_btn = new QPushButton(tr("Delete Previews")); @@ -537,7 +547,7 @@ void PreferencesDialog::setup_ui() { // General -> Use Software Fallbacks When Possible use_software_fallbacks_checkbox = new QCheckBox(general_tab); use_software_fallbacks_checkbox->setText(tr("Use Software Fallbacks When Possible")); - use_software_fallbacks_checkbox->setChecked(config.use_software_fallback); + use_software_fallbacks_checkbox->setChecked(Olive::CurrentConfig.use_software_fallback); general_layout->addWidget(use_software_fallbacks_checkbox, row, 0, 1, 4); tabWidget->addTab(general_tab, tr("General")); @@ -549,7 +559,7 @@ void PreferencesDialog::setup_ui() { QVBoxLayout* behavior_tab_layout = new QVBoxLayout(behavior_tab); add_default_effects_to_clips = new QCheckBox("Add Default Effects to New Clips"); - add_default_effects_to_clips->setChecked(config.add_default_effects_to_clips); + add_default_effects_to_clips->setChecked(Olive::CurrentConfig.add_default_effects_to_clips); behavior_tab_layout->addWidget(add_default_effects_to_clips); // Playback @@ -574,21 +584,21 @@ void PreferencesDialog::setup_ui() { QGridLayout* memory_usage_layout = new QGridLayout(memory_usage_group); memory_usage_layout->addWidget(new QLabel(tr("Upcoming Frame Queue:"), playback_tab), 0, 0); upcoming_queue_spinbox = new QDoubleSpinBox(playback_tab); - upcoming_queue_spinbox->setValue(config.upcoming_queue_size); + upcoming_queue_spinbox->setValue(Olive::CurrentConfig.upcoming_queue_size); memory_usage_layout->addWidget(upcoming_queue_spinbox, 0, 1); upcoming_queue_type = new QComboBox(playback_tab); upcoming_queue_type->addItem(tr("frames")); upcoming_queue_type->addItem(tr("seconds")); - upcoming_queue_type->setCurrentIndex(config.upcoming_queue_type); + upcoming_queue_type->setCurrentIndex(Olive::CurrentConfig.upcoming_queue_type); memory_usage_layout->addWidget(upcoming_queue_type, 0, 2); memory_usage_layout->addWidget(new QLabel(tr("Previous Frame Queue:"), playback_tab), 1, 0); previous_queue_spinbox = new QDoubleSpinBox(playback_tab); - previous_queue_spinbox->setValue(config.previous_queue_size); + previous_queue_spinbox->setValue(Olive::CurrentConfig.previous_queue_size); memory_usage_layout->addWidget(previous_queue_spinbox, 1, 1); previous_queue_type = new QComboBox(playback_tab); previous_queue_type->addItem(tr("frames")); previous_queue_type->addItem(tr("seconds")); - previous_queue_type->setCurrentIndex(config.previous_queue_type); + previous_queue_type->setCurrentIndex(Olive::CurrentConfig.previous_queue_type); memory_usage_layout->addWidget(previous_queue_type, 1, 2); playback_tab_layout->addWidget(memory_usage_group); @@ -610,7 +620,7 @@ void PreferencesDialog::setup_ui() { for (int i=0;iaddItem(devs.at(i).deviceName(), devs.at(i).deviceName()); if (!found_preferred_device - && devs.at(i).deviceName() == config.preferred_audio_output) { + && devs.at(i).deviceName() == Olive::CurrentConfig.preferred_audio_output) { audio_output_devices->setCurrentIndex(audio_output_devices->count()-1); found_preferred_device = true; } @@ -629,7 +639,7 @@ void PreferencesDialog::setup_ui() { for (int i=0;iaddItem(devs.at(i).deviceName(), devs.at(i).deviceName()); if (!found_preferred_device - && devs.at(i).deviceName() == config.preferred_audio_input) { + && devs.at(i).deviceName() == Olive::CurrentConfig.preferred_audio_input) { audio_input_devices->setCurrentIndex(audio_input_devices->count()-1); found_preferred_device = true; } @@ -642,7 +652,7 @@ void PreferencesDialog::setup_ui() { audio_sample_rate = new QComboBox(); combobox_audio_sample_rates(audio_sample_rate); for (int i=0;icount();i++) { - if (audio_sample_rate->itemData(i).toInt() == config.audio_rate) { + if (audio_sample_rate->itemData(i).toInt() == Olive::CurrentConfig.audio_rate) { audio_sample_rate->setCurrentIndex(i); break; } diff --git a/dialogs/preferencesdialog.h b/dialogs/preferencesdialog.h index 5469ce8a6..8aa3d232a 100644 --- a/dialogs/preferencesdialog.h +++ b/dialogs/preferencesdialog.h @@ -23,16 +23,16 @@ #include #include -class QMenuBar; -class QLineEdit; -class QComboBox; -class QRadioButton; -class QTreeWidget; -class QTreeWidgetItem; -class QMenu; -class QCheckBox; -class QDoubleSpinBox; -class QSpinBox; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include class KeySequenceEditor : public QKeySequenceEdit { Q_OBJECT diff --git a/dialogs/proxydialog.h b/dialogs/proxydialog.h index 95367c7bd..d8917be54 100644 --- a/dialogs/proxydialog.h +++ b/dialogs/proxydialog.h @@ -25,7 +25,7 @@ #include #include -struct Footage; +#include "project/footage.h" class ProxyDialog : public QDialog { Q_OBJECT diff --git a/dialogs/replaceclipmediadialog.cpp b/dialogs/replaceclipmediadialog.cpp index 237cd72ae..1f42a910a 100644 --- a/dialogs/replaceclipmediadialog.cpp +++ b/dialogs/replaceclipmediadialog.cpp @@ -20,20 +20,16 @@ #include "replaceclipmediadialog.h" -#include "ui/sourcetable.h" #include "panels/panels.h" -#include "project/projectelements.h" #include "playback/playback.h" #include "playback/cacher.h" #include "project/undo.h" #include -#include #include #include #include -#include ReplaceClipMediaDialog::ReplaceClipMediaDialog(QWidget *parent, Media *old_media) : QDialog(parent), diff --git a/dialogs/replaceclipmediadialog.h b/dialogs/replaceclipmediadialog.h index f254c1f38..1971579f4 100644 --- a/dialogs/replaceclipmediadialog.h +++ b/dialogs/replaceclipmediadialog.h @@ -22,11 +22,11 @@ #define REPLACECLIPMEDIADIALOG_H #include +#include +#include -class SourceTable; -class QTreeView; -class Media; -class QCheckBox; +#include "ui/sourcetable.h" +#include "project/projectelements.h" class ReplaceClipMediaDialog : public QDialog { Q_OBJECT diff --git a/dialogs/speeddialog.cpp b/dialogs/speeddialog.cpp index 384bb4a0d..37c65c157 100644 --- a/dialogs/speeddialog.cpp +++ b/dialogs/speeddialog.cpp @@ -23,12 +23,9 @@ #include #include #include -#include #include #include -#include "ui/labelslider.h" -#include "project/clip.h" #include "project/sequence.h" #include "project/footage.h" #include "playback/playback.h" diff --git a/dialogs/speeddialog.h b/dialogs/speeddialog.h index 947ddd4b7..1da29af83 100644 --- a/dialogs/speeddialog.h +++ b/dialogs/speeddialog.h @@ -22,10 +22,10 @@ #define SPEEDDIALOG_H #include +#include -class Clip; -class LabelSlider; -class QCheckBox; +#include "project/clip.h" +#include "ui/labelslider.h" class SpeedDialog : public QDialog { diff --git a/dialogs/stabilizerdialog.cpp b/dialogs/stabilizerdialog.cpp deleted file mode 100644 index 2ffcbee53..000000000 --- a/dialogs/stabilizerdialog.cpp +++ /dev/null @@ -1,124 +0,0 @@ -/*** - - Olive - Non-Linear Video Editor - Copyright (C) 2019 Olive Team - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -***/ - -#include "stabilizerdialog.h" - -#include -#include -#include -#include -#include - -#include "ui/labelslider.h" - -// NOTE: this is never used in Olive, hasn't been maintained, and needs to be written - -StabilizerDialog::StabilizerDialog(QWidget *parent) : QDialog(parent) { - setWindowTitle("Stabilizer"); - - layout = new QVBoxLayout(this); - - enable_stab = new QCheckBox(this); - enable_stab->setText("Enable Stabilizer"); - layout->addWidget(enable_stab); - - analysis = new QGroupBox("Analysis", this); - layout->addWidget(analysis); - - analysis_layout = new QGridLayout(analysis); - analysis->setLayout(analysis_layout); - - analysis_layout->addWidget(new QLabel("Shakiness:", this), 0, 0); - - shakiness_slider = new LabelSlider(this); - shakiness_slider->set_minimum_value(1); - shakiness_slider->set_default_value(5); - shakiness_slider->set_maximum_value(10); - analysis_layout->addWidget(shakiness_slider, 0, 1); - - analysis_layout->addWidget(new QLabel("Accuracy:", this), 1, 0); - - accuracy_slider = new LabelSlider(this); - accuracy_slider->set_minimum_value(1); - accuracy_slider->set_default_value(15); - accuracy_slider->set_maximum_value(15); - analysis_layout->addWidget(accuracy_slider, 1, 1); - - analysis_layout->addWidget(new QLabel("Step Size:", this), 2, 0); - - stepsize_slider = new LabelSlider(this); - stepsize_slider->set_minimum_value(1); - stepsize_slider->set_default_value(6); - analysis_layout->addWidget(stepsize_slider, 2, 1); - - analysis_layout->addWidget(new QLabel("Minimum Contrast:", this), 3, 0); - - mincontrast_slider = new LabelSlider(this); - mincontrast_slider->set_minimum_value(0); - mincontrast_slider->set_default_value(0.3); - mincontrast_slider->set_maximum_value(1); - analysis_layout->addWidget(mincontrast_slider, 3, 1); - - /*analysis_layout->addWidget(new QLabel("Tripod Mode:"), 4, 0); - - tripod_mode_box = new QCheckBox(); - analysis_layout->addWidget(tripod_mode_box, 4, 1);*/ - - stabilization = new QGroupBox("Stabilization", this); - layout->addWidget(stabilization); - - stabilization_layout = new QGridLayout(this); - stabilization->setLayout(stabilization_layout); - - stabilization_layout->addWidget(new QLabel("Smoothing:", this), 0, 0); - - smoothing_slider = new LabelSlider(); - smoothing_slider->set_minimum_value(0); - smoothing_slider->set_default_value(10); - stabilization_layout->addWidget(smoothing_slider, 0, 1); - - stabilization_layout->addWidget(new QLabel("Gaussian Motion:"), 1, 0); - - gaussian_motion = new QCheckBox(); - gaussian_motion->setChecked(true); - stabilization_layout->addWidget(gaussian_motion, 1, 1); - - stabilization_layout->addWidget(new QLabel("Maximum Movement:"), 2, 0); - stabilization_layout->addWidget(new QLabel("Maximum Rotation:"), 3, 0); - stabilization_layout->addWidget(new QLabel("Crop:"), 4, 0); - stabilization_layout->addWidget(new QLabel("Zoom Behavior:"), 5, 0); - stabilization_layout->addWidget(new QLabel("Zoom Speed:"), 6, 0); - stabilization_layout->addWidget(new QLabel("Interpolation Quality:"), 7, 0); - - buttons = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this); - layout->addWidget(buttons); - - connect(buttons, SIGNAL(accepted()), this, SLOT(accept())); - connect(buttons, SIGNAL(rejected()), this, SLOT(reject())); - - connect(enable_stab, SIGNAL(toggled(bool)), this, SLOT(set_all_enabled(bool))); - - set_all_enabled(false); -} - -void StabilizerDialog::set_all_enabled(bool e) { - analysis->setEnabled(e); - stabilization->setEnabled(e); -} diff --git a/dialogs/stabilizerdialog.h b/dialogs/stabilizerdialog.h deleted file mode 100644 index 995ed1408..000000000 --- a/dialogs/stabilizerdialog.h +++ /dev/null @@ -1,57 +0,0 @@ -/*** - - Olive - Non-Linear Video Editor - Copyright (C) 2019 Olive Team - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -***/ - -#ifndef STABILIZERDIALOG_H -#define STABILIZERDIALOG_H - -class QVBoxLayout; -class QCheckBox; -class QDialogButtonBox; -class QGroupBox; -class QGridLayout; -class LabelSlider; - -#include - -class StabilizerDialog : public QDialog -{ - Q_OBJECT -public: - StabilizerDialog(QWidget* parent = 0); -private slots: - void set_all_enabled(bool e); -private: - QVBoxLayout* layout; - QCheckBox* enable_stab; - QDialogButtonBox* buttons; - QGroupBox* analysis; - QGridLayout* analysis_layout; - LabelSlider* shakiness_slider; - LabelSlider* accuracy_slider; - LabelSlider* stepsize_slider; - LabelSlider* mincontrast_slider; - QCheckBox* tripod_mode_box; - QGroupBox* stabilization; - QGridLayout* stabilization_layout; - LabelSlider* smoothing_slider; - QCheckBox* gaussian_motion; -}; - -#endif // STABILIZERDIALOG_H diff --git a/dialogs/texteditdialog.cpp b/dialogs/texteditdialog.cpp index b7cb7ad82..2dcc158af 100644 --- a/dialogs/texteditdialog.cpp +++ b/dialogs/texteditdialog.cpp @@ -21,7 +21,6 @@ #include "texteditdialog.h" #include -#include #include TextEditDialog::TextEditDialog(QWidget *parent, const QString &s) : diff --git a/dialogs/texteditdialog.h b/dialogs/texteditdialog.h index d58823d1a..6e7b29567 100644 --- a/dialogs/texteditdialog.h +++ b/dialogs/texteditdialog.h @@ -22,13 +22,12 @@ #define TEXTEDITDIALOG_H #include - -class QPlainTextEdit; +#include class TextEditDialog : public QDialog { Q_OBJECT public: - TextEditDialog(QWidget* parent = 0, const QString& s = 0); + TextEditDialog(QWidget* parent = nullptr, const QString& s = nullptr); const QString& get_string(); private slots: void save(); diff --git a/docs/html/aboutdialog_8h_source.html b/docs/html/aboutdialog_8h_source.html index 9fb075a5f..1311a3b4b 100644 --- a/docs/html/aboutdialog_8h_source.html +++ b/docs/html/aboutdialog_8h_source.html @@ -69,7 +69,7 @@ $(function() {
aboutdialog.h
-
1 #ifndef ABOUTDIALOG_H
2 #define ABOUTDIALOG_H
3 
4 #include <QDialog>
5 
6 class AboutDialog : public QDialog
7 {
8  Q_OBJECT
9 
10 public:
11  explicit AboutDialog(QWidget *parent = 0);
12 };
13 
14 #endif // ABOUTDIALOG_H
Definition: aboutdialog.h:6
+
1 /***
2 
3  Olive - Non-Linear Video Editor
4  Copyright (C) 2019 Olive Team
5 
6  This program is free software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  This program is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with this program. If not, see <http://www.gnu.org/licenses/>.
18 
19 ***/
20 
21 #ifndef ABOUTDIALOG_H
22 #define ABOUTDIALOG_H
23 
24 #include <QDialog>
25 
26 class AboutDialog : public QDialog
27 {
28  Q_OBJECT
29 
30 public:
31  explicit AboutDialog(QWidget *parent = 0);
32 };
33 
34 #endif // ABOUTDIALOG_H
Definition: aboutdialog.h:26
-
1 #ifndef ACTIONSEARCH_H
2 #define ACTIONSEARCH_H
3 
4 #include <QDialog>
5 #include <QLineEdit>
6 #include <QListWidget>
7 
8 class QListWidget;
9 class QMenu;
10 
11 class ActionSearchList : public QListWidget {
12  Q_OBJECT
13 public:
14  ActionSearchList(QWidget* parent);
15 protected:
16  void mouseDoubleClickEvent(QMouseEvent *event);
17 signals:
18  void dbl_click();
19 };
20 
21 class ActionSearch : public QDialog
22 {
23  Q_OBJECT
24 public:
25  ActionSearch(QWidget* parent = nullptr);
26 private slots:
27  void search_update(const QString& s, const QString &p = nullptr, QMenu *parent = nullptr);
28  void perform_action();
29  void move_selection_up();
30  void move_selection_down();
31 private:
32  ActionSearchList* list_widget;
33 };
34 
35 class ActionSearchEntry : public QLineEdit {
36  Q_OBJECT
37 public:
38  ActionSearchEntry(QWidget* parent);
39 protected:
40  void keyPressEvent(QKeyEvent * event);
41 signals:
42  void moveSelectionUp();
43  void moveSelectionDown();
44 };
45 
46 #endif // ACTIONSEARCH_H
Definition: actionsearch.h:11
-
Definition: actionsearch.h:21
-
Definition: actionsearch.h:35
+
1 /***
2 
3  Olive - Non-Linear Video Editor
4  Copyright (C) 2019 Olive Team
5 
6  This program is free software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  This program is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with this program. If not, see <http://www.gnu.org/licenses/>.
18 
19 ***/
20 
21 #ifndef ACTIONSEARCH_H
22 #define ACTIONSEARCH_H
23 
24 #include <QDialog>
25 #include <QLineEdit>
26 #include <QListWidget>
27 
28 class QListWidget;
29 class QMenu;
30 
31 class ActionSearchList : public QListWidget {
32  Q_OBJECT
33 public:
34  ActionSearchList(QWidget* parent);
35 protected:
36  void mouseDoubleClickEvent(QMouseEvent *event);
37 signals:
38  void dbl_click();
39 };
40 
41 class ActionSearch : public QDialog
42 {
43  Q_OBJECT
44 public:
45  ActionSearch(QWidget* parent = nullptr);
46 private slots:
47  void search_update(const QString& s, const QString &p = nullptr, QMenu *parent = nullptr);
48  void perform_action();
49  void move_selection_up();
50  void move_selection_down();
51 private:
52  ActionSearchList* list_widget;
53 };
54 
55 class ActionSearchEntry : public QLineEdit {
56  Q_OBJECT
57 public:
58  ActionSearchEntry(QWidget* parent);
59 protected:
60  void keyPressEvent(QKeyEvent * event);
61 signals:
62  void moveSelectionUp();
63  void moveSelectionDown();
64 };
65 
66 #endif // ACTIONSEARCH_H
Definition: actionsearch.h:31
+
Definition: actionsearch.h:41
+
Definition: actionsearch.h:55
-
1 #ifndef ADVANCEDVIDEODIALOG_H
2 #define ADVANCEDVIDEODIALOG_H
3 
4 #include <QDialog>
5 
6 #include "io/exportthread.h"
7 
8 class QComboBox;
9 
10 class AdvancedVideoDialog : public QDialog {
11  Q_OBJECT
12 public:
13  AdvancedVideoDialog(QWidget* parent,
14  int encoding_codec,
15  VideoCodecParams& iparams);
16 
17 public slots:
18  virtual void accept() override;
19 private:
20  VideoCodecParams& params;
21 
22  QComboBox* pix_fmt_combo;
23 };
24 
25 #endif // ADVANCEDVIDEODIALOG_H
Definition: advancedvideodialog.h:10
-
Definition: exportthread.h:48
+
1 /***
2 
3  Olive - Non-Linear Video Editor
4  Copyright (C) 2019 Olive Team
5 
6  This program is free software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  This program is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with this program. If not, see <http://www.gnu.org/licenses/>.
18 
19 ***/
20 
21 #ifndef ADVANCEDVIDEODIALOG_H
22 #define ADVANCEDVIDEODIALOG_H
23 
24 #include <QDialog>
25 
26 #include "io/exportthread.h"
27 
28 class QComboBox;
29 
30 class AdvancedVideoDialog : public QDialog {
31  Q_OBJECT
32 public:
33  AdvancedVideoDialog(QWidget* parent,
34  int encoding_codec,
35  VideoCodecParams& iparams);
36 
37 public slots:
38  virtual void accept() override;
39 private:
40  VideoCodecParams& params;
41 
42  QComboBox* pix_fmt_combo;
43 };
44 
45 #endif // ADVANCEDVIDEODIALOG_H
Definition: advancedvideodialog.h:30
+
Definition: exportthread.h:68
diff --git a/docs/html/audio_8h_source.html b/docs/html/audio_8h_source.html index 0322aeb92..5a9a4395f 100644 --- a/docs/html/audio_8h_source.html +++ b/docs/html/audio_8h_source.html @@ -69,8 +69,8 @@ $(function() {
audio.h
-
1 #ifndef AUDIO_H
2 #define AUDIO_H
3 
4 #include <QVector>
5 #include <QThread>
6 #include <QWaitCondition>
7 #include <QMutex>
8 
9 //#define INT16_MAX 0x7fff
10 //#define INT16_MIN (-INT16_MAX-1)
11 
12 class QIODevice;
13 class QAudioOutput;
14 class QComboBox;
15 
16 struct Sequence;
17 
18 class AudioSenderThread : public QThread {
19  Q_OBJECT
20 public:
22  void run();
23  void stop();
24  QWaitCondition cond;
25  bool close;
26  QMutex lock;
27 public slots:
28  void notifyReceiver();
29 private:
30  QVector<qint16> samples;
31  int send_audio_to_output(qint64 offset, int max);
32 };
33 
34 double log_volume(double linear);
35 
36 extern QAudioOutput* audio_output;
37 extern QIODevice* audio_io_device;
38 extern AudioSenderThread* audio_thread;
39 extern QMutex audio_write_lock;
40 
41 #define audio_ibuffer_size 192000
42 extern qint8 audio_ibuffer[audio_ibuffer_size];
43 extern qint64 audio_ibuffer_read;
44 extern long audio_ibuffer_frame;
45 extern double audio_ibuffer_timecode;
46 extern bool audio_scrub;
47 extern bool recording;
48 extern bool audio_rendering;
49 void clear_audio_ibuffer();
50 
51 int current_audio_freq();
52 
53 bool is_audio_device_set();
54 
55 void init_audio();
56 void stop_audio();
57 qint64 get_buffer_offset_from_frame(double framerate, long frame);
58 
59 bool start_recording();
60 void stop_recording();
61 QString get_recorded_audio_filename();
62 
63 void combobox_audio_sample_rates(QComboBox* combobox);
64 
65 #endif // AUDIO_H
Definition: sequence.h:13
-
Definition: audio.h:18
+
1 /***
2 
3  Olive - Non-Linear Video Editor
4  Copyright (C) 2019 Olive Team
5 
6  This program is free software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  This program is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with this program. If not, see <http://www.gnu.org/licenses/>.
18 
19 ***/
20 
21 #ifndef AUDIO_H
22 #define AUDIO_H
23 
24 #include <QVector>
25 #include <QThread>
26 #include <QWaitCondition>
27 #include <QMutex>
28 
29 //#define INT16_MAX 0x7fff
30 //#define INT16_MIN (-INT16_MAX-1)
31 
32 class QIODevice;
33 class QAudioOutput;
34 class QComboBox;
35 
36 struct Sequence;
37 
38 class AudioSenderThread : public QThread {
39  Q_OBJECT
40 public:
42  void run();
43  void stop();
44  QWaitCondition cond;
45  bool close;
46  QMutex lock;
47 public slots:
48  void notifyReceiver();
49 private:
50  QVector<qint16> samples;
51  int send_audio_to_output(qint64 offset, int max);
52 };
53 
54 double log_volume(double linear);
55 
56 extern QAudioOutput* audio_output;
57 extern QIODevice* audio_io_device;
58 extern AudioSenderThread* audio_thread;
59 extern QMutex audio_write_lock;
60 
61 #define audio_ibuffer_size 192000
62 extern qint8 audio_ibuffer[audio_ibuffer_size];
63 extern qint64 audio_ibuffer_read;
64 extern long audio_ibuffer_frame;
65 extern double audio_ibuffer_timecode;
66 extern bool audio_scrub;
67 extern bool recording;
68 extern bool audio_rendering;
69 void clear_audio_ibuffer();
70 
71 int current_audio_freq();
72 
73 bool is_audio_device_set();
74 
75 void init_audio();
76 void stop_audio();
77 qint64 get_buffer_offset_from_frame(double framerate, long frame);
78 
79 bool start_recording();
80 void stop_recording();
81 QString get_recorded_audio_filename();
82 
83 void combobox_audio_sample_rates(QComboBox* combobox);
84 
85 #endif // AUDIO_H
Definition: sequence.h:33
+
Definition: audio.h:38
-
1 #ifndef AUDIOMONITOR_H
2 #define AUDIOMONITOR_H
3 
4 #include <QWidget>
5 #include <QTimer>
6 
7 class AudioMonitor : public QWidget
8 {
9  Q_OBJECT
10 public:
11  explicit AudioMonitor(QWidget *parent = 0);
12  void set_value(const QVector<double>& values);
13 
14 protected:
15  void paintEvent(QPaintEvent *);
16  void resizeEvent(QResizeEvent *);
17 
18 signals:
19 
20 public slots:
21 
22 private:
23  QLinearGradient gradient;
24  QVector<double> values;
25  QTimer clear_timer;
26 
27 private slots:
28  void clear();
29 };
30 
31 #endif // AUDIOMONITOR_H
Definition: audiomonitor.h:7
+
1 /***
2 
3  Olive - Non-Linear Video Editor
4  Copyright (C) 2019 Olive Team
5 
6  This program is free software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  This program is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with this program. If not, see <http://www.gnu.org/licenses/>.
18 
19 ***/
20 
21 #ifndef AUDIOMONITOR_H
22 #define AUDIOMONITOR_H
23 
24 #include <QWidget>
25 #include <QTimer>
26 
27 class AudioMonitor : public QWidget
28 {
29  Q_OBJECT
30 public:
31  explicit AudioMonitor(QWidget *parent = 0);
32  void set_value(const QVector<double>& values);
33 
34 protected:
35  void paintEvent(QPaintEvent *);
36  void resizeEvent(QResizeEvent *);
37 
38 signals:
39 
40 public slots:
41 
42 private:
43  QLinearGradient gradient;
44  QVector<double> values;
45  QTimer clear_timer;
46 
47 private slots:
48  void clear();
49 };
50 
51 #endif // AUDIOMONITOR_H
Definition: audiomonitor.h:27
-
1 #ifndef AUDIONOISEEFFECT_H
2 #define AUDIONOISEEFFECT_H
3 
4 #include "project/effect.h"
5 
6 class AudioNoiseEffect : public Effect {
7  Q_OBJECT
8 public:
9  AudioNoiseEffect(Clip* c, const EffectMeta* em);
10  void process_audio(double timecode_start, double timecode_end, quint8* samples, int nb_bytes, int channel_count);
11 
12  EffectField* amount_val;
13  EffectField* mix_val;
14 };
15 
16 #endif // AUDIONOISEEFFECT_H
Definition: effect.h:146
-
Definition: effect.h:27
-
Definition: audionoiseeffect.h:6
-
Definition: clip.h:33
-
Definition: effectfield.h:23
+
1 /***
2 
3  Olive - Non-Linear Video Editor
4  Copyright (C) 2019 Olive Team
5 
6  This program is free software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  This program is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with this program. If not, see <http://www.gnu.org/licenses/>.
18 
19 ***/
20 
21 #ifndef AUDIONOISEEFFECT_H
22 #define AUDIONOISEEFFECT_H
23 
24 #include "project/effect.h"
25 
26 class AudioNoiseEffect : public Effect {
27  Q_OBJECT
28 public:
29  AudioNoiseEffect(Clip* c, const EffectMeta* em);
30  void process_audio(double timecode_start, double timecode_end, quint8* samples, int nb_bytes, int channel_count);
31 
32  EffectField* amount_val;
33  EffectField* mix_val;
34 };
35 
36 #endif // AUDIONOISEEFFECT_H
Definition: effect.h:166
+
Definition: effect.h:47
+
Definition: audionoiseeffect.h:26
+
Definition: clip.h:53
+
Definition: effectfield.h:43
-
1 #ifndef CACHER_H
2 #define CACHER_H
3 
4 #include <QThread>
5 #include <QVector>
6 
7 class Clip;
8 
9 class Cacher : public QThread
10 {
11 // Q_OBJECT
12 public:
13  Cacher(Clip* c);
14  void run();
15 
16  bool caching;
17 
18  // must be set before caching
19  long playhead;
20  bool reset;
21  bool scrubbing;
22  bool interrupt;
23  bool queued;
24  int playback_speed;
25  QVector<Clip*> nests;
26 
27 private:
28  Clip* clip;
29 };
30 
31 void open_clip_worker(Clip* clip);
32 void cache_clip_worker(Clip* clip, long playhead, bool reset, bool scrubbing, QVector<Clip *> nest, int playback_speed);
33 void close_clip_worker(Clip* clip);
34 
35 #endif // CACHER_H
Definition: cacher.h:9
-
Definition: clip.h:33
+
1 /***
2 
3  Olive - Non-Linear Video Editor
4  Copyright (C) 2019 Olive Team
5 
6  This program is free software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  This program is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with this program. If not, see <http://www.gnu.org/licenses/>.
18 
19 ***/
20 
21 #ifndef CACHER_H
22 #define CACHER_H
23 
24 #include <QThread>
25 #include <QVector>
26 
27 class Clip;
28 
29 class Cacher : public QThread
30 {
31 // Q_OBJECT
32 public:
33  Cacher(Clip* c);
34  void run();
35 
36  bool caching;
37 
38  // must be set before caching
39  long playhead;
40  bool reset;
41  bool scrubbing;
42  bool interrupt;
43  bool queued;
44  int playback_speed;
45  QVector<Clip*> nests;
46 
47 private:
48  Clip* clip;
49 };
50 
51 void open_clip_worker(Clip* clip);
52 void cache_clip_worker(Clip* clip, long playhead, bool reset, bool scrubbing, QVector<Clip *> nest, int playback_speed);
53 void close_clip_worker(Clip* clip);
54 
55 #endif // CACHER_H
Definition: cacher.h:29
+
Definition: clip.h:53
-
1 #ifndef CHECKBOXEX_H
2 #define CHECKBOXEX_H
3 
4 #include <QCheckBox>
5 
6 class CheckboxEx : public QCheckBox
7 {
8  Q_OBJECT
9 public:
10  CheckboxEx(QWidget* parent = 0);
11 private slots:
12  void checkbox_command();
13 };
14 
15 #endif // CHECKBOXEX_H
Definition: checkboxex.h:6
+
1 /***
2 
3  Olive - Non-Linear Video Editor
4  Copyright (C) 2019 Olive Team
5 
6  This program is free software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  This program is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with this program. If not, see <http://www.gnu.org/licenses/>.
18 
19 ***/
20 
21 #ifndef CHECKBOXEX_H
22 #define CHECKBOXEX_H
23 
24 #include <QCheckBox>
25 
26 class CheckboxEx : public QCheckBox
27 {
28  Q_OBJECT
29 public:
30  CheckboxEx(QWidget* parent = 0);
31 private slots:
32  void checkbox_command();
33 };
34 
35 #endif // CHECKBOXEX_H
Definition: checkboxex.h:26
+ +

The ClickableLabel class. + More...

+ +

#include <clickablelabel.h>

Inheritance diagram for ClickableLabel:
@@ -94,7 +99,10 @@ Public Member Functions void mousePressEvent (QMouseEvent *ev)   -
The documentation for this class was generated from the following files: