diff --git a/src/qml/presenter/Library.qml b/src/qml/presenter/Library.qml
index c0be45c..2c54457 100644
--- a/src/qml/presenter/Library.qml
+++ b/src/qml/presenter/Library.qml
@@ -845,7 +845,7 @@ Item {
dragItemTitle = title;
dragItemType = "pres";
dragItemText = "";
- dragItemBackgroundType = "pres";
+ dragItemBackgroundType = "image";
dragItemBackground = filePath;
} else {
presListItem.Drag.drop()
@@ -866,7 +866,7 @@ Item {
const pres = pressqlmodel.getPresentation(presentationLibraryList.currentIndex);
if (!editMode)
editMode = true;
- editType = "pres";
+ editType = "presentation";
editSwitch(pres);
}
}
diff --git a/src/qml/presenter/MainWindow.qml b/src/qml/presenter/MainWindow.qml
index d784152..c483b66 100644
--- a/src/qml/presenter/MainWindow.qml
+++ b/src/qml/presenter/MainWindow.qml
@@ -88,6 +88,12 @@ Controls.Page {
visible: false
anchors.fill: parent
}
+
+ Presenter.PresentationEditor {
+ id: presentationEditor
+ visible: false
+ anchors.fill: parent
+ }
}
Presenter.Library {
@@ -153,6 +159,7 @@ Controls.Page {
videoEditor.visible = false;
videoEditor.stop();
imageEditor.visible = false;
+ presentationEditor.visible = false;
songEditor.visible = true;
songEditor.changeSong(item);
break;
@@ -160,6 +167,7 @@ Controls.Page {
presentation.visible = false;
songEditor.visible = false;
imageEditor.visible = false;
+ presentationEditor.visible = false;
videoEditor.visible = true;
videoEditor.changeVideo(item);
break;
@@ -168,14 +176,25 @@ Controls.Page {
videoEditor.visible = false;
videoEditor.stop();
songEditor.visible = false;
+ presentationEditor.visible = false;
imageEditor.visible = true;
imageEditor.changeImage(item);
break;
+ case "presentation" :
+ presentation.visible = false;
+ videoEditor.visible = false;
+ videoEditor.stop();
+ songEditor.visible = false;
+ imageEditor.visible = false;
+ presentationEditor.visible = true;
+ presentationEditor.changePresentation(item);
+ break;
default:
videoEditor.visible = false;
videoEditor.stop();
songEditor.visible = false;
imageEditor.visible = false;
+ presentationEditor.visible = false;
presentation.visible = true;
editMode = false;
}
diff --git a/src/qml/presenter/PresentationEditor.qml b/src/qml/presenter/PresentationEditor.qml
new file mode 100644
index 0000000..1ca01b3
--- /dev/null
+++ b/src/qml/presenter/PresentationEditor.qml
@@ -0,0 +1,190 @@
+import QtQuick 2.13
+import QtQuick.Controls 2.15 as Controls
+import QtQuick.Dialogs 1.3
+import QtQuick.Layouts 1.2
+import org.kde.kirigami 2.13 as Kirigami
+import "./" as Presenter
+
+Item {
+ id: root
+
+ property string type: "presentation"
+ property var presentation
+
+ GridLayout {
+ id: mainLayout
+ anchors.fill: parent
+ columns: 2
+ rowSpacing: 5
+ columnSpacing: 0
+
+ Controls.ToolBar {
+ Layout.fillWidth: true
+ Layout.columnSpan: 2
+ id: toolbar
+ RowLayout {
+ anchors.fill: parent
+
+ Controls.ComboBox {
+ model: Qt.fontFamilies()
+ implicitWidth: 300
+ editable: true
+ hoverEnabled: true
+ /* onCurrentTextChanged: showPassiveNotification(currentText) */
+ }
+ Controls.SpinBox {
+ editable: true
+ from: 5
+ to: 72
+ hoverEnabled: true
+ }
+ Controls.ComboBox {
+ model: ["PRESENTATIONS", "Center", "Right", "Justify"]
+ implicitWidth: 100
+ hoverEnabled: true
+ }
+ Controls.ToolSeparator {}
+ Item { Layout.fillWidth: true }
+ Controls.ToolSeparator {}
+ Controls.ToolButton {
+ text: "Effects"
+ icon.name: "presentation-auto-adjust"
+ hoverEnabled: true
+ onClicked: {}
+ }
+ Controls.ToolButton {
+ id: backgroundButton
+ text: "Select Presentation"
+ icon.name: "fileopen"
+ hoverEnabled: true
+ onClicked: backgroundType.open()
+ }
+
+ Controls.Popup {
+ id: backgroundType
+ x: backgroundButton.x
+ y: backgroundButton.y + backgroundButton.height + 20
+ modal: true
+ focus: true
+ dim: false
+ background: Rectangle {
+ Kirigami.Theme.colorSet: Kirigami.Theme.Tooltip
+ color: Kirigami.Theme.backgroundColor
+ radius: 10
+ border.color: Kirigami.Theme.activeBackgroundColor
+ border.width: 2
+ }
+ closePolicy: Controls.Popup.CloseOnEscape | Controls.Popup.CloseOnPressOutsideParent
+ ColumnLayout {
+ anchors.fill: parent
+ Controls.ToolButton {
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ text: "Presentation"
+ icon.name: "emblem-presentations-symbolic"
+ onClicked: presentationFileDialog.open() & backgroundType.close()
+ }
+ Controls.ToolButton {
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ text: "Presentation"
+ icon.name: "folder-pictures-symbolic"
+ onClicked: presentationFileDialog.open() & backgroundType.close()
+ }
+ }
+ }
+ }
+ }
+
+ Controls.SplitView {
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ Layout.columnSpan: 2
+ handle: Item{
+ implicitWidth: 6
+ Rectangle {
+ height: parent.height
+ anchors.horizontalCenter: parent.horizontalCenter
+ width: 1
+ color: Controls.SplitHandle.hovered ? Kirigami.Theme.hoverColor : Kirigami.Theme.backgroundColor
+ }
+ }
+
+ ColumnLayout {
+ Controls.SplitView.fillHeight: true
+ Controls.SplitView.preferredWidth: 300
+ Controls.SplitView.minimumWidth: 100
+
+ Controls.TextField {
+ id: presentationTitleField
+
+ Layout.preferredWidth: 300
+ Layout.fillWidth: true
+ Layout.leftMargin: 20
+ Layout.rightMargin: 20
+
+ placeholderText: "Title..."
+ text: presentation.title
+ padding: 10
+ /* onEditingFinished: updateTitle(text); */
+ }
+
+ Item {
+ id: empty
+ Layout.fillHeight: true
+ }
+ }
+ ColumnLayout {
+ Controls.SplitView.fillHeight: true
+ Controls.SplitView.preferredWidth: 700
+ Controls.SplitView.minimumWidth: 300
+ spacing: 5
+
+ Item {
+ id: topEmpty
+ Layout.fillHeight: true
+ }
+
+ Image {
+ id: presentationPreview
+ Layout.preferredWidth: 600
+ Layout.preferredHeight: Layout.preferredWidth / 16 * 9
+ Layout.alignment: Qt.AlignCenter
+ fillMode: Image.PreserveAspectFit
+ source: presentation.filePath
+ }
+ RowLayout {
+ Layout.fillWidth: true;
+ Layout.alignment: Qt.AlignCenter
+ Layout.leftMargin: 50
+ Layout.rightMargin: 50
+ Controls.ToolButton {
+ id: leftArrow
+ text: "Back"
+ icon.name: "back"
+ onClicked: presentationPreview.currentFrame = presentationPreview.currentFrame - 1
+ }
+ Item {
+ Layout.fillWidth: true
+ }
+ Controls.ToolButton {
+ id: rightArrow
+ text: "Next"
+ icon.name: "next"
+ onClicked: presentationPreview.currentFrame = presentationPreview.currentFrame + 1
+ }
+ }
+ Item {
+ id: botEmpty
+ Layout.fillHeight: true
+ }
+
+ }
+ }
+ }
+
+ function changePresentation(presentation) {
+ root.presentation = presentation;
+ print(presentation.filePath.toString());
+ }
+}
diff --git a/src/resources.qrc b/src/resources.qrc
index 7866e05..909aca4 100644
--- a/src/resources.qrc
+++ b/src/resources.qrc
@@ -12,6 +12,7 @@
qml/presenter/SongEditor.qml
qml/presenter/VideoEditor.qml
qml/presenter/ImageEditor.qml
+ qml/presenter/PresentationEditor.qml
qml/presenter/Slide.qml
qml/presenter/SlideEditor.qml
qml/presenter/DragHandle.qml