diff --git a/app/core.cpp b/app/core.cpp
index 56d505c01..ed6017a4b 100644
--- a/app/core.cpp
+++ b/app/core.cpp
@@ -32,6 +32,7 @@
#include "audio/audiomanager.h"
#include "config/config.h"
#include "dialog/about/about.h"
+#include "dialog/export/export.h"
#include "dialog/sequence/sequence.h"
#include "dialog/preferences/preferences.h"
#include "dialog/projectproperties/projectproperties.h"
@@ -230,6 +231,12 @@ void Core::DialogProjectPropertiesShow()
ppd.exec();
}
+void Core::DialogExportShow()
+{
+ ExportDialog ed(main_window_);
+ ed.exec();
+}
+
void Core::CreateNewFolder()
{
// Locate the most recently focused Project panel (assume that's the panel the user wants to import into)
diff --git a/app/core.h b/app/core.h
index e096752d4..54f3fe843 100644
--- a/app/core.h
+++ b/app/core.h
@@ -160,6 +160,11 @@ public slots:
*/
void DialogProjectPropertiesShow();
+ /**
+ * @brief Show Export dialog
+ */
+ void DialogExportShow();
+
/**
* @brief Create a new folder in the currently active project
*/
diff --git a/app/dialog/CMakeLists.txt b/app/dialog/CMakeLists.txt
index 0e8af7660..f1101d230 100644
--- a/app/dialog/CMakeLists.txt
+++ b/app/dialog/CMakeLists.txt
@@ -16,6 +16,7 @@
add_subdirectory(about)
add_subdirectory(actionsearch)
+add_subdirectory(export)
add_subdirectory(footageproperties)
add_subdirectory(preferences)
add_subdirectory(projectproperties)
diff --git a/app/dialog/export/CMakeLists.txt b/app/dialog/export/CMakeLists.txt
new file mode 100644
index 000000000..0908dc68f
--- /dev/null
+++ b/app/dialog/export/CMakeLists.txt
@@ -0,0 +1,22 @@
+# 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 .
+
+set(OLIVE_SOURCES
+ ${OLIVE_SOURCES}
+ dialog/export/export.h
+ dialog/export/export.cpp
+ PARENT_SCOPE
+)
diff --git a/app/dialog/export/export.cpp b/app/dialog/export/export.cpp
new file mode 100644
index 000000000..66d58a562
--- /dev/null
+++ b/app/dialog/export/export.cpp
@@ -0,0 +1,38 @@
+#include "export.h"
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+ExportDialog::ExportDialog(QWidget *parent) :
+ QDialog(parent)
+{
+ QHBoxLayout* layout = new QHBoxLayout(this);
+
+ QSplitter* splitter = new QSplitter(Qt::Horizontal);
+ layout->addWidget(splitter);
+
+ QWidget* preferences_area = new QWidget();
+ QGridLayout* preferences_layout = new QGridLayout(preferences_area);
+ preferences_layout->addWidget(new QLabel(tr("Filename:")), 0, 0);
+ preferences_layout->addWidget(new QLineEdit(), 0, 1);
+ preferences_layout->addWidget(new QLabel(tr("Preset:")), 1, 0);
+ preferences_layout->addWidget(new QComboBox(), 1, 1);
+ QTabWidget* preferences_tabs = new QTabWidget();
+ preferences_tabs->addTab(new QWidget(), tr("Video"));
+ preferences_tabs->addTab(new QWidget(), tr("Audio"));
+ preferences_layout->addWidget(preferences_tabs, 2, 0, 1, 2);
+ preferences_layout->addWidget(new QPushButton(tr("Export")), 3, 0);
+ preferences_layout->addWidget(new QPushButton(tr("Cancel")), 3, 1);
+ splitter->addWidget(preferences_area);
+
+ QWidget* preview_area = new QWidget();
+ QVBoxLayout* preview_layout = new QVBoxLayout(preview_area);
+ preview_layout->addWidget(new QLabel(tr("Preview")));
+ preview_layout->addWidget(new QOpenGLWidget());
+ splitter->addWidget(preview_area);
+}
diff --git a/app/dialog/export/export.h b/app/dialog/export/export.h
new file mode 100644
index 000000000..57d5efba4
--- /dev/null
+++ b/app/dialog/export/export.h
@@ -0,0 +1,12 @@
+#ifndef EXPORTDIALOG_H
+#define EXPORTDIALOG_H
+
+#include
+
+class ExportDialog : public QDialog
+{
+public:
+ ExportDialog(QWidget* parent = nullptr);
+};
+
+#endif // EXPORTDIALOG_H
diff --git a/app/window/mainwindow/mainmenu.cpp b/app/window/mainwindow/mainmenu.cpp
index 3a2b59cdc..aa09e0e15 100644
--- a/app/window/mainwindow/mainmenu.cpp
+++ b/app/window/mainwindow/mainmenu.cpp
@@ -47,7 +47,7 @@ MainMenu::MainMenu(QMainWindow *parent) :
file_menu_->addSeparator();
file_import_item_ = file_menu_->AddItem("import", &olive::core, SLOT(DialogImportShow()), "Ctrl+I");
file_menu_->addSeparator();
- file_export_item_ = file_menu_->AddItem("export", nullptr, nullptr, "Ctrl+M");
+ file_export_item_ = file_menu_->AddItem("export", &olive::core, SLOT(DialogExportShow()), "Ctrl+M");
file_menu_->addSeparator();
file_project_properties_item_ = file_menu_->AddItem("projectproperties", &olive::core, SLOT(DialogProjectPropertiesShow()));
file_menu_->addSeparator();
@@ -476,7 +476,7 @@ void MainMenu::GoToNextCutTriggered()
}
void MainMenu::Retranslate()
-{
+{
// MenuShared is not a QWidget and therefore does not receive a LanguageEvent, we use MainMenu's to update it
olive::menu_shared.Retranslate();