+1
-1
@@ -2,4 +2,4 @@
|
||||
Makefile
|
||||
.qmake.stash
|
||||
effects/frei0r
|
||||
|
||||
ts/*.qm
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
<RCC>
|
||||
<qresource prefix="/cursors">
|
||||
<file>left_side.png</file>
|
||||
<file>right_side.png</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.2 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.0 KiB |
Vendored
+4
@@ -4,6 +4,10 @@ export QT_SELECT := qt5
|
||||
%:
|
||||
dh $@
|
||||
|
||||
override_dh_auto_configure:
|
||||
ls -a
|
||||
dh_auto_configure
|
||||
|
||||
override_dh_auto_build:
|
||||
lrelease olive.pro
|
||||
dh_auto_build
|
||||
|
||||
+22
-7
@@ -71,6 +71,9 @@ ProxyDialog::ProxyDialog(QWidget *parent, const QVector<Footage *> &footage) :
|
||||
void ProxyDialog::accept() {
|
||||
QVector<ProxyInfo> info_list;
|
||||
|
||||
// set to TRUE if any existing proxies exist and the user chooses to overwrite all of them
|
||||
bool overwrite_all_existing = false;
|
||||
|
||||
for (int i=0;i<selected_footage.size();i++) {
|
||||
// loop through selected footage and send info to the proxy queue
|
||||
|
||||
@@ -97,13 +100,25 @@ void ProxyDialog::accept() {
|
||||
info.path = QDir(custom_location).filePath(base_footage_fn);
|
||||
}
|
||||
|
||||
// if the proposed proxy file already exists
|
||||
if (QFileInfo::exists(info.path) && QMessageBox::warning(this,
|
||||
tr("Proxy file exists"),
|
||||
tr("The file \"%1\" already exists. Do you wish to replace it?").arg(info.path),
|
||||
QMessageBox::Yes | QMessageBox::No) == QMessageBox::No) {
|
||||
// return to dialog without closing or starting any proxy generation
|
||||
return;
|
||||
// if the proposed proxy file already exists & user didn't select YesToAll box
|
||||
if (QFileInfo::exists(info.path) && !overwrite_all_existing){
|
||||
int rtn = QMessageBox::warning( this,
|
||||
tr("Proxy file exists"),
|
||||
tr("The file \"%1\" already exists. Do you wish to replace it?").arg(info.path),
|
||||
QMessageBox::YesToAll | QMessageBox::Yes | QMessageBox::No);
|
||||
|
||||
switch (rtn){
|
||||
case QMessageBox::Yes:
|
||||
// continue as normal, proxy generator will automatically overwrite this file
|
||||
break;
|
||||
case QMessageBox::YesToAll:
|
||||
// continue as normal, also set variable so that above messagebox is not shown again
|
||||
overwrite_all_existing = true;
|
||||
break;
|
||||
case QMessageBox::No:
|
||||
// return to dialog without closing or starting any proxy generation
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// send to proxy generator thread
|
||||
|
||||
@@ -87,8 +87,10 @@ int main(int argc, char *argv[]) {
|
||||
QApplication a(argc, argv);
|
||||
a.setWindowIcon(QIcon(":/icons/olive64.png"));
|
||||
|
||||
QCoreApplication::setOrganizationName("olivevideoeditor.org");
|
||||
QCoreApplication::setOrganizationDomain("olivevideoeditor.org");
|
||||
QCoreApplication::setApplicationName("Olive");
|
||||
QGuiApplication::setDesktopFileName("org.olivevideoeditor.Olive");
|
||||
|
||||
MainWindow w(nullptr, appName);
|
||||
w.updateTitle("");
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
#include "ui/viewerwidget.h"
|
||||
#include "ui/sourceiconview.h"
|
||||
#include "ui/timelineheader.h"
|
||||
#include "ui/cursors.h"
|
||||
|
||||
#include "panels/panels.h"
|
||||
#include "panels/project.h"
|
||||
@@ -95,6 +96,8 @@ MainWindow::MainWindow(QWidget *parent, const QString &an) :
|
||||
enable_launch_with_project(false),
|
||||
appName(an)
|
||||
{
|
||||
init_custom_cursors();
|
||||
|
||||
open_debug_file();
|
||||
|
||||
debug_dialog = new DebugDialog(this);
|
||||
|
||||
@@ -1,321 +1,320 @@
|
||||
#-------------------------------------------------
|
||||
#
|
||||
# Project created by QtCreator 2018-05-11T10:31:59
|
||||
#
|
||||
#-------------------------------------------------
|
||||
|
||||
QT += core gui multimedia opengl
|
||||
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
|
||||
|
||||
mac {
|
||||
TARGET = Olive
|
||||
}
|
||||
!mac {
|
||||
TARGET = olive-editor
|
||||
}
|
||||
TEMPLATE = app
|
||||
|
||||
# The following define makes your compiler emit warnings if you use
|
||||
# any feature of Qt which has been marked as deprecated (the exact warnings
|
||||
# depend on your compiler). Please consult the documentation of the
|
||||
# deprecated API in order to know how to port your code away from it.
|
||||
DEFINES += QT_DEPRECATED_WARNINGS
|
||||
|
||||
# You can also make your code fail to compile if you use deprecated APIs.
|
||||
# In order to do so, uncomment the following line.
|
||||
# You can also select to disable deprecated APIs only up to a certain version of Qt.
|
||||
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
|
||||
|
||||
# Tries to get the current Git short hash
|
||||
system("which git") {
|
||||
GITHASHVAR = $$system(git --git-dir $$PWD/.git --work-tree $$PWD log -1 --format=%h)
|
||||
DEFINES += GITHASH=\\"\"$$GITHASHVAR\\"\"
|
||||
}
|
||||
|
||||
CONFIG += c++11
|
||||
|
||||
CONFIG(debug, debug|release) {
|
||||
CONFIG += console
|
||||
}
|
||||
|
||||
SOURCES += \
|
||||
main.cpp \
|
||||
mainwindow.cpp \
|
||||
panels/project.cpp \
|
||||
panels/effectcontrols.cpp \
|
||||
panels/viewer.cpp \
|
||||
panels/timeline.cpp \
|
||||
ui/sourcetable.cpp \
|
||||
dialogs/aboutdialog.cpp \
|
||||
ui/timelinewidget.cpp \
|
||||
project/media.cpp \
|
||||
project/footage.cpp \
|
||||
project/sequence.cpp \
|
||||
project/clip.cpp \
|
||||
playback/playback.cpp \
|
||||
playback/audio.cpp \
|
||||
io/config.cpp \
|
||||
dialogs/newsequencedialog.cpp \
|
||||
ui/viewerwidget.cpp \
|
||||
ui/viewercontainer.cpp \
|
||||
dialogs/exportdialog.cpp \
|
||||
ui/collapsiblewidget.cpp \
|
||||
panels/panels.cpp \
|
||||
playback/cacher.cpp \
|
||||
io/exportthread.cpp \
|
||||
ui/timelineheader.cpp \
|
||||
io/previewgenerator.cpp \
|
||||
ui/labelslider.cpp \
|
||||
dialogs/preferencesdialog.cpp \
|
||||
ui/audiomonitor.cpp \
|
||||
project/undo.cpp \
|
||||
ui/scrollarea.cpp \
|
||||
ui/comboboxex.cpp \
|
||||
ui/colorbutton.cpp \
|
||||
dialogs/replaceclipmediadialog.cpp \
|
||||
ui/fontcombobox.cpp \
|
||||
ui/checkboxex.cpp \
|
||||
ui/keyframeview.cpp \
|
||||
ui/texteditex.cpp \
|
||||
dialogs/demonotice.cpp \
|
||||
project/marker.cpp \
|
||||
dialogs/speeddialog.cpp \
|
||||
dialogs/mediapropertiesdialog.cpp \
|
||||
io/crc32.cpp \
|
||||
project/projectmodel.cpp \
|
||||
io/loadthread.cpp \
|
||||
dialogs/loaddialog.cpp \
|
||||
debug.cpp \
|
||||
io/path.cpp \
|
||||
effects/internal/linearfadetransition.cpp \
|
||||
effects/internal/transformeffect.cpp \
|
||||
effects/internal/solideffect.cpp \
|
||||
effects/internal/texteffect.cpp \
|
||||
effects/internal/timecodeeffect.cpp \
|
||||
effects/internal/audionoiseeffect.cpp \
|
||||
effects/internal/paneffect.cpp \
|
||||
effects/internal/toneeffect.cpp \
|
||||
effects/internal/volumeeffect.cpp \
|
||||
effects/internal/crossdissolvetransition.cpp \
|
||||
effects/internal/shakeeffect.cpp \
|
||||
effects/internal/exponentialfadetransition.cpp \
|
||||
effects/internal/logarithmicfadetransition.cpp \
|
||||
effects/internal/cornerpineffect.cpp \
|
||||
io/math.cpp \
|
||||
io/qpainterwrapper.cpp \
|
||||
project/effect.cpp \
|
||||
project/transition.cpp \
|
||||
project/effectrow.cpp \
|
||||
project/effectfield.cpp \
|
||||
effects/internal/cubetransition.cpp \
|
||||
project/effectgizmo.cpp \
|
||||
io/clipboard.cpp \
|
||||
dialogs/stabilizerdialog.cpp \
|
||||
io/avtogl.cpp \
|
||||
ui/resizablescrollbar.cpp \
|
||||
ui/sourceiconview.cpp \
|
||||
project/sourcescommon.cpp \
|
||||
ui/keyframenavigator.cpp \
|
||||
panels/grapheditor.cpp \
|
||||
ui/graphview.cpp \
|
||||
ui/keyframedrawing.cpp \
|
||||
ui/clickablelabel.cpp \
|
||||
project/keyframe.cpp \
|
||||
ui/rectangleselect.cpp \
|
||||
dialogs/actionsearch.cpp \
|
||||
ui/embeddedfilechooser.cpp \
|
||||
effects/internal/fillleftrighteffect.cpp \
|
||||
effects/internal/voideffect.cpp \
|
||||
dialogs/texteditdialog.cpp \
|
||||
dialogs/debugdialog.cpp \
|
||||
ui/renderthread.cpp \
|
||||
ui/renderfunctions.cpp \
|
||||
ui/viewerwindow.cpp \
|
||||
project/projectfilter.cpp \
|
||||
effects/internal/frei0reffect.cpp \
|
||||
project/effectloaders.cpp \
|
||||
io/crossplatformlib.cpp \
|
||||
effects/internal/vsthost.cpp \
|
||||
ui/flowlayout.cpp \
|
||||
dialogs/proxydialog.cpp \
|
||||
io/proxygenerator.cpp \
|
||||
dialogs/advancedvideodialog.cpp
|
||||
|
||||
HEADERS += \
|
||||
mainwindow.h \
|
||||
panels/project.h \
|
||||
panels/effectcontrols.h \
|
||||
panels/viewer.h \
|
||||
panels/timeline.h \
|
||||
ui/sourcetable.h \
|
||||
dialogs/aboutdialog.h \
|
||||
ui/timelinewidget.h \
|
||||
project/media.h \
|
||||
project/footage.h \
|
||||
project/sequence.h \
|
||||
project/clip.h \
|
||||
playback/playback.h \
|
||||
playback/audio.h \
|
||||
io/config.h \
|
||||
dialogs/newsequencedialog.h \
|
||||
ui/viewerwidget.h \
|
||||
ui/viewercontainer.h \
|
||||
dialogs/exportdialog.h \
|
||||
ui/collapsiblewidget.h \
|
||||
panels/panels.h \
|
||||
playback/cacher.h \
|
||||
io/exportthread.h \
|
||||
ui/timelinetools.h \
|
||||
ui/timelineheader.h \
|
||||
io/previewgenerator.h \
|
||||
ui/labelslider.h \
|
||||
dialogs/preferencesdialog.h \
|
||||
ui/audiomonitor.h \
|
||||
project/undo.h \
|
||||
ui/scrollarea.h \
|
||||
ui/comboboxex.h \
|
||||
ui/colorbutton.h \
|
||||
dialogs/replaceclipmediadialog.h \
|
||||
ui/fontcombobox.h \
|
||||
ui/checkboxex.h \
|
||||
ui/keyframeview.h \
|
||||
ui/texteditex.h \
|
||||
dialogs/demonotice.h \
|
||||
project/marker.h \
|
||||
project/selection.h \
|
||||
dialogs/speeddialog.h \
|
||||
dialogs/mediapropertiesdialog.h \
|
||||
io/crc32.h \
|
||||
project/projectmodel.h \
|
||||
io/loadthread.h \
|
||||
dialogs/loaddialog.h \
|
||||
debug.h \
|
||||
io/path.h \
|
||||
effects/internal/transformeffect.h \
|
||||
effects/internal/solideffect.h \
|
||||
effects/internal/texteffect.h \
|
||||
effects/internal/timecodeeffect.h \
|
||||
effects/internal/audionoiseeffect.h \
|
||||
effects/internal/paneffect.h \
|
||||
effects/internal/toneeffect.h \
|
||||
effects/internal/volumeeffect.h \
|
||||
effects/internal/shakeeffect.h \
|
||||
effects/internal/linearfadetransition.h \
|
||||
effects/internal/crossdissolvetransition.h \
|
||||
effects/internal/exponentialfadetransition.h \
|
||||
effects/internal/logarithmicfadetransition.h \
|
||||
effects/internal/cornerpineffect.h \
|
||||
io/math.h \
|
||||
io/qpainterwrapper.h \
|
||||
project/effect.h \
|
||||
project/transition.h \
|
||||
project/effectrow.h \
|
||||
project/effectfield.h \
|
||||
effects/internal/cubetransition.h \
|
||||
project/effectgizmo.h \
|
||||
io/clipboard.h \
|
||||
dialogs/stabilizerdialog.h \
|
||||
io/avtogl.h \
|
||||
ui/resizablescrollbar.h \
|
||||
ui/sourceiconview.h \
|
||||
project/sourcescommon.h \
|
||||
ui/keyframenavigator.h \
|
||||
panels/grapheditor.h \
|
||||
ui/graphview.h \
|
||||
ui/keyframedrawing.h \
|
||||
ui/clickablelabel.h \
|
||||
project/keyframe.h \
|
||||
ui/rectangleselect.h \
|
||||
dialogs/actionsearch.h \
|
||||
ui/embeddedfilechooser.h \
|
||||
effects/internal/fillleftrighteffect.h \
|
||||
effects/internal/voideffect.h \
|
||||
dialogs/texteditdialog.h \
|
||||
dialogs/debugdialog.h \
|
||||
ui/renderthread.h \
|
||||
ui/renderfunctions.h \
|
||||
ui/viewerwindow.h \
|
||||
project/projectfilter.h \
|
||||
effects/internal/frei0reffect.h \
|
||||
project/effectloaders.h \
|
||||
io/crossplatformlib.h \
|
||||
effects/internal/vsthost.h \
|
||||
ui/flowlayout.h \
|
||||
dialogs/proxydialog.h \
|
||||
io/proxygenerator.h \
|
||||
dialogs/advancedvideodialog.h
|
||||
|
||||
FORMS +=
|
||||
|
||||
TRANSLATIONS += \
|
||||
ts/olive_de.ts \
|
||||
ts/olive_es.ts \
|
||||
ts/olive_fr.ts \
|
||||
ts/olive_it.ts \
|
||||
ts/olive_cs.ts \
|
||||
ts/olive_ar.ts \
|
||||
ts/olive_ru.ts \
|
||||
ts/olive_bs.ts \
|
||||
ts/olive_sr.ts
|
||||
|
||||
|
||||
|
||||
win32 {
|
||||
RC_FILE = packaging/windows/resources.rc
|
||||
LIBS += -lavutil -lavformat -lavcodec -lavfilter -lswscale -lswresample -lopengl32 -luser32
|
||||
}
|
||||
|
||||
mac {
|
||||
LIBS += -L/usr/local/lib -lavutil -lavformat -lavcodec -lavfilter -lswscale -lswresample -framework CoreFoundation
|
||||
ICON = packaging/macos/olive.icns
|
||||
INCLUDEPATH = /usr/local/include
|
||||
}
|
||||
|
||||
unix:!mac {
|
||||
CONFIG += link_pkgconfig
|
||||
PKGCONFIG += libavutil libavformat libavcodec libavfilter libswscale libswresample
|
||||
LIBS += -ldl
|
||||
}
|
||||
|
||||
RESOURCES += \
|
||||
icons/icons.qrc \
|
||||
effects/internal/internalshaders.qrc
|
||||
|
||||
unix:!mac:isEmpty(PREFIX) {
|
||||
PREFIX = /usr/local
|
||||
}
|
||||
|
||||
unix:!mac:target.path = $$PREFIX/bin
|
||||
|
||||
effects.files = $$PWD/effects/*.frag $$PWD/effects/*.xml $$PWD/effects/*.vert
|
||||
unix:!mac:effects.path = $$PREFIX/share/olive-editor/effects
|
||||
|
||||
translations.files = $$PWD/ts/*.qm
|
||||
unix:!mac:translations.path = $$PREFIX/share/olive-editor/ts
|
||||
|
||||
unix:!mac {
|
||||
metainfo.files = $$PWD/packaging/linux/org.olivevideoeditor.Olive.appdata.xml
|
||||
metainfo.path = $$PREFIX/share/metainfo
|
||||
desktop.files = $$PWD/packaging/linux/org.olivevideoeditor.Olive.desktop
|
||||
desktop.path = $$PREFIX/share/applications
|
||||
mime.files = $$PWD/packaging/linux/org.olivevideoeditor.Olive.xml
|
||||
mime.path = $$PREFIX/share/mime/packages
|
||||
icon16.files = $$PWD/packaging/linux/icons/16x16/org.olivevideoeditor.Olive.png
|
||||
icon16.path = $$PREFIX/share/icons/hicolor/16x16/apps
|
||||
icon32.files = $$PWD/packaging/linux/icons/32x32/org.olivevideoeditor.Olive.png
|
||||
icon32.path = $$PREFIX/share/icons/hicolor/32x32/apps
|
||||
icon48.files = $$PWD/packaging/linux/icons/48x48/org.olivevideoeditor.Olive.png
|
||||
icon48.path = $$PREFIX/share/icons/hicolor/48x48/apps
|
||||
icon64.files = $$PWD/packaging/linux/icons/64x64/org.olivevideoeditor.Olive.png
|
||||
icon64.path = $$PREFIX/share/icons/hicolor/64x64/apps
|
||||
icon128.files = $$PWD/packaging/linux/icons/128x128/org.olivevideoeditor.Olive.png
|
||||
icon128.path = $$PREFIX/share/icons/hicolor/128x128/apps
|
||||
icon256.files = $$PWD/packaging/linux/icons/256x256/org.olivevideoeditor.Olive.png
|
||||
icon256.path = $$PREFIX/share/icons/hicolor/256x256/apps
|
||||
icon512.files = $$PWD/packaging/linux/icons/512x512/org.olivevideoeditor.Olive.png
|
||||
icon512.path = $$PREFIX/share/icons/hicolor/512x512/apps
|
||||
icon1024.files = $$PWD/packaging/linux/icons/1024x1024/org.olivevideoeditor.Olive.png
|
||||
icon1024.path = $$PREFIX/share/icons/hicolor/1024x1024/apps
|
||||
INSTALLS += target effects translations metainfo desktop mime icon16 icon32 icon48 icon64 icon128 icon256 icon512 icon1024
|
||||
}
|
||||
#-------------------------------------------------
|
||||
#
|
||||
# Project created by QtCreator 2018-05-11T10:31:59
|
||||
#
|
||||
#-------------------------------------------------
|
||||
|
||||
QT += core gui multimedia opengl
|
||||
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
|
||||
|
||||
mac {
|
||||
TARGET = Olive
|
||||
}
|
||||
!mac {
|
||||
TARGET = olive-editor
|
||||
}
|
||||
TEMPLATE = app
|
||||
|
||||
# The following define makes your compiler emit warnings if you use
|
||||
# any feature of Qt which has been marked as deprecated (the exact warnings
|
||||
# depend on your compiler). Please consult the documentation of the
|
||||
# deprecated API in order to know how to port your code away from it.
|
||||
DEFINES += QT_DEPRECATED_WARNINGS
|
||||
|
||||
# You can also make your code fail to compile if you use deprecated APIs.
|
||||
# In order to do so, uncomment the following line.
|
||||
# You can also select to disable deprecated APIs only up to a certain version of Qt.
|
||||
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
|
||||
|
||||
# Tries to get the current Git short hash
|
||||
system("which git") {
|
||||
GITHASHVAR = $$system(git --git-dir $$PWD/.git --work-tree $$PWD log -1 --format=%h)
|
||||
DEFINES += GITHASH=\\"\"$$GITHASHVAR\\"\"
|
||||
}
|
||||
|
||||
CONFIG += c++11
|
||||
|
||||
CONFIG(debug, debug|release) {
|
||||
CONFIG += console
|
||||
}
|
||||
|
||||
SOURCES += \
|
||||
main.cpp \
|
||||
mainwindow.cpp \
|
||||
panels/project.cpp \
|
||||
panels/effectcontrols.cpp \
|
||||
panels/viewer.cpp \
|
||||
panels/timeline.cpp \
|
||||
ui/sourcetable.cpp \
|
||||
dialogs/aboutdialog.cpp \
|
||||
ui/timelinewidget.cpp \
|
||||
project/media.cpp \
|
||||
project/footage.cpp \
|
||||
project/sequence.cpp \
|
||||
project/clip.cpp \
|
||||
playback/playback.cpp \
|
||||
playback/audio.cpp \
|
||||
io/config.cpp \
|
||||
dialogs/newsequencedialog.cpp \
|
||||
ui/viewerwidget.cpp \
|
||||
ui/viewercontainer.cpp \
|
||||
dialogs/exportdialog.cpp \
|
||||
ui/collapsiblewidget.cpp \
|
||||
panels/panels.cpp \
|
||||
playback/cacher.cpp \
|
||||
io/exportthread.cpp \
|
||||
ui/timelineheader.cpp \
|
||||
io/previewgenerator.cpp \
|
||||
ui/labelslider.cpp \
|
||||
dialogs/preferencesdialog.cpp \
|
||||
ui/audiomonitor.cpp \
|
||||
project/undo.cpp \
|
||||
ui/scrollarea.cpp \
|
||||
ui/comboboxex.cpp \
|
||||
ui/colorbutton.cpp \
|
||||
dialogs/replaceclipmediadialog.cpp \
|
||||
ui/fontcombobox.cpp \
|
||||
ui/checkboxex.cpp \
|
||||
ui/keyframeview.cpp \
|
||||
ui/texteditex.cpp \
|
||||
dialogs/demonotice.cpp \
|
||||
project/marker.cpp \
|
||||
dialogs/speeddialog.cpp \
|
||||
dialogs/mediapropertiesdialog.cpp \
|
||||
io/crc32.cpp \
|
||||
project/projectmodel.cpp \
|
||||
io/loadthread.cpp \
|
||||
dialogs/loaddialog.cpp \
|
||||
debug.cpp \
|
||||
io/path.cpp \
|
||||
effects/internal/linearfadetransition.cpp \
|
||||
effects/internal/transformeffect.cpp \
|
||||
effects/internal/solideffect.cpp \
|
||||
effects/internal/texteffect.cpp \
|
||||
effects/internal/timecodeeffect.cpp \
|
||||
effects/internal/audionoiseeffect.cpp \
|
||||
effects/internal/paneffect.cpp \
|
||||
effects/internal/toneeffect.cpp \
|
||||
effects/internal/volumeeffect.cpp \
|
||||
effects/internal/crossdissolvetransition.cpp \
|
||||
effects/internal/shakeeffect.cpp \
|
||||
effects/internal/exponentialfadetransition.cpp \
|
||||
effects/internal/logarithmicfadetransition.cpp \
|
||||
effects/internal/cornerpineffect.cpp \
|
||||
io/math.cpp \
|
||||
io/qpainterwrapper.cpp \
|
||||
project/effect.cpp \
|
||||
project/transition.cpp \
|
||||
project/effectrow.cpp \
|
||||
project/effectfield.cpp \
|
||||
effects/internal/cubetransition.cpp \
|
||||
project/effectgizmo.cpp \
|
||||
io/clipboard.cpp \
|
||||
dialogs/stabilizerdialog.cpp \
|
||||
io/avtogl.cpp \
|
||||
ui/resizablescrollbar.cpp \
|
||||
ui/sourceiconview.cpp \
|
||||
project/sourcescommon.cpp \
|
||||
ui/keyframenavigator.cpp \
|
||||
panels/grapheditor.cpp \
|
||||
ui/graphview.cpp \
|
||||
ui/keyframedrawing.cpp \
|
||||
ui/clickablelabel.cpp \
|
||||
project/keyframe.cpp \
|
||||
ui/rectangleselect.cpp \
|
||||
dialogs/actionsearch.cpp \
|
||||
ui/embeddedfilechooser.cpp \
|
||||
effects/internal/fillleftrighteffect.cpp \
|
||||
effects/internal/voideffect.cpp \
|
||||
dialogs/texteditdialog.cpp \
|
||||
dialogs/debugdialog.cpp \
|
||||
ui/renderthread.cpp \
|
||||
ui/renderfunctions.cpp \
|
||||
ui/viewerwindow.cpp \
|
||||
project/projectfilter.cpp \
|
||||
effects/internal/frei0reffect.cpp \
|
||||
project/effectloaders.cpp \
|
||||
io/crossplatformlib.cpp \
|
||||
effects/internal/vsthost.cpp \
|
||||
ui/flowlayout.cpp \
|
||||
dialogs/proxydialog.cpp \
|
||||
io/proxygenerator.cpp \
|
||||
dialogs/advancedvideodialog.cpp \
|
||||
ui/cursors.cpp
|
||||
|
||||
HEADERS += \
|
||||
mainwindow.h \
|
||||
panels/project.h \
|
||||
panels/effectcontrols.h \
|
||||
panels/viewer.h \
|
||||
panels/timeline.h \
|
||||
ui/sourcetable.h \
|
||||
dialogs/aboutdialog.h \
|
||||
ui/timelinewidget.h \
|
||||
project/media.h \
|
||||
project/footage.h \
|
||||
project/sequence.h \
|
||||
project/clip.h \
|
||||
playback/playback.h \
|
||||
playback/audio.h \
|
||||
io/config.h \
|
||||
dialogs/newsequencedialog.h \
|
||||
ui/viewerwidget.h \
|
||||
ui/viewercontainer.h \
|
||||
dialogs/exportdialog.h \
|
||||
ui/collapsiblewidget.h \
|
||||
panels/panels.h \
|
||||
playback/cacher.h \
|
||||
io/exportthread.h \
|
||||
ui/timelinetools.h \
|
||||
ui/timelineheader.h \
|
||||
io/previewgenerator.h \
|
||||
ui/labelslider.h \
|
||||
dialogs/preferencesdialog.h \
|
||||
ui/audiomonitor.h \
|
||||
project/undo.h \
|
||||
ui/scrollarea.h \
|
||||
ui/comboboxex.h \
|
||||
ui/colorbutton.h \
|
||||
dialogs/replaceclipmediadialog.h \
|
||||
ui/fontcombobox.h \
|
||||
ui/checkboxex.h \
|
||||
ui/keyframeview.h \
|
||||
ui/texteditex.h \
|
||||
dialogs/demonotice.h \
|
||||
project/marker.h \
|
||||
project/selection.h \
|
||||
dialogs/speeddialog.h \
|
||||
dialogs/mediapropertiesdialog.h \
|
||||
io/crc32.h \
|
||||
project/projectmodel.h \
|
||||
io/loadthread.h \
|
||||
dialogs/loaddialog.h \
|
||||
debug.h \
|
||||
io/path.h \
|
||||
effects/internal/transformeffect.h \
|
||||
effects/internal/solideffect.h \
|
||||
effects/internal/texteffect.h \
|
||||
effects/internal/timecodeeffect.h \
|
||||
effects/internal/audionoiseeffect.h \
|
||||
effects/internal/paneffect.h \
|
||||
effects/internal/toneeffect.h \
|
||||
effects/internal/volumeeffect.h \
|
||||
effects/internal/shakeeffect.h \
|
||||
effects/internal/linearfadetransition.h \
|
||||
effects/internal/crossdissolvetransition.h \
|
||||
effects/internal/exponentialfadetransition.h \
|
||||
effects/internal/logarithmicfadetransition.h \
|
||||
effects/internal/cornerpineffect.h \
|
||||
io/math.h \
|
||||
io/qpainterwrapper.h \
|
||||
project/effect.h \
|
||||
project/transition.h \
|
||||
project/effectrow.h \
|
||||
project/effectfield.h \
|
||||
effects/internal/cubetransition.h \
|
||||
project/effectgizmo.h \
|
||||
io/clipboard.h \
|
||||
dialogs/stabilizerdialog.h \
|
||||
io/avtogl.h \
|
||||
ui/resizablescrollbar.h \
|
||||
ui/sourceiconview.h \
|
||||
project/sourcescommon.h \
|
||||
ui/keyframenavigator.h \
|
||||
panels/grapheditor.h \
|
||||
ui/graphview.h \
|
||||
ui/keyframedrawing.h \
|
||||
ui/clickablelabel.h \
|
||||
project/keyframe.h \
|
||||
ui/rectangleselect.h \
|
||||
dialogs/actionsearch.h \
|
||||
ui/embeddedfilechooser.h \
|
||||
effects/internal/fillleftrighteffect.h \
|
||||
effects/internal/voideffect.h \
|
||||
dialogs/texteditdialog.h \
|
||||
dialogs/debugdialog.h \
|
||||
ui/renderthread.h \
|
||||
ui/renderfunctions.h \
|
||||
ui/viewerwindow.h \
|
||||
project/projectfilter.h \
|
||||
effects/internal/frei0reffect.h \
|
||||
project/effectloaders.h \
|
||||
io/crossplatformlib.h \
|
||||
effects/internal/vsthost.h \
|
||||
ui/flowlayout.h \
|
||||
dialogs/proxydialog.h \
|
||||
io/proxygenerator.h \
|
||||
dialogs/advancedvideodialog.h \
|
||||
ui/cursors.h
|
||||
|
||||
FORMS +=
|
||||
|
||||
TRANSLATIONS += \
|
||||
ts/olive_de.ts \
|
||||
ts/olive_es.ts \
|
||||
ts/olive_fr.ts \
|
||||
ts/olive_it.ts \
|
||||
ts/olive_cs.ts \
|
||||
ts/olive_ar.ts \
|
||||
ts/olive_ru.ts \
|
||||
ts/olive_bs.ts \
|
||||
ts/olive_sr.ts
|
||||
|
||||
win32 {
|
||||
RC_FILE = packaging/windows/resources.rc
|
||||
LIBS += -lavutil -lavformat -lavcodec -lavfilter -lswscale -lswresample -lopengl32 -luser32
|
||||
}
|
||||
|
||||
mac {
|
||||
LIBS += -L/usr/local/lib -lavutil -lavformat -lavcodec -lavfilter -lswscale -lswresample -framework CoreFoundation
|
||||
ICON = packaging/macos/olive.icns
|
||||
INCLUDEPATH = /usr/local/include
|
||||
}
|
||||
|
||||
unix:!mac {
|
||||
CONFIG += link_pkgconfig
|
||||
PKGCONFIG += libavutil libavformat libavcodec libavfilter libswscale libswresample
|
||||
LIBS += -ldl
|
||||
}
|
||||
|
||||
RESOURCES += \
|
||||
icons/icons.qrc \
|
||||
effects/internal/internalshaders.qrc \
|
||||
cursors/cursors.qrc
|
||||
|
||||
unix:!mac:isEmpty(PREFIX) {
|
||||
PREFIX = /usr/local
|
||||
}
|
||||
|
||||
unix:!mac:target.path = $$PREFIX/bin
|
||||
|
||||
effects.files = $$PWD/effects/*.frag $$PWD/effects/*.xml $$PWD/effects/*.vert
|
||||
unix:!mac:effects.path = $$PREFIX/share/olive-editor/effects
|
||||
|
||||
translations.files = $$PWD/ts/*.qm
|
||||
unix:!mac:translations.path = $$PREFIX/share/olive-editor/ts
|
||||
|
||||
unix:!mac {
|
||||
metainfo.files = $$PWD/packaging/linux/org.olivevideoeditor.Olive.appdata.xml
|
||||
metainfo.path = $$PREFIX/share/metainfo
|
||||
desktop.files = $$PWD/packaging/linux/org.olivevideoeditor.Olive.desktop
|
||||
desktop.path = $$PREFIX/share/applications
|
||||
mime.files = $$PWD/packaging/linux/org.olivevideoeditor.Olive.xml
|
||||
mime.path = $$PREFIX/share/mime/packages
|
||||
icon16.files = $$PWD/packaging/linux/icons/16x16/org.olivevideoeditor.Olive.png
|
||||
icon16.path = $$PREFIX/share/icons/hicolor/16x16/apps
|
||||
icon32.files = $$PWD/packaging/linux/icons/32x32/org.olivevideoeditor.Olive.png
|
||||
icon32.path = $$PREFIX/share/icons/hicolor/32x32/apps
|
||||
icon48.files = $$PWD/packaging/linux/icons/48x48/org.olivevideoeditor.Olive.png
|
||||
icon48.path = $$PREFIX/share/icons/hicolor/48x48/apps
|
||||
icon64.files = $$PWD/packaging/linux/icons/64x64/org.olivevideoeditor.Olive.png
|
||||
icon64.path = $$PREFIX/share/icons/hicolor/64x64/apps
|
||||
icon128.files = $$PWD/packaging/linux/icons/128x128/org.olivevideoeditor.Olive.png
|
||||
icon128.path = $$PREFIX/share/icons/hicolor/128x128/apps
|
||||
icon256.files = $$PWD/packaging/linux/icons/256x256/org.olivevideoeditor.Olive.png
|
||||
icon256.path = $$PREFIX/share/icons/hicolor/256x256/apps
|
||||
icon512.files = $$PWD/packaging/linux/icons/512x512/org.olivevideoeditor.Olive.png
|
||||
icon512.path = $$PREFIX/share/icons/hicolor/512x512/apps
|
||||
INSTALLS += target effects translations metainfo desktop mime icon16 icon32 icon48 icon64 icon128 icon256 icon512
|
||||
}
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 198 KiB |
+17
-2
@@ -817,20 +817,28 @@ bool Project::reveal_media(Media *media, QModelIndex parent) {
|
||||
Media* m = project_model.getItem(item);
|
||||
|
||||
if (m->get_type() == MEDIA_TYPE_FOLDER) {
|
||||
|
||||
// if this item is a folder, recursively run this function to search it too
|
||||
if (reveal_media(media, item)) return true;
|
||||
|
||||
} else if (m == media) {
|
||||
// expand all folders leading to this media
|
||||
// if m == media, then we found the media object we were looking for
|
||||
|
||||
// get sorter proxy item (the item that's "visible")
|
||||
QModelIndex sorted_index = sorter->mapFromSource(item);
|
||||
|
||||
// retrieve its parent item
|
||||
QModelIndex hierarchy = sorted_index.parent();
|
||||
|
||||
if (config.project_view_type == PROJECT_VIEW_TREE) {
|
||||
|
||||
// if we're in tree view, expand every folder in the hierarchy containing the media
|
||||
while (hierarchy.isValid()) {
|
||||
tree_view->setExpanded(hierarchy, true);
|
||||
hierarchy = hierarchy.parent();
|
||||
}
|
||||
|
||||
// select item
|
||||
// select item (requires a QItemSelection object to select the whole row)
|
||||
QItemSelection row_select(
|
||||
sorter->index(sorted_index.row(), 0, sorted_index.parent()),
|
||||
sorter->index(sorted_index.row(), sorter->columnCount()-1, sorted_index.parent())
|
||||
@@ -838,9 +846,16 @@ bool Project::reveal_media(Media *media, QModelIndex parent) {
|
||||
|
||||
tree_view->selectionModel()->select(row_select, QItemSelectionModel::Select);
|
||||
} else if (config.project_view_type == PROJECT_VIEW_ICON) {
|
||||
|
||||
// if we're in icon view, we just "browse" to the parent folder
|
||||
icon_view->setRootIndex(hierarchy);
|
||||
|
||||
// select item in this folder
|
||||
icon_view->selectionModel()->select(sorted_index, QItemSelectionModel::Select);
|
||||
|
||||
// update the "up" button state
|
||||
set_up_dir_enabled();
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
+75
-76
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="cs_CZ">
|
||||
<TS version="2.0" language="cs_CZ">
|
||||
<context>
|
||||
<name>AboutDialog</name>
|
||||
<message>
|
||||
@@ -27,12 +27,12 @@
|
||||
<message>
|
||||
<location filename="../dialogs/advancedvideodialog.cpp" line="21"/>
|
||||
<source>Advanced Video Settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Pokročilá nastavení obrazu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/advancedvideodialog.cpp" line="33"/>
|
||||
<source>Pixel Format:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Formát pixelu:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -196,54 +196,54 @@
|
||||
<message>
|
||||
<location filename="../project/effect.cpp" line="403"/>
|
||||
<source>Load Settings From File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Nahrát nastavení ze souboru</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../project/effect.cpp" line="405"/>
|
||||
<source>Save Settings to File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Uložit nastavení do souboru</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../project/effect.cpp" line="442"/>
|
||||
<source>Save Effect Settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Uložit nastavení efektu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../project/effect.cpp" line="444"/>
|
||||
<location filename="../project/effect.cpp" line="474"/>
|
||||
<source>Effect XML Settings %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Nastavení XML efektu %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../project/effect.cpp" line="462"/>
|
||||
<source>Save Settings Failed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Nastavení se nepodařilo uložit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../project/effect.cpp" line="463"/>
|
||||
<source>Failed to open "%1" for writing.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Nepodařilo se otevřít "%1" pro zápis.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../project/effect.cpp" line="472"/>
|
||||
<source>Load Effect Settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Nahrát nastavení efektu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../project/effect.cpp" line="488"/>
|
||||
<location filename="../project/effect.cpp" line="697"/>
|
||||
<source>Load Settings Failed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Nastavení se nepodařilo nahrát</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../project/effect.cpp" line="489"/>
|
||||
<source>Failed to open "%1" for reading.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Nepodařilo se otevřít "%1" pro čtení.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../project/effect.cpp" line="698"/>
|
||||
<source>This settings file doesn't match this effect.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Tento soubor s nastavením neodpovídá tomuto efektu.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -325,7 +325,7 @@
|
||||
<message>
|
||||
<location filename="../dialogs/exportdialog.cpp" line="113"/>
|
||||
<source>Unknown codec name %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Neznámý název kodeku %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/exportdialog.cpp" line="319"/>
|
||||
@@ -386,17 +386,17 @@
|
||||
<location filename="../dialogs/exportdialog.cpp" line="576"/>
|
||||
<location filename="../dialogs/exportdialog.cpp" line="582"/>
|
||||
<source>Invalid Codec</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Neplatný kodek</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/exportdialog.cpp" line="577"/>
|
||||
<source>Failed to find a suitable encoder for this codec. Export will likely fail.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Nepodařilo se najít vhodný kodér pro tento kodek. Vyvedení pravděpodobně selže.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/exportdialog.cpp" line="583"/>
|
||||
<source>Failed to find pixel format for this encoder. Export will likely fail.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Nepodařilo se najít formát pixelu pro tento kodér. Vyvedení pravděpodobně selže.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/exportdialog.cpp" line="596"/>
|
||||
@@ -482,7 +482,7 @@
|
||||
<message>
|
||||
<location filename="../dialogs/exportdialog.cpp" line="679"/>
|
||||
<source>Advanced</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Pokročilé</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/exportdialog.cpp" line="695"/>
|
||||
@@ -844,7 +844,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Enable/Disable In/Out Point</source>
|
||||
<translation type="vanished">Povolit/Zakázat bod začátku/konce</translation>
|
||||
<translation>Povolit/Zakázat bod začátku/konce</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="279"/>
|
||||
@@ -869,7 +869,7 @@
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="457"/>
|
||||
<source>Please open the sequence you wish to export.</source>
|
||||
<translation>Otevřete, prosím, sekvence, již chcete vyvést.</translation>
|
||||
<translation>Otevřete, prosím, sekvenci, již chcete vyvést.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="555"/>
|
||||
@@ -1214,29 +1214,29 @@
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="785"/>
|
||||
<source>Shuttle Left</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Jezdit tam a zpět vlevo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="786"/>
|
||||
<source>Shuttle Stop</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Zastavit pendlování</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="787"/>
|
||||
<source>Shuttle Right</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Jezdit tam a zpět vpravo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Decrease Speed</source>
|
||||
<translation type="vanished">Snížit rychlost</translation>
|
||||
<translation>Snížit rychlost</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Pause</source>
|
||||
<translation type="vanished">Pozastavit</translation>
|
||||
<translation>Pozastavit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Increase Speed</source>
|
||||
<translation type="vanished">Zvýšit rychlost</translation>
|
||||
<translation>Zvýšit rychlost</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="790"/>
|
||||
@@ -1281,8 +1281,7 @@
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="832"/>
|
||||
<source>Maximize Panel</source>
|
||||
<translatorcomment>Zvětšit panel</translatorcomment>
|
||||
<translation></translation>
|
||||
<translation>Zvětšit panel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="836"/>
|
||||
@@ -1500,17 +1499,17 @@
|
||||
<message>
|
||||
<location filename="../project/marker.cpp" line="43"/>
|
||||
<source>Set Marker</source>
|
||||
<translation type="unfinished">Nastavit značku</translation>
|
||||
<translation>Nastavit značku</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../project/marker.cpp" line="45"/>
|
||||
<source>Set clip marker name:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Nastavit název značky záběru:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../project/marker.cpp" line="46"/>
|
||||
<source>Set sequence marker name:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Nastavit název značky sekvence:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -1542,12 +1541,12 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 fields (%2 frames)</source>
|
||||
<translation type="vanished">%1 polí (%2 snímků)</translation>
|
||||
<translation>%1 polí (%2 snímků)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../project/media.cpp" line="122"/>
|
||||
<source>%1 field(s) (%2 frame(s))</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>%1 pole(í) (%2 snímek(y))</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../project/media.cpp" line="131"/>
|
||||
@@ -1612,20 +1611,20 @@ Rozložení zvuku: %6</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Audio %1: %2Hz %3 channels</source>
|
||||
<translation type="vanished">Zvuk %1: %2Hz %3 kanálů</translation>
|
||||
<translation>Zvuk %1: %2Hz %3 kanálů</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/mediapropertiesdialog.cpp" line="56"/>
|
||||
<source>Audio %1: %2Hz %3</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Zvuk %1: %2Hz %3</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../dialogs/mediapropertiesdialog.cpp" line="59"/>
|
||||
<source>%n channel(s)</source>
|
||||
<translation type="unfinished">
|
||||
<numerusform></numerusform>
|
||||
<numerusform></numerusform>
|
||||
<numerusform></numerusform>
|
||||
<translation>
|
||||
<numerusform>%n kanál</numerusform>
|
||||
<numerusform>%n kanály</numerusform>
|
||||
<numerusform>%n kanálů</numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
@@ -1795,7 +1794,7 @@ Rozložení zvuku: %6</translation>
|
||||
<message>
|
||||
<location filename="../playback/playback.cpp" line="302"/>
|
||||
<source>Generating Proxy: %1%</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Vytvoření proxy: %1%</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -1879,22 +1878,22 @@ Rozložení zvuku: %6</translation>
|
||||
<message>
|
||||
<location filename="../dialogs/preferencesdialog.cpp" line="373"/>
|
||||
<source>Delete All Previews</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Smazat všechny náhledy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/preferencesdialog.cpp" line="374"/>
|
||||
<source>Are you sure you want to delete all previews?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Opravdu chcete smazat všechny náhledy?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/preferencesdialog.cpp" line="378"/>
|
||||
<source>Previews Deleted</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Náhledy smazány</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/preferencesdialog.cpp" line="379"/>
|
||||
<source>All previews deleted succesfully. You may have to re-open your current project for changes to take effect.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Všechny náhledy byly úspěšně smazány. Možná budete muset nynější projekt otevřít znovu, aby se změny projevily.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/preferencesdialog.cpp" line="396"/>
|
||||
@@ -1949,7 +1948,7 @@ Rozložení zvuku: %6</translation>
|
||||
<message>
|
||||
<location filename="../dialogs/preferencesdialog.cpp" line="491"/>
|
||||
<source>Delete Previews</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Smazat náhledy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/preferencesdialog.cpp" line="499"/>
|
||||
@@ -1968,7 +1967,7 @@ Rozložení zvuku: %6</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Disable Multithreading on Images</source>
|
||||
<translation type="vanished">Zakázat vytvoření více vláken v jednom procesu na obrázky</translation>
|
||||
<translation>Zakázat vytvoření více vláken v jednom procesu na obrázky</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/preferencesdialog.cpp" line="515"/>
|
||||
@@ -2250,19 +2249,19 @@ Vyhledávat rychle (při hledání se mohou krátce ukázat nepřesné snímky -
|
||||
</message>
|
||||
<message>
|
||||
<source>ProRes SQ</source>
|
||||
<translation type="vanished">ProRes SQ</translation>
|
||||
<translation>ProRes SQ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>ProRes LT</source>
|
||||
<translation type="vanished">ProRes LT</translation>
|
||||
<translation>ProRes LT</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DNxHD</source>
|
||||
<translation type="vanished">DNxHD</translation>
|
||||
<translation>DNxHD</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>H.264</source>
|
||||
<translation type="vanished">H.264</translation>
|
||||
<translation>H.264</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/proxydialog.cpp" line="52"/>
|
||||
@@ -2277,12 +2276,12 @@ Vyhledávat rychle (při hledání se mohou krátce ukázat nepřesné snímky -
|
||||
<message>
|
||||
<location filename="../dialogs/proxydialog.cpp" line="102"/>
|
||||
<source>Proxy file exists</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Soubor proxy existuje</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/proxydialog.cpp" line="103"/>
|
||||
<source>The file "%1" already exists. Do you wish to replace it?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Soubor "%1" již existuje. Chcete jej nahradit?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/proxydialog.cpp" line="137"/>
|
||||
@@ -2295,7 +2294,7 @@ Vyhledávat rychle (při hledání se mohou krátce ukázat nepřesné snímky -
|
||||
<message>
|
||||
<location filename="../io/proxygenerator.cpp" line="303"/>
|
||||
<source>Finished generating proxy for "%1"</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Dokončeno vytvoření proxy pro "%1"</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -2515,12 +2514,12 @@ Vyhledávat rychle (při hledání se mohou krátce ukázat nepřesné snímky -
|
||||
<message>
|
||||
<location filename="../project/sourcescommon.cpp" line="148"/>
|
||||
<source>Generating proxy: %1% complete</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Vytvoření proxy: %1% hotovo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../project/sourcescommon.cpp" line="169"/>
|
||||
<source>Create/Modify Proxy</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Vytvořit/Změnit proxy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../project/sourcescommon.cpp" line="172"/>
|
||||
@@ -2530,12 +2529,12 @@ Vyhledávat rychle (při hledání se mohou krátce ukázat nepřesné snímky -
|
||||
<message>
|
||||
<location filename="../project/sourcescommon.cpp" line="183"/>
|
||||
<source>Modify Proxy</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Změnit proxy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../project/sourcescommon.cpp" line="186"/>
|
||||
<source>Restore Original</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Obnovit původní</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../project/sourcescommon.cpp" line="192"/>
|
||||
@@ -2560,12 +2559,12 @@ Vyhledávat rychle (při hledání se mohou krátce ukázat nepřesné snímky -
|
||||
<message>
|
||||
<location filename="../project/sourcescommon.cpp" line="372"/>
|
||||
<source>Delete proxy</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Smazat proxy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../project/sourcescommon.cpp" line="373"/>
|
||||
<source>Would you like to delete the proxy file "%1" as well?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Chcete smazat i soubor proxy "%1"?</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -2820,11 +2819,11 @@ Vyhledávat rychle (při hledání se mohou krátce ukázat nepřesné snímky -
|
||||
</message>
|
||||
<message>
|
||||
<source>Set Marker</source>
|
||||
<translation type="vanished">Nastavit značku</translation>
|
||||
<translation>Nastavit značku</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set marker name:</source>
|
||||
<translation type="vanished">Nastavit název značky:</translation>
|
||||
<translation>Nastavit název značky:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../panels/timeline.cpp" line="1568"/>
|
||||
@@ -2945,47 +2944,47 @@ Vyhledávat rychle (při hledání se mohou krátce ukázat nepřesné snímky -
|
||||
<message>
|
||||
<location filename="../ui/timelinewidget.cpp" line="77"/>
|
||||
<source>&Undo</source>
|
||||
<translation type="unfinished">&Zpět</translation>
|
||||
<translation>&Zpět</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/timelinewidget.cpp" line="78"/>
|
||||
<source>&Redo</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>&Znovu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/timelinewidget.cpp" line="96"/>
|
||||
<source>C&ut</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Vyj&mout</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/timelinewidget.cpp" line="97"/>
|
||||
<source>Cop&y</source>
|
||||
<translation type="unfinished">&Kopírovat</translation>
|
||||
<translation>&Kopírovat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/timelinewidget.cpp" line="100"/>
|
||||
<source>&Paste</source>
|
||||
<translation type="unfinished">&Vložit</translation>
|
||||
<translation>&Vložit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/timelinewidget.cpp" line="110"/>
|
||||
<source>R&ipple Delete</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>&Vytáhnout (smazat a posunout)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/timelinewidget.cpp" line="114"/>
|
||||
<source>Sequence Settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Nastavení sekvence</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/timelinewidget.cpp" line="120"/>
|
||||
<source>&Speed/Duration</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>&Rychlost/Doba trvání</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/timelinewidget.cpp" line="122"/>
|
||||
<source>Auto-s&cale</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Automatická &změna velikosti</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/timelinewidget.cpp" line="127"/>
|
||||
@@ -2995,17 +2994,17 @@ Vyhledávat rychle (při hledání se mohou krátce ukázat nepřesné snímky -
|
||||
<message>
|
||||
<location filename="../ui/timelinewidget.cpp" line="129"/>
|
||||
<source>&Nest</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>&Vnořovat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/timelinewidget.cpp" line="159"/>
|
||||
<source>&Reveal in Project</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>&Odkrýt v projektu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/timelinewidget.cpp" line="163"/>
|
||||
<source>R&ename</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>&Přejmenovat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/timelinewidget.cpp" line="192"/>
|
||||
@@ -3259,12 +3258,12 @@ Doba trvání: %4</translation>
|
||||
<name>Transition</name>
|
||||
<message>
|
||||
<source>Length:</source>
|
||||
<translation type="vanished">Délka:</translation>
|
||||
<translation>Délka:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../project/transition.cpp" line="28"/>
|
||||
<source>Length</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Délka</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -3299,7 +3298,7 @@ Doba trvání: %4</translation>
|
||||
<message>
|
||||
<location filename="../effects/internal/vsthost.cpp" line="153"/>
|
||||
<source>Failed to locate entry point for dynamic library.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Nepodařilo se najít vstupní bod pro dynamickou knihovnu.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../effects/internal/vsthost.cpp" line="181"/>
|
||||
|
||||
+35
-35
@@ -27,12 +27,12 @@
|
||||
<message>
|
||||
<location filename="../dialogs/advancedvideodialog.cpp" line="21"/>
|
||||
<source>Advanced Video Settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Дополнительные параметры видео</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/advancedvideodialog.cpp" line="33"/>
|
||||
<source>Pixel Format:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Формат пикселей:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -385,12 +385,12 @@
|
||||
<location filename="../dialogs/exportdialog.cpp" line="576"/>
|
||||
<location filename="../dialogs/exportdialog.cpp" line="582"/>
|
||||
<source>Invalid Codec</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Некорректный кодек</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/exportdialog.cpp" line="577"/>
|
||||
<source>Failed to find a suitable encoder for this codec. Export will likely fail.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Не удалось найти подходящий кодировщик для этого кодека. Экспорт не гарантирован.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/exportdialog.cpp" line="583"/>
|
||||
@@ -481,7 +481,7 @@
|
||||
<message>
|
||||
<location filename="../dialogs/exportdialog.cpp" line="679"/>
|
||||
<source>Advanced</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Дополнительно</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/exportdialog.cpp" line="695"/>
|
||||
@@ -1213,17 +1213,17 @@
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="785"/>
|
||||
<source>Shuttle Left</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Уменьшить скорость</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="786"/>
|
||||
<source>Shuttle Stop</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Пауза</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="787"/>
|
||||
<source>Shuttle Right</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Увеличить скорость</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Decrease Speed</source>
|
||||
@@ -1340,27 +1340,27 @@
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="892"/>
|
||||
<source>Selecting Also Seeks</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Выделение с перемоткой</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="897"/>
|
||||
<source>Edit Tool Also Seeks</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Выделение с перемоткой</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="902"/>
|
||||
<source>Edit Tool Selects Links</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Выделение выбирает связи</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="907"/>
|
||||
<source>Seek Also Selects</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Перемотка с выделением</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="912"/>
|
||||
<source>Seek to the End of Pastes</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Перемотка до конца вставок</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="917"/>
|
||||
@@ -1370,7 +1370,7 @@
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="922"/>
|
||||
<source>Enable Drag Files to Timeline</source>
|
||||
<translation>Разрешить перетаскивание файлов на таймлайн извне</translation>
|
||||
<translation>Разрешить перетаскивание на таймлайн извне</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="927"/>
|
||||
@@ -1460,17 +1460,17 @@
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="1395"/>
|
||||
<source>Missing recent project</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Отсутствует недавний проект</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="1396"/>
|
||||
<source>The project '%1' no longer exists. Would you like to remove it from the recent projects list?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Проект '%1' больше не существует. Удалить его из списка недавних?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="1508"/>
|
||||
<source>Invalid aspect ratio</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Некорректное соотношение сторон</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="1508"/>
|
||||
@@ -1480,7 +1480,7 @@
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="1511"/>
|
||||
<source>Enter custom aspect ratio</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Введите другое соотношение сторон</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="1511"/>
|
||||
@@ -1498,17 +1498,17 @@
|
||||
<message>
|
||||
<location filename="../project/marker.cpp" line="43"/>
|
||||
<source>Set Marker</source>
|
||||
<translation type="unfinished">Установить маркер</translation>
|
||||
<translation>Установить маркер</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../project/marker.cpp" line="45"/>
|
||||
<source>Set clip marker name:</source>
|
||||
<translation type="unfinished">Установить название маркера клипа:</translation>
|
||||
<translation>Название маркера клипа:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../project/marker.cpp" line="46"/>
|
||||
<source>Set sequence marker name:</source>
|
||||
<translation type="unfinished">Установить название маркера последовательности:</translation>
|
||||
<translation>Название маркера последовательности:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -1545,7 +1545,7 @@
|
||||
<message>
|
||||
<location filename="../project/media.cpp" line="122"/>
|
||||
<source>%1 field(s) (%2 frame(s))</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>полей: %1 (кадров: %2)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../project/media.cpp" line="131"/>
|
||||
@@ -1620,10 +1620,10 @@ Audio Layout: %6</source>
|
||||
<message numerus="yes">
|
||||
<location filename="../dialogs/mediapropertiesdialog.cpp" line="59"/>
|
||||
<source>%n channel(s)</source>
|
||||
<translation type="unfinished">
|
||||
<numerusform></numerusform>
|
||||
<numerusform></numerusform>
|
||||
<numerusform></numerusform>
|
||||
<translation>
|
||||
<numerusform>%n канал</numerusform>
|
||||
<numerusform>%n канала</numerusform>
|
||||
<numerusform>%n каналов</numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
@@ -1639,7 +1639,7 @@ Audio Layout: %6</source>
|
||||
<message>
|
||||
<location filename="../dialogs/mediapropertiesdialog.cpp" line="93"/>
|
||||
<source>Auto (%1)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Авто (%1)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/mediapropertiesdialog.cpp" line="106"/>
|
||||
@@ -1877,22 +1877,22 @@ Audio Layout: %6</source>
|
||||
<message>
|
||||
<location filename="../dialogs/preferencesdialog.cpp" line="373"/>
|
||||
<source>Delete All Previews</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Удалить все миниатюры</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/preferencesdialog.cpp" line="374"/>
|
||||
<source>Are you sure you want to delete all previews?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Действительно удалить все миниатюры?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/preferencesdialog.cpp" line="378"/>
|
||||
<source>Previews Deleted</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Миниатюры удалены</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/preferencesdialog.cpp" line="379"/>
|
||||
<source>All previews deleted succesfully. You may have to re-open your current project for changes to take effect.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Все миниатюры успешно удалены. Возможно, понадобится заново открыть проект, чтобы изменения вступили в силу.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/preferencesdialog.cpp" line="396"/>
|
||||
@@ -1947,12 +1947,12 @@ Audio Layout: %6</source>
|
||||
<message>
|
||||
<location filename="../dialogs/preferencesdialog.cpp" line="491"/>
|
||||
<source>Delete Previews</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Удалить миниатюры</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/preferencesdialog.cpp" line="499"/>
|
||||
<source>Use Software Fallbacks When Possible</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>По возможности использовать программную реализацию вместо аппаратной</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/preferencesdialog.cpp" line="503"/>
|
||||
@@ -2547,7 +2547,7 @@ Seek quickly (may briefly show inaccurate frames when seeking - doesn't aff
|
||||
<message>
|
||||
<location filename="../project/sourcescommon.cpp" line="373"/>
|
||||
<source>Would you like to delete the proxy file "%1" as well?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Заодно удалить прокси-файл "%1"?</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -3250,7 +3250,7 @@ Duration: %4</source>
|
||||
<message>
|
||||
<location filename="../project/transition.cpp" line="28"/>
|
||||
<source>Length</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Длительность</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
#include "cursors.h"
|
||||
|
||||
#include <QPixmap>
|
||||
#include <QCursor>
|
||||
|
||||
#include <QDebug>
|
||||
|
||||
QCursor Olive::Cursor_LeftTrim;
|
||||
QCursor Olive::Cursor_RightTrim;
|
||||
|
||||
QCursor load_cursor(const QString& file, int hotX, int hotY, const bool& right_aligned){
|
||||
// load specified file into a pixmap
|
||||
QPixmap temp(file);
|
||||
|
||||
// set cursor's horizontal hotspot
|
||||
if (right_aligned) {
|
||||
hotX = temp.width() - hotX;
|
||||
}
|
||||
|
||||
// return cursor
|
||||
return QCursor(temp, hotX, hotY);
|
||||
}
|
||||
|
||||
void init_custom_cursors(){
|
||||
qInfo() << "Initializing custom cursors";
|
||||
Olive::Cursor_LeftTrim = load_cursor(":/cursors/left_side.png", 0, -1, false);
|
||||
Olive::Cursor_RightTrim = load_cursor(":/cursors/right_side.png", 0, -1, true);
|
||||
qInfo() << "Finished initializing custom cursors";
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
#ifndef CURSORS_H
|
||||
#define CURSORS_H
|
||||
|
||||
#include <QCursor>
|
||||
|
||||
void init_custom_cursors();
|
||||
|
||||
namespace Olive{
|
||||
extern QCursor Cursor_LeftTrim;
|
||||
extern QCursor Cursor_RightTrim;
|
||||
}
|
||||
|
||||
#endif // CURSORS_H
|
||||
+104
-17
@@ -23,6 +23,7 @@
|
||||
#include "mainwindow.h"
|
||||
#include "ui/rectangleselect.h"
|
||||
#include "playback/playback.h"
|
||||
#include "ui/cursors.h"
|
||||
#include "debug.h"
|
||||
|
||||
#include "project/effect.h"
|
||||
@@ -124,7 +125,9 @@ void TimelineWidget::show_context_menu(const QPoint& pos) {
|
||||
// set autoscale to the first selected clip
|
||||
autoscaleAction->setChecked(selected_clips.at(0)->autoscale);
|
||||
|
||||
menu.addAction(tr("Link/Unlink"), panel_timeline, SLOT(toggle_links()));
|
||||
menu.addAction(tr("Enable/Disable"), mainWindow, SLOT(toggle_enable_clips()));
|
||||
|
||||
menu.addAction(tr("Link/Unlink"), panel_timeline, SLOT(toggle_links()));
|
||||
|
||||
menu.addAction(tr("&Nest"), mainWindow, SLOT(nest()));
|
||||
|
||||
@@ -1977,62 +1980,132 @@ void TimelineWidget::mouseMoveEvent(QMouseEvent *event) {
|
||||
} else if (panel_timeline->tool == TIMELINE_TOOL_POINTER ||
|
||||
panel_timeline->tool == TIMELINE_TOOL_RIPPLE ||
|
||||
panel_timeline->tool == TIMELINE_TOOL_ROLLING) {
|
||||
|
||||
// hide any tooltip that may be currently showing
|
||||
QToolTip::hideText();
|
||||
|
||||
// cache cursor position
|
||||
QPoint pos = event->pos();
|
||||
|
||||
//
|
||||
// check to see if the cursor is on a clip edge
|
||||
//
|
||||
|
||||
// threshold around a trim point that the cursor can be within and still considered "trimming"
|
||||
int lim = 5;
|
||||
long mouse_frame_lower = panel_timeline->getTimelineFrameFromScreenPoint(pos.x()-lim)-1;
|
||||
long mouse_frame_upper = panel_timeline->getTimelineFrameFromScreenPoint(pos.x()+lim)+1;
|
||||
|
||||
// current track that the cursor is on
|
||||
int mouse_track = getTrackFromScreenPoint(pos.y());
|
||||
long mouse_frame_lower = panel_timeline->getTimelineFrameFromScreenPoint(pos.x()-lim)-1;
|
||||
long mouse_frame_upper = panel_timeline->getTimelineFrameFromScreenPoint(pos.x()+lim)+1;
|
||||
bool found = false;
|
||||
|
||||
// used to determine whether we the cursor found a trim point or not
|
||||
bool found = false;
|
||||
|
||||
// used to determine whether the cursor is within the rect of a clip
|
||||
bool cursor_contains_clip = false;
|
||||
|
||||
// used to determine how close the cursor is to a trim point
|
||||
// (and more specifically, whether another point is closer or not)
|
||||
int closeness = INT_MAX;
|
||||
|
||||
// while we loop through the clips, we cache the maximum/minimum tracks in this sequence
|
||||
int min_track = INT_MAX;
|
||||
int max_track = INT_MIN;
|
||||
|
||||
// we default to selecting no transition, but set this accordingly if the cursor is on a transition
|
||||
panel_timeline->transition_select = TA_NO_TRANSITION;
|
||||
|
||||
// set currently trimming clip to -1 (aka null)
|
||||
panel_timeline->trim_target = -1;
|
||||
|
||||
// loop through current clips in the sequence
|
||||
for (int i=0;i<sequence->clips.size();i++) {
|
||||
Clip* c = sequence->clips.at(i);
|
||||
if (c != nullptr) {
|
||||
|
||||
// cache track range
|
||||
min_track = qMin(min_track, c->track);
|
||||
max_track = qMax(max_track, c->track);
|
||||
|
||||
// if this clip is on the same track the mouse is
|
||||
if (c->track == mouse_track) {
|
||||
|
||||
// if this cursor is inside the boundaries of this clip (hovering over the clip)
|
||||
if (panel_timeline->cursor_frame >= c->timeline_in &&
|
||||
panel_timeline->cursor_frame <= c->timeline_out) {
|
||||
|
||||
// acknowledge that we are hovering over a clip
|
||||
cursor_contains_clip = true;
|
||||
|
||||
// start a timer to show a tooltip about this clip
|
||||
tooltip_timer.start();
|
||||
tooltip_clip = i;
|
||||
|
||||
if (c->get_opening_transition() != nullptr && panel_timeline->cursor_frame <= c->timeline_in + c->get_opening_transition()->get_true_length()) {
|
||||
// check if the cursor is specifically hovering over one of the clip's transitions
|
||||
if (c->get_opening_transition() != nullptr
|
||||
&& panel_timeline->cursor_frame <= c->timeline_in + c->get_opening_transition()->get_true_length()) {
|
||||
|
||||
panel_timeline->transition_select = TA_OPENING_TRANSITION;
|
||||
} else if (c->get_closing_transition() != nullptr && panel_timeline->cursor_frame >= c->timeline_out - c->get_closing_transition()->get_true_length()) {
|
||||
|
||||
} else if (c->get_closing_transition() != nullptr
|
||||
&& panel_timeline->cursor_frame >= c->timeline_out - c->get_closing_transition()->get_true_length()) {
|
||||
|
||||
panel_timeline->transition_select = TA_CLOSING_TRANSITION;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// is the cursor hovering around the clip's IN point?
|
||||
if (c->timeline_in > mouse_frame_lower && c->timeline_in < mouse_frame_upper) {
|
||||
|
||||
// test how close this IN point is to the cursor
|
||||
int nc = qAbs(c->timeline_in + 1 - panel_timeline->cursor_frame);
|
||||
|
||||
// and test whether it's closer than the last in/out point we found
|
||||
if (nc < closeness) {
|
||||
|
||||
// if so, this is the point we'll make active for now (unless we find a closer one later)
|
||||
panel_timeline->trim_target = i;
|
||||
panel_timeline->trim_in_point = true;
|
||||
closeness = nc;
|
||||
found = true;
|
||||
found = true;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// is the cursor hovering around the clip's OUT point?
|
||||
if (c->timeline_out > mouse_frame_lower && c->timeline_out < mouse_frame_upper) {
|
||||
|
||||
// test how close this OUT point is to the cursor
|
||||
int nc = qAbs(c->timeline_out - 1 - panel_timeline->cursor_frame);
|
||||
|
||||
// and test whether it's closer than the last in/out point we found
|
||||
if (nc < closeness) {
|
||||
|
||||
// if so, this is the point we'll make active for now (unless we find a closer one later)
|
||||
panel_timeline->trim_target = i;
|
||||
panel_timeline->trim_in_point = false;
|
||||
closeness = nc;
|
||||
found = true;
|
||||
found = true;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// the pointer can be used to resize/trim transitions, here we test if the
|
||||
// cursor is within the trim point of one of the clip's transitions
|
||||
if (panel_timeline->tool == TIMELINE_TOOL_POINTER) {
|
||||
|
||||
// if the clip has an opening transition
|
||||
if (c->get_opening_transition() != nullptr) {
|
||||
|
||||
// cache the timeline frame where the transition ends
|
||||
long transition_point = c->timeline_in + c->get_opening_transition()->get_true_length();
|
||||
|
||||
// check if the cursor is hovering around it (within the threshold)
|
||||
if (transition_point > mouse_frame_lower && transition_point < mouse_frame_upper) {
|
||||
|
||||
// similar to above, test how close it is and if it's closer, make this active
|
||||
int nc = qAbs(transition_point - 1 - panel_timeline->cursor_frame);
|
||||
if (nc < closeness) {
|
||||
panel_timeline->trim_target = i;
|
||||
@@ -2043,9 +2116,17 @@ void TimelineWidget::mouseMoveEvent(QMouseEvent *event) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// if the clip has a closing transition
|
||||
if (c->get_closing_transition() != nullptr) {
|
||||
|
||||
// cache the timeline frame where the transition starts
|
||||
long transition_point = c->timeline_out - c->get_closing_transition()->get_true_length();
|
||||
|
||||
// check if the cursor is hovering around it (within the threshold)
|
||||
if (transition_point > mouse_frame_lower && transition_point < mouse_frame_upper) {
|
||||
|
||||
// similar to above, test how close it is and if it's closer, make this active
|
||||
int nc = qAbs(transition_point + 1 - panel_timeline->cursor_frame);
|
||||
if (nc < closeness) {
|
||||
panel_timeline->trim_target = i;
|
||||
@@ -2059,16 +2140,22 @@ void TimelineWidget::mouseMoveEvent(QMouseEvent *event) {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
/*if (cursor_contains_clip) {
|
||||
QToolTip::showText(mapToGlobal(event->pos()), "HOVER OVER CLIP");
|
||||
}*/
|
||||
if (found) {
|
||||
setCursor(Qt::SizeHorCursor);
|
||||
} else {
|
||||
panel_timeline->trim_target = -1;
|
||||
}
|
||||
|
||||
// look for track heights
|
||||
// if the cursor is indeed on a clip edge, we set the cursor accordingly
|
||||
if (found) {
|
||||
|
||||
if (panel_timeline->trim_in_point) { // if we're trimming an IN point
|
||||
setCursor(Olive::Cursor_LeftTrim);
|
||||
} else { // if we're trimming an OUT point
|
||||
setCursor(Olive::Cursor_RightTrim);
|
||||
}
|
||||
|
||||
} else {
|
||||
// we didn't find a trim target, so we must be doing something else
|
||||
// (e.g. dragging a clip or resizing the track heights)
|
||||
|
||||
// check to see if we're resizing a track height
|
||||
int track_y = 0;
|
||||
for (int i=0;i<panel_timeline->get_track_height_size(bottom_align);i++) {
|
||||
int track = (bottom_align) ? -1-i : i;
|
||||
|
||||
Reference in New Issue
Block a user