diff options
author | ZackaryWelch <welch.zackary@gmail.com> | 2017-09-11 18:34:07 -0400 |
---|---|---|
committer | ZackaryWelch <welch.zackary@gmail.com> | 2017-09-11 18:34:07 -0400 |
commit | 8130a95c6a437f9a55ddbf1858632e5645aeb0fa (patch) | |
tree | c27e44ec41c54b33aba6bcb38c8e06855211ba6c | |
parent | Resynced translation files (diff) | |
download | lumina-8130a95c6a437f9a55ddbf1858632e5645aeb0fa.tar.gz lumina-8130a95c6a437f9a55ddbf1858632e5645aeb0fa.tar.bz2 lumina-8130a95c6a437f9a55ddbf1858632e5645aeb0fa.zip |
Added a framework for an experimental screen recorder
6 files changed, 215 insertions, 0 deletions
diff --git a/src-qt5/experimental/lumina-screencast/MainUI.cpp b/src-qt5/experimental/lumina-screencast/MainUI.cpp new file mode 100644 index 00000000..6b06fd26 --- /dev/null +++ b/src-qt5/experimental/lumina-screencast/MainUI.cpp @@ -0,0 +1,23 @@ +//=========================================== +// Lumina-DE source code +// Copyright (c) 2014-2015, Ken Moore +// Available under the 3-clause BSD license +// See the LICENSE file for full details +//=========================================== + +#include "MainUI.h" +#include "ui_MainUI.h" + +MainUI::MainUI() { + setupIcons(); +} + +MainUI::~MainUI() { + +} + +void MainUI::setupIcons() { + +} + +//SLOTS diff --git a/src-qt5/experimental/lumina-screencast/MainUI.h b/src-qt5/experimental/lumina-screencast/MainUI.h new file mode 100644 index 00000000..a01413dd --- /dev/null +++ b/src-qt5/experimental/lumina-screencast/MainUI.h @@ -0,0 +1,32 @@ +//=========================================== +// Lumina-DE source code +// Copyright (c) 2014-2015, Ken Moore +// Available under the 3-clause BSD license +// See the LICENSE file for full details +//=========================================== + +#include <QMainWindow> + +namespace Ui{ + class MainUI; +}; + +class MainUI : public QMainWindow { + Q_Object +public: + MainUI(); + ~MainUI(); + +public slots: + void setupIcons(); + +private: + Ui::MainUI *ui; + +private slots: + void closeApplication() { + this->close(); + } +//protected: +//events go here +}; diff --git a/src-qt5/experimental/lumina-screencast/README.md b/src-qt5/experimental/lumina-screencast/README.md new file mode 100644 index 00000000..d5745c6c --- /dev/null +++ b/src-qt5/experimental/lumina-screencast/README.md @@ -0,0 +1,27 @@ +## Screencast utility for the Lumina Desktop + +Description of the application + +### Library Dependencies + +1. Qt 5.2+ (specific modules listed below) + * concurrent + * core + * gui + * network + * multimedia + * svg + * widgets +2. X11 Libraries + * libXdamage +3. XCB Libraries + * libxcb + * libxcb-ewmh + * libxcb-icccm + * libxcb-image + * libxcb-composite + * libxcb-damage + * libxcb-randr + * libxcb-util +4. Other Libraries + * libc diff --git a/src-qt5/experimental/lumina-screencast/lumina-screencast.desktop b/src-qt5/experimental/lumina-screencast/lumina-screencast.desktop new file mode 100644 index 00000000..e3cf7be6 --- /dev/null +++ b/src-qt5/experimental/lumina-screencast/lumina-screencast.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Exec=lumina-screencast +Icon=screencast +Terminal=false +Type=Application +StartupNotify=true +Categories=Utility; +Name=Lumina Screencast +Comment=Record Screen diff --git a/src-qt5/experimental/lumina-screencast/lumina-screencast.pro b/src-qt5/experimental/lumina-screencast/lumina-screencast.pro new file mode 100644 index 00000000..5cfe89ef --- /dev/null +++ b/src-qt5/experimental/lumina-screencast/lumina-screencast.pro @@ -0,0 +1,99 @@ +include("$${PWD}/../../OS-detect.pri") + +QT += core gui network +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets x11extras + +TARGET = lumina-screencast +target.path = $${L_BINDIR} + +TEMPLATE = app + +#include all the special classes from the Lumina tree +include(../../core/libLumina/LUtils.pri) #includes LUtils +include(../../core/libLumina/LuminaXDG.pri) +include(../../core/libLumina/LuminaSingleApplication.pri) +include(../../core/libLumina/LuminaThemes.pri) +include(../../core/libLumina/LuminaX11.pri) + +SOURCES += main.cpp \ + MainUI.cpp \ + +HEADERS += MainUI.h \ + +FORMS += MainUI.ui + +TRANSLATIONS = i18n/l-screencast_af.ts \ + i18n/l-screencast_ar.ts \ + i18n/l-screencast_az.ts \ + i18n/l-screencast_bg.ts \ + i18n/l-screencast_bn.ts \ + i18n/l-screencast_bs.ts \ + i18n/l-screencast_ca.ts \ + i18n/l-screencast_cs.ts \ + i18n/l-screencast_cy.ts \ + i18n/l-screencast_da.ts \ + i18n/l-screencast_de.ts \ + i18n/l-screencast_el.ts \ + i18n/l-screencast_en_GB.ts \ + i18n/l-screencast_en_ZA.ts \ + i18n/l-screencast_en_AU.ts \ + i18n/l-screencast_es.ts \ + i18n/l-screencast_et.ts \ + i18n/l-screencast_eu.ts \ + i18n/l-screencast_fa.ts \ + i18n/l-screencast_fi.ts \ + i18n/l-screencast_fr.ts \ + i18n/l-screencast_fr_CA.ts \ + i18n/l-screencast_gl.ts \ + i18n/l-screencast_he.ts \ + i18n/l-screencast_hi.ts \ + i18n/l-screencast_hr.ts \ + i18n/l-screencast_hu.ts \ + i18n/l-screencast_id.ts \ + i18n/l-screencast_is.ts \ + i18n/l-screencast_it.ts \ + i18n/l-screencast_ja.ts \ + i18n/l-screencast_ka.ts \ + i18n/l-screencast_ko.ts \ + i18n/l-screencast_lt.ts \ + i18n/l-screencast_lv.ts \ + i18n/l-screencast_mk.ts \ + i18n/l-screencast_mn.ts \ + i18n/l-screencast_ms.ts \ + i18n/l-screencast_mt.ts \ + i18n/l-screencast_nb.ts \ + i18n/l-screencast_nl.ts \ + i18n/l-screencast_pa.ts \ + i18n/l-screencast_pl.ts \ + i18n/l-screencast_pt.ts \ + i18n/l-screencast_pt_BR.ts \ + i18n/l-screencast_ro.ts \ + i18n/l-screencast_ru.ts \ + i18n/l-screencast_sk.ts \ + i18n/l-screencast_sl.ts \ + i18n/l-screencast_sr.ts \ + i18n/l-screencast_sv.ts \ + i18n/l-screencast_sw.ts \ + i18n/l-screencast_ta.ts \ + i18n/l-screencast_tg.ts \ + i18n/l-screencast_th.ts \ + i18n/l-screencast_tr.ts \ + i18n/l-screencast_uk.ts \ + i18n/l-screencast_uz.ts \ + i18n/l-screencast_vi.ts \ + i18n/l-screencast_zh_CN.ts \ + i18n/l-screencast_zh_HK.ts \ + i18n/l-screencast_zh_TW.ts \ + i18n/l-screencast_zu.ts + +dotrans.path=$${L_SHAREDIR}/lumina-desktop/i18n/ +dotrans.extra=cd i18n && $${LRELEASE} -nounfinished *.ts && cp *.qm $(INSTALL_ROOT)$${L_SHAREDIR}/lumina-desktop/i18n/ + +desktop.files=lumina-screencast.desktop +desktop.path=$${L_SHAREDIR}/applications/ + +INSTALLS += target desktop + +WITH_I18N{ + INSTALLS += dotrans +} diff --git a/src-qt5/experimental/lumina-screencast/main.cpp b/src-qt5/experimental/lumina-screencast/main.cpp new file mode 100644 index 00000000..08233e67 --- /dev/null +++ b/src-qt5/experimental/lumina-screencast/main.cpp @@ -0,0 +1,25 @@ +#include <QTranslator> +#include <QApplication> +#include <QDebug> +#include <QFile> + +#include "MainUI.h" +#include <LuminaOS.h> +#include <LuminaThemes.h> +#include <LUtils.h> +#include <LuminaSingleApplication.h> + +int main(int argc, char ** argv) +{ + LTHEME::LoadCustomEnvSettings(); + //Make sure Qt5 auto-scaling is disabled for this application (need exact pixel measurements) + unsetenv("QT_AUTO_SCREEN_SCALE_FACTOR"); + LSingleApplication a(argc, argv, "l-screencast"); + if(!a.isPrimaryProcess()){ return 0; } + a.setApplicationName("Record Screen"); + + MainUI w; + w.show(); + + return a.exec(); +} |