summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorSergio Ahumada <sahumada@blackberry.com>2014-06-14 21:59:24 +0200
committerSergio Ahumada <sahumada@blackberry.com>2014-06-14 21:59:24 +0200
commitd691f5ca2b6749006673e199b1d668a6daa9b990 (patch)
treeeacad24192e1e0c492320e14bdfd7c3c203a01e0 /examples
parentd415d3256d055ef6fd7dad5c0497ecfaa56ee64d (diff)
parent150ff6662de1312e3ba9d000895d80dd5805ea5b (diff)
Merge remote-tracking branch 'origin/5.3' into dev
Conflicts: .qmake.conf Change-Id: Iecd8d7b94e52a8981526b12cffa40e99870ba62f
Diffstat (limited to 'examples')
-rw-r--r--examples/multimedia/audiodevices/doc/src/audiodevices.qdoc9
-rw-r--r--examples/multimedia/audioengine/doc/src/audioengine.qdoc10
-rw-r--r--examples/multimedia/audioinput/doc/src/audioinput.qdoc9
-rw-r--r--examples/multimedia/audiooutput/doc/src/audiooutput.qdoc9
-rw-r--r--examples/multimedia/audiorecorder/doc/src/audiorecorder.qdoc12
-rw-r--r--examples/multimedia/declarative-camera/doc/src/declarative-camera.qdoc37
-rw-r--r--examples/multimedia/declarative-radio/doc/src/declarative-radio.qdoc10
-rw-r--r--examples/multimedia/spectrum/doc/src/spectrum.qdoc6
-rw-r--r--examples/multimedia/video/doc/images/qmlvideofx-camera-glow.jpgbin0 -> 74914 bytes
-rw-r--r--examples/multimedia/video/doc/images/qmlvideofx-camera-glow.pngbin250540 -> 0 bytes
-rw-r--r--examples/multimedia/video/doc/images/qmlvideofx-camera-magnify.pngbin204923 -> 0 bytes
-rw-r--r--examples/multimedia/video/doc/images/qmlvideofx-camera-wobble.jpgbin0 -> 62992 bytes
-rw-r--r--examples/multimedia/video/doc/images/qmlvideofx-effects-menu.jpgbin0 -> 84990 bytes
-rw-r--r--examples/multimedia/video/doc/images/qmlvideofx-effects-menu.pngbin171257 -> 0 bytes
-rw-r--r--examples/multimedia/video/doc/images/qmlvideofx-source-menu.pngbin257292 -> 0 bytes
-rw-r--r--examples/multimedia/video/doc/images/qmlvideofx-video-edgedetection.jpgbin0 -> 108916 bytes
-rw-r--r--examples/multimedia/video/doc/images/qmlvideofx-video-edgedetection.pngbin279883 -> 0 bytes
-rw-r--r--examples/multimedia/video/doc/images/qmlvideofx-video-pagecurl.jpgbin0 -> 61450 bytes
-rw-r--r--examples/multimedia/video/doc/images/qmlvideofx-video-pagecurl.pngbin220606 -> 0 bytes
-rw-r--r--examples/multimedia/video/doc/src/qmlvideo.qdoc11
-rw-r--r--examples/multimedia/video/doc/src/qmlvideofx.qdoc38
-rw-r--r--examples/multimedia/video/qmlvideo/qml/qmlvideo/DisableScreenSaver.qml1
-rw-r--r--examples/multimedia/video/qmlvideofx/Info.plist30
-rw-r--r--examples/multimedia/video/qmlvideofx/android/AndroidManifest.xml48
-rw-r--r--examples/multimedia/video/qmlvideofx/images/Dropdown_arrows.pngbin0 -> 1156 bytes
-rw-r--r--examples/multimedia/video/qmlvideofx/images/Slider_bar.pngbin0 -> 1129 bytes
-rw-r--r--examples/multimedia/video/qmlvideofx/images/Slider_handle.pngbin0 -> 2784 bytes
-rw-r--r--examples/multimedia/video/qmlvideofx/images/Triangle_Top.pngbin0 -> 2212 bytes
-rw-r--r--examples/multimedia/video/qmlvideofx/images/Triangle_bottom.pngbin0 -> 2125 bytes
-rw-r--r--examples/multimedia/video/qmlvideofx/images/close.pngbin1799 -> 0 bytes
-rw-r--r--examples/multimedia/video/qmlvideofx/images/folder.pngbin1841 -> 0 bytes
-rw-r--r--examples/multimedia/video/qmlvideofx/images/icon_BackArrow.pngbin0 -> 1268 bytes
-rw-r--r--examples/multimedia/video/qmlvideofx/images/icon_Folder.pngbin0 -> 1829 bytes
-rw-r--r--examples/multimedia/video/qmlvideofx/images/icon_Menu.pngbin0 -> 990 bytes
-rw-r--r--examples/multimedia/video/qmlvideofx/images/titlebar.pngbin1436 -> 0 bytes
-rw-r--r--examples/multimedia/video/qmlvideofx/images/titlebar.sci5
-rw-r--r--examples/multimedia/video/qmlvideofx/images/up.pngbin662 -> 0 bytes
-rw-r--r--examples/multimedia/video/qmlvideofx/main.cpp17
-rw-r--r--examples/multimedia/video/qmlvideofx/qml/qmlvideofx/Button.qml24
-rw-r--r--examples/multimedia/video/qmlvideofx/qml/qmlvideofx/Content.qml3
-rw-r--r--examples/multimedia/video/qmlvideofx/qml/qmlvideofx/ContentImage.qml2
-rw-r--r--examples/multimedia/video/qmlvideofx/qml/qmlvideofx/ContentVideo.qml21
-rw-r--r--examples/multimedia/video/qmlvideofx/qml/qmlvideofx/Curtain.qml (renamed from examples/multimedia/video/qmlvideofx/shaders/sobeledgedetection2.fsh)81
-rw-r--r--examples/multimedia/video/qmlvideofx/qml/qmlvideofx/DisableScreenSaver.qml1
-rw-r--r--examples/multimedia/video/qmlvideofx/qml/qmlvideofx/Divider.qml31
-rw-r--r--examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectBillboard.qml2
-rw-r--r--examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectBlackAndWhite.qml2
-rw-r--r--examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectGaussianBlur.qml2
-rw-r--r--examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectIsolate.qml4
-rw-r--r--examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectMagnify.qml4
-rw-r--r--examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectPageCurl.qml2
-rw-r--r--examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectPixelate.qml2
-rw-r--r--examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectPosterize.qml2
-rw-r--r--examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectRipple.qml4
-rw-r--r--examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectSelectionList.qml (renamed from examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectSobelEdgeDetection2.qml)37
-rw-r--r--examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectSelectionPanel.qml154
-rw-r--r--examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectSharpen.qml2
-rw-r--r--examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectShockwave.qml2
-rw-r--r--examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectSobelEdgeDetection1.qml2
-rw-r--r--examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectToon.qml2
-rw-r--r--examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectWobble.qml2
-rw-r--r--examples/multimedia/video/qmlvideofx/qml/qmlvideofx/FileBrowser.qml100
-rw-r--r--examples/multimedia/video/qmlvideofx/qml/qmlvideofx/FileOpen.qml131
-rw-r--r--examples/multimedia/video/qmlvideofx/qml/qmlvideofx/Main.qml293
-rw-r--r--examples/multimedia/video/qmlvideofx/qml/qmlvideofx/ParameterPanel.qml15
-rw-r--r--examples/multimedia/video/qmlvideofx/qml/qmlvideofx/Slider.qml123
-rw-r--r--examples/multimedia/video/qmlvideofx/qml/qmlvideofx/main-largescreen.qml186
-rw-r--r--examples/multimedia/video/qmlvideofx/qml/qmlvideofx/main-smallscreen.qml408
-rw-r--r--examples/multimedia/video/qmlvideofx/qmlvideofx.pro12
-rw-r--r--examples/multimedia/video/qmlvideofx/qmlvideofx.qrc21
-rw-r--r--examples/multimediawidgets/camera/doc/src/camera.qdoc8
-rw-r--r--examples/multimediawidgets/player/doc/src/player.qdoc5
-rw-r--r--examples/multimediawidgets/videographicsitem/doc/src/videographicsitem.qdoc6
-rw-r--r--examples/multimediawidgets/videowidget/doc/src/videowidget.qdoc6
74 files changed, 828 insertions, 1126 deletions
diff --git a/examples/multimedia/audiodevices/doc/src/audiodevices.qdoc b/examples/multimedia/audiodevices/doc/src/audiodevices.qdoc
index d75584485..bdf1590fe 100644
--- a/examples/multimedia/audiodevices/doc/src/audiodevices.qdoc
+++ b/examples/multimedia/audiodevices/doc/src/audiodevices.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt Toolkit.
@@ -29,8 +29,8 @@
\example audiodevices
\title Audio Devices Example
\ingroup multimedia_examples
- \brief The Audio Devices example shows the application of the audio devices APIs
-
+ \brief The Audio Devices example shows the application of the audio devices
+ APIs.
This example shows how to create a simple application to list and test
the configuration for the various audio devices available on the device
@@ -38,6 +38,5 @@
\image audiodevices.png
+ \include examples-run.qdocinc
*/
-
-
diff --git a/examples/multimedia/audioengine/doc/src/audioengine.qdoc b/examples/multimedia/audioengine/doc/src/audioengine.qdoc
index c83247df1..52a377130 100644
--- a/examples/multimedia/audioengine/doc/src/audioengine.qdoc
+++ b/examples/multimedia/audioengine/doc/src/audioengine.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt Toolkit.
@@ -30,10 +30,10 @@
\title AudioEngine Example
\ingroup multimedia_examples
\brief The Audio Engine example demonstrates 3D sound control using
- the QtAudioEngine API.
+ the Qt Audio Engine API.
- \image audioengine.png
+ The Audio Engine example demonstrates 3D sound control using the
+ \l{Qt Audio Engine QML Types}{Qt Audio Engine} API.
+ \include examples-run.qdocinc
*/
-
-
diff --git a/examples/multimedia/audioinput/doc/src/audioinput.qdoc b/examples/multimedia/audioinput/doc/src/audioinput.qdoc
index 39ef26156..11a513a99 100644
--- a/examples/multimedia/audioinput/doc/src/audioinput.qdoc
+++ b/examples/multimedia/audioinput/doc/src/audioinput.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt Toolkit.
@@ -37,7 +37,8 @@
Qt provides the QAudioInput class to enable audio functionality within
a standard application user interface.
- This example calculates the maximum linear value of the input audio from the microphone and displays the output.
-*/
-
+ This example calculates the maximum linear value of the input audio from the
+ microphone and displays the output.
+ \include examples-run.qdocinc
+*/
diff --git a/examples/multimedia/audiooutput/doc/src/audiooutput.qdoc b/examples/multimedia/audiooutput/doc/src/audiooutput.qdoc
index bc79e6a5d..60c9d00d4 100644
--- a/examples/multimedia/audiooutput/doc/src/audiooutput.qdoc
+++ b/examples/multimedia/audiooutput/doc/src/audiooutput.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt Toolkit.
@@ -31,13 +31,14 @@
\ingroup multimedia_examples
\brief The Audio Output Example show the use of the QAudioOutput API.
- The example demonstrates the basic use cases of the QAudioOutput class.
+ The example demonstrates the basic use cases of the QAudioOutput class from
+ \l{Qt Multimedia}.
\image audiooutput-example.png
This example provides a tone generator to supply continuous audio playback.
The first button allows pause and resume of the playback, and the second
button allows toggling between push and pull modes of operation.
-*/
-
+ \include examples-run.qdocinc
+*/
diff --git a/examples/multimedia/audiorecorder/doc/src/audiorecorder.qdoc b/examples/multimedia/audiorecorder/doc/src/audiorecorder.qdoc
index 8453ea34e..35f6c0511 100644
--- a/examples/multimedia/audiorecorder/doc/src/audiorecorder.qdoc
+++ b/examples/multimedia/audiorecorder/doc/src/audiorecorder.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt Toolkit.
@@ -34,6 +34,12 @@
It demonstrates the discovery of the supported devices and codecs and the use
of recording functions in the QAudioRecorder class.
+ \image audiorecorder.png
+
+ \include examples-run.qdocinc
+
+ \section1 Displaying the Window and Audio Settings
+
We display a window for the user to select the appropriate audio input,
codec, container, and sample rate. Allow a setting of either quality or
bitrate. Finally, the output file can be selected and recording can be
@@ -49,7 +55,7 @@
\l{QMultimedia::NormalQuality}, while the bitrates are hardcoded
into the list.
- \image audiorecorder.png
+ \section1 Recording Audio
To record audio we simply create a QAudioRecorder object.
@@ -96,5 +102,3 @@
ui->statusbar->showMessage(tr("Recorded %1 sec").arg(duration / 1000));
\endcode
*/
-
-
diff --git a/examples/multimedia/declarative-camera/doc/src/declarative-camera.qdoc b/examples/multimedia/declarative-camera/doc/src/declarative-camera.qdoc
index 02e77854c..8c87b1d46 100644
--- a/examples/multimedia/declarative-camera/doc/src/declarative-camera.qdoc
+++ b/examples/multimedia/declarative-camera/doc/src/declarative-camera.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt Toolkit.
@@ -34,35 +34,22 @@ or video.
\image qml-camera.png
-This example demonstrates how to use the Qt Multimedia QML API to access
-camera functions. It shows how to change settings and to capture images.
+This example demonstrates how to use the
+\l{Qt Multimedia QML Types}{Qt Multimedia QML API} to access camera functions.
+It shows how to change settings and to capture images.
+
+\include examples-run.qdocinc
+
+\section1 Application Structure
Most of the QML code supports the user interface for this application with the
camera types being mostly found in \e {declarative-camera.qml} and
\e {CaptureControls.qml}.
-In \e {declarative-camera.qml} the \l Camera is initialized with an id
-of \e {camera}, a photo preview is setup, states are implemented for image
-preview or capture and \l CaptureControls is initialized. The initial
-\e state is \e PhotoCapture. \l CameraCapture includes a handler, \e onImageCaptured,
-for the \l {imageCaptured} signal. The handler sets up the application to process
-the preview including a change in the user interface state. The \l PhotoPreview
-becomes visible with any key press being picked up by the handler
-in PhotoPreview and returning the state to \e PhotoCapture.
-
-\e CaptureControls, which is implemented in \e {CaptureControls.qml},
+CaptureControls, which is implemented in \e {CaptureControls.qml},
generates a column on the right hand side of the screen which includes control
-buttons for \e focus (not initially visible), \e {capture}, \e {flash modes},
-\e {white balance}, \e {exposure compensation}, and if a preview is
-available a \e {preview} button. The last button exits from the application.
-
-When the Capture button is pressed the \e onClicked handler calls
-\l {Camera::captureImage()}{captureImage()}
-
-
-
-
-
-
+buttons for focus (not initially visible), capture, flash modes,
+white balance, exposure compensation, and if a preview is
+available, a preview button. The last button exits from the application.
*/
diff --git a/examples/multimedia/declarative-radio/doc/src/declarative-radio.qdoc b/examples/multimedia/declarative-radio/doc/src/declarative-radio.qdoc
index 99c41114a..bb1a5d89f 100644
--- a/examples/multimedia/declarative-radio/doc/src/declarative-radio.qdoc
+++ b/examples/multimedia/declarative-radio/doc/src/declarative-radio.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt Toolkit.
@@ -31,8 +31,8 @@
\brief Demonstrates the radio functionality
\ingroup multimedia_examples
- This examples uses the Qt Multimedia Radio QML type to list the available
- channels on the FM frequency.
-*/
-
+ This examples uses the \l{Qt Multimedia} \l Radio QML type to list the
+ available channels on the FM frequency.
+ \include examples-run.qdocinc
+*/
diff --git a/examples/multimedia/spectrum/doc/src/spectrum.qdoc b/examples/multimedia/spectrum/doc/src/spectrum.qdoc
index 280838956..3c846afdc 100644
--- a/examples/multimedia/spectrum/doc/src/spectrum.qdoc
+++ b/examples/multimedia/spectrum/doc/src/spectrum.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt Toolkit.
@@ -59,6 +59,6 @@
(FFT) of a segment of audio data. An open-source library,
\l{http://ldesoras.free.fr/prod.html}{FFTReal}, against which the
application is dynamically linked, is used to compute the transform.
-*/
-
+ \include examples-run.qdocinc
+*/
diff --git a/examples/multimedia/video/doc/images/qmlvideofx-camera-glow.jpg b/examples/multimedia/video/doc/images/qmlvideofx-camera-glow.jpg
new file mode 100644
index 000000000..777ed4ffc
--- /dev/null
+++ b/examples/multimedia/video/doc/images/qmlvideofx-camera-glow.jpg
Binary files differ
diff --git a/examples/multimedia/video/doc/images/qmlvideofx-camera-glow.png b/examples/multimedia/video/doc/images/qmlvideofx-camera-glow.png
deleted file mode 100644
index aca874b6c..000000000
--- a/examples/multimedia/video/doc/images/qmlvideofx-camera-glow.png
+++ /dev/null
Binary files differ
diff --git a/examples/multimedia/video/doc/images/qmlvideofx-camera-magnify.png b/examples/multimedia/video/doc/images/qmlvideofx-camera-magnify.png
deleted file mode 100644
index c3156ce96..000000000
--- a/examples/multimedia/video/doc/images/qmlvideofx-camera-magnify.png
+++ /dev/null
Binary files differ
diff --git a/examples/multimedia/video/doc/images/qmlvideofx-camera-wobble.jpg b/examples/multimedia/video/doc/images/qmlvideofx-camera-wobble.jpg
new file mode 100644
index 000000000..980ab0d15
--- /dev/null
+++ b/examples/multimedia/video/doc/images/qmlvideofx-camera-wobble.jpg
Binary files differ
diff --git a/examples/multimedia/video/doc/images/qmlvideofx-effects-menu.jpg b/examples/multimedia/video/doc/images/qmlvideofx-effects-menu.jpg
new file mode 100644
index 000000000..eb5b90321
--- /dev/null
+++ b/examples/multimedia/video/doc/images/qmlvideofx-effects-menu.jpg
Binary files differ
diff --git a/examples/multimedia/video/doc/images/qmlvideofx-effects-menu.png b/examples/multimedia/video/doc/images/qmlvideofx-effects-menu.png
deleted file mode 100644
index 507fd7384..000000000
--- a/examples/multimedia/video/doc/images/qmlvideofx-effects-menu.png
+++ /dev/null
Binary files differ
diff --git a/examples/multimedia/video/doc/images/qmlvideofx-source-menu.png b/examples/multimedia/video/doc/images/qmlvideofx-source-menu.png
deleted file mode 100644
index 661aaa73f..000000000
--- a/examples/multimedia/video/doc/images/qmlvideofx-source-menu.png
+++ /dev/null
Binary files differ
diff --git a/examples/multimedia/video/doc/images/qmlvideofx-video-edgedetection.jpg b/examples/multimedia/video/doc/images/qmlvideofx-video-edgedetection.jpg
new file mode 100644
index 000000000..35b36c036
--- /dev/null
+++ b/examples/multimedia/video/doc/images/qmlvideofx-video-edgedetection.jpg
Binary files differ
diff --git a/examples/multimedia/video/doc/images/qmlvideofx-video-edgedetection.png b/examples/multimedia/video/doc/images/qmlvideofx-video-edgedetection.png
deleted file mode 100644
index cedb314c5..000000000
--- a/examples/multimedia/video/doc/images/qmlvideofx-video-edgedetection.png
+++ /dev/null
Binary files differ
diff --git a/examples/multimedia/video/doc/images/qmlvideofx-video-pagecurl.jpg b/examples/multimedia/video/doc/images/qmlvideofx-video-pagecurl.jpg
new file mode 100644
index 000000000..5cd8d2bd2
--- /dev/null
+++ b/examples/multimedia/video/doc/images/qmlvideofx-video-pagecurl.jpg
Binary files differ
diff --git a/examples/multimedia/video/doc/images/qmlvideofx-video-pagecurl.png b/examples/multimedia/video/doc/images/qmlvideofx-video-pagecurl.png
deleted file mode 100644
index 5f5bdfb53..000000000
--- a/examples/multimedia/video/doc/images/qmlvideofx-video-pagecurl.png
+++ /dev/null
Binary files differ
diff --git a/examples/multimedia/video/doc/src/qmlvideo.qdoc b/examples/multimedia/video/doc/src/qmlvideo.qdoc
index 6d6833497..1e80cd176 100644
--- a/examples/multimedia/video/doc/src/qmlvideo.qdoc
+++ b/examples/multimedia/video/doc/src/qmlvideo.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt Toolkit.
@@ -34,8 +34,6 @@
resize; rotate; change aspect ratio) which can be applied to QML \l{VideoOutput}
items.
-\section1 Overview
-
This example demonstrates the various manipulations (move; resize; rotate;
change aspect ratio) which can be applied to QML \l{VideoOutput} items.
@@ -50,7 +48,9 @@ which moves across the \l{VideoOutput} item.
\image qmlvideo-overlay.png
-\section1 Application structure
+\include examples-run.qdocinc
+
+\section1 Application Structure
The \l{video/qmlvideo/qml/qmlvideo/main.qml} file creates a UI which includes
the following items:
@@ -127,7 +127,7 @@ instance, the embedded
\l{video/qmlvideo/qml/qmlvideo/Content.qml}{Content} item creates either a
\l{MediaPlayer} or a \l{Camera} item.
-\section1 Calculating and displaying QML painting rate
+\section1 Calculating and Displaying QML Painting Rate
\input multimedia/doc/src/examples/video-qml-paint-rate.qdocinc
@@ -145,4 +145,3 @@ object to a JavaScript function, which will eventually call frequencyItem.notify
\printuntil SLOT(qmlFramePainted()));
*/
-
diff --git a/examples/multimedia/video/doc/src/qmlvideofx.qdoc b/examples/multimedia/video/doc/src/qmlvideofx.qdoc
index b7bd78ac7..edbd369c0 100644
--- a/examples/multimedia/video/doc/src/qmlvideofx.qdoc
+++ b/examples/multimedia/video/doc/src/qmlvideofx.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt Toolkit.
@@ -34,9 +34,11 @@
can be used to apply postprocessing effects, expressed in \c GLSL, to video
and camera viewfinder content.
+\include examples-run.qdocinc
+
\section1 Overview
-This example shows how a \l {ShaderEffectItem} can be used to apply
+This example shows how a \l {ShaderEffect} can be used to apply
postprocessing effects, expressed in GLSL, to QML \l {VideoOutput} items.
It also shows how native code can be combined with QML to implement more
@@ -44,36 +46,30 @@ advanced functionality - in this case, C++ code is used to calculate the QML
frame rate. This value is rendered in QML in a semi-transparent item
overlaid on the video content.
-Finally, this application demonstrates the use of different top-level QML
-files to handle different physical screen sizes. On small-screen devices,
-menus are by default hidden, and only appear when summoned by a gesture.
-Large-screen devices show a more traditional layout in which menus are
-displayed around the video content pane.
-
The following screenshots show shader effects being applied. In each case,
the effect is implemented using a fragment shader.
Here we see an edge detection algorithm being applied to a video clip
-(\l{http://orange.blender.org/}{Elephant's Dream from blender.org}).
-\image qmlvideofx-video-edgedetection.png
+(\l{http://durian.blender.org/}{Sintel from blender.org}).
+\image qmlvideofx-video-edgedetection.jpg
This image shows a page curl effect, applied to the same video clip.
-\image qmlvideofx-video-pagecurl.png
+\image qmlvideofx-video-pagecurl.jpg
Here we see a 'glow' effect (edge detection plus colour quantization) being
applied to the camera viewfinder.
-\image qmlvideofx-camera-glow.png
+\image qmlvideofx-camera-glow.jpg
-This image shows a 'lens magnification' effect applied to the viewfinder.
-\image qmlvideofx-camera-magnify.png
+This image shows a 'wobble' effect applied to the viewfinder.
+\image qmlvideofx-camera-wobble.jpg
The application includes many more effects than the ones shown here - look
-for Effect*.qml files in the list above to see the full range.
+for Effect*.qml files in the list of files below to see the full range.
\section1 Application structure
Shader effects can be applied to video or viewfinder content using
-\l{ShaderEffectItem}, as shown in the following example, which applies
+\l{ShaderEffect}, as shown in the following example, which applies
a wiggly effect to the content:
\code
@@ -171,7 +167,7 @@ is based on the \l{ShaderEffect}:
\skipto import
\printuntil /^\}/
-The interface of the \l Effect allows for derived effects to specify the
+The interface of Effect allows for derived effects to specify the
number of parameters which they support (and therefore the number of sliders
which should be displayed), and whether a vertical dividing line should be drawn
between transformed and untransformed image regions. As an example, here is the
@@ -195,11 +191,8 @@ vertical dividing line, which can be dragged left / right by the user. Finally,
a \l{video/qmlvideofx/qml/qmlvideofx/ParameterPanel.qml}{ParameterPanel} item
renders the sliders corresponding to each effect parameter.
-Here is the source selection menu:
-\image qmlvideofx-source-menu.png
-
-And here is the effect selection menu:
-\image qmlvideofx-effects-menu.png
+Here is the effect selection menu:
+\image qmlvideofx-effects-menu.jpg
\section1 Calculating and displaying QML painting rate
@@ -219,4 +212,3 @@ object to a JavaScript function, which will eventually call frequencyItem.notify
\printuntil SLOT(qmlFramePainted()));
*/
-
diff --git a/examples/multimedia/video/qmlvideo/qml/qmlvideo/DisableScreenSaver.qml b/examples/multimedia/video/qmlvideo/qml/qmlvideo/DisableScreenSaver.qml
index efc657cfc..01ed95e8a 100644
--- a/examples/multimedia/video/qmlvideo/qml/qmlvideo/DisableScreenSaver.qml
+++ b/examples/multimedia/video/qmlvideo/qml/qmlvideo/DisableScreenSaver.qml
@@ -41,6 +41,7 @@
import QtQuick 2.0
import QtSystemInfo 5.0
+// NOTE: The QtSystemInfo module is not yet part of Qt 5
Item {
ScreenSaver {
diff --git a/examples/multimedia/video/qmlvideofx/Info.plist b/examples/multimedia/video/qmlvideofx/Info.plist
new file mode 100644
index 000000000..8fc242516
--- /dev/null
+++ b/examples/multimedia/video/qmlvideofx/Info.plist
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>UISupportedInterfaceOrientations</key>
+ <array>
+ <string>UIInterfaceOrientationLandscapeRight</string>
+ </array>
+ <key>UIInterfaceOrientation</key>
+ <string>UIInterfaceOrientationLandscapeRight</string>
+ <key>CFBundleIconFile</key>
+ <string></string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleExecutable</key>
+ <string>qmlvideofx</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.digia.${PRODUCT_NAME:rfc1034identifier}</string>
+ <key>CFBundleDisplayName</key>
+ <string>${PRODUCT_NAME}</string>
+ <key>CFBundleName</key>
+ <string>${PRODUCT_NAME}</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+</dict>
+</plist>
diff --git a/examples/multimedia/video/qmlvideofx/android/AndroidManifest.xml b/examples/multimedia/video/qmlvideofx/android/AndroidManifest.xml
new file mode 100644
index 000000000..0612d484c
--- /dev/null
+++ b/examples/multimedia/video/qmlvideofx/android/AndroidManifest.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<manifest package="org.qtproject.example.qmlvideofx" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="1.0" android:versionCode="1" android:installLocation="auto">
+ <application android:hardwareAccelerated="true" android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="@string/app_name">
+ <activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|locale|fontScale|keyboard|keyboardHidden|navigation" android:name="org.qtproject.qt5.android.bindings.QtActivity" android:label="@string/app_name" android:screenOrientation="landscape" android:launchMode="singleTop">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN"/>
+ <category android:name="android.intent.category.LAUNCHER"/>
+ </intent-filter>
+ <meta-data android:name="android.app.lib_name" android:value="-- %%INSERT_APP_LIB_NAME%% --"/>
+ <meta-data android:name="android.app.qt_sources_resource_id" android:resource="@array/qt_sources"/>
+ <meta-data android:name="android.app.repository" android:value="default"/>
+ <meta-data android:name="android.app.qt_libs_resource_id" android:resource="@array/qt_libs"/>
+ <meta-data android:name="android.app.bundled_libs_resource_id" android:resource="@array/bundled_libs"/>
+ <!-- Deploy Qt libs as part of package -->
+ <meta-data android:name="android.app.bundle_local_qt_libs" android:value="-- %%BUNDLE_LOCAL_QT_LIBS%% --"/>
+ <meta-data android:name="android.app.bundled_in_lib_resource_id" android:resource="@array/bundled_in_lib"/>
+ <meta-data android:name="android.app.bundled_in_assets_resource_id" android:resource="@array/bundled_in_assets"/>
+ <!-- Run with local libs -->
+ <meta-data android:name="android.app.use_local_qt_libs" android:value="-- %%USE_LOCAL_QT_LIBS%% --"/>
+ <meta-data android:name="android.app.libs_prefix" android:value="/data/local/tmp/qt/"/>
+ <meta-data android:name="android.app.load_local_libs" android:value="-- %%INSERT_LOCAL_LIBS%% --"/>
+ <meta-data android:name="android.app.load_local_jars" android:value="-- %%INSERT_LOCAL_JARS%% --"/>
+ <meta-data android:name="android.app.static_init_classes" android:value="-- %%INSERT_INIT_CLASSES%% --"/>
+ <!-- Messages maps -->
+ <meta-data android:value="@string/ministro_not_found_msg" android:name="android.app.ministro_not_found_msg"/>
+ <meta-data android:value="@string/ministro_needed_msg" android:name="android.app.ministro_needed_msg"/>
+ <meta-data android:value="@string/fatal_error_msg" android:name="android.app.fatal_error_msg"/>
+ <!-- Messages maps -->
+
+ <!-- Splash screen -->
+ <!--
+ <meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/logo"/>
+ -->
+ <!-- Splash screen -->
+ </activity>
+ </application>
+ <uses-sdk android:minSdkVersion="11" android:targetSdkVersion="14"/>
+ <supports-screens android:largeScreens="true" android:normalScreens="true" android:anyDensity="true" android:smallScreens="true"/>
+
+ <!-- The following comment will be replaced upon deployment with default permissions based on the dependencies of the application.
+ Remove the comment if you do not require these default permissions. -->
+ <!-- %%INSERT_PERMISSIONS -->
+
+ <!-- The following comment will be replaced upon deployment with default features based on the dependencies of the application.
+ Remove the comment if you do not require these default features. -->
+ <!-- %%INSERT_FEATURES -->
+
+</manifest>
diff --git a/examples/multimedia/video/qmlvideofx/images/Dropdown_arrows.png b/examples/multimedia/video/qmlvideofx/images/Dropdown_arrows.png
new file mode 100644
index 000000000..0a9e25ce2
--- /dev/null
+++ b/examples/multimedia/video/qmlvideofx/images/Dropdown_arrows.png
Binary files differ
diff --git a/examples/multimedia/video/qmlvideofx/images/Slider_bar.png b/examples/multimedia/video/qmlvideofx/images/Slider_bar.png
new file mode 100644
index 000000000..84be50fae
--- /dev/null
+++ b/examples/multimedia/video/qmlvideofx/images/Slider_bar.png
Binary files differ
diff --git a/examples/multimedia/video/qmlvideofx/images/Slider_handle.png b/examples/multimedia/video/qmlvideofx/images/Slider_handle.png
new file mode 100644
index 000000000..aebecdf19
--- /dev/null
+++ b/examples/multimedia/video/qmlvideofx/images/Slider_handle.png
Binary files differ
diff --git a/examples/multimedia/video/qmlvideofx/images/Triangle_Top.png b/examples/multimedia/video/qmlvideofx/images/Triangle_Top.png
new file mode 100644
index 000000000..5768e9536
--- /dev/null
+++ b/examples/multimedia/video/qmlvideofx/images/Triangle_Top.png
Binary files differ
diff --git a/examples/multimedia/video/qmlvideofx/images/Triangle_bottom.png b/examples/multimedia/video/qmlvideofx/images/Triangle_bottom.png
new file mode 100644
index 000000000..509409666
--- /dev/null
+++ b/examples/multimedia/video/qmlvideofx/images/Triangle_bottom.png
Binary files differ
diff --git a/examples/multimedia/video/qmlvideofx/images/close.png b/examples/multimedia/video/qmlvideofx/images/close.png
deleted file mode 100644
index 6904df0e4..000000000
--- a/examples/multimedia/video/qmlvideofx/images/close.png
+++ /dev/null
Binary files differ
diff --git a/examples/multimedia/video/qmlvideofx/images/folder.png b/examples/multimedia/video/qmlvideofx/images/folder.png
deleted file mode 100644
index e53e2ad46..000000000
--- a/examples/multimedia/video/qmlvideofx/images/folder.png
+++ /dev/null
Binary files differ
diff --git a/examples/multimedia/video/qmlvideofx/images/icon_BackArrow.png b/examples/multimedia/video/qmlvideofx/images/icon_BackArrow.png
new file mode 100644
index 000000000..6823de004
--- /dev/null
+++ b/examples/multimedia/video/qmlvideofx/images/icon_BackArrow.png
Binary files differ
diff --git a/examples/multimedia/video/qmlvideofx/images/icon_Folder.png b/examples/multimedia/video/qmlvideofx/images/icon_Folder.png
new file mode 100644
index 000000000..62d97004f
--- /dev/null
+++ b/examples/multimedia/video/qmlvideofx/images/icon_Folder.png
Binary files differ
diff --git a/examples/multimedia/video/qmlvideofx/images/icon_Menu.png b/examples/multimedia/video/qmlvideofx/images/icon_Menu.png
new file mode 100644
index 000000000..bc078612e
--- /dev/null
+++ b/examples/multimedia/video/qmlvideofx/images/icon_Menu.png
Binary files differ
diff --git a/examples/multimedia/video/qmlvideofx/images/titlebar.png b/examples/multimedia/video/qmlvideofx/images/titlebar.png
deleted file mode 100644
index 51c90082d..000000000
--- a/examples/multimedia/video/qmlvideofx/images/titlebar.png
+++ /dev/null
Binary files differ
diff --git a/examples/multimedia/video/qmlvideofx/images/titlebar.sci b/examples/multimedia/video/qmlvideofx/images/titlebar.sci
deleted file mode 100644
index 0418d94cd..000000000
--- a/examples/multimedia/video/qmlvideofx/images/titlebar.sci
+++ /dev/null
@@ -1,5 +0,0 @@
-border.left: 10
-border.top: 12
-border.bottom: 12
-border.right: 10
-source: titlebar.png
diff --git a/examples/multimedia/video/qmlvideofx/images/up.png b/examples/multimedia/video/qmlvideofx/images/up.png
deleted file mode 100644
index b05f8025d..000000000
--- a/examples/multimedia/video/qmlvideofx/images/up.png
+++ /dev/null
Binary files differ
diff --git a/examples/multimedia/video/qmlvideofx/main.cpp b/examples/multimedia/video/qmlvideofx/main.cpp
index 7465deab8..1b09f7aa4 100644
--- a/examples/multimedia/video/qmlvideofx/main.cpp
+++ b/examples/multimedia/video/qmlvideofx/main.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the Qt Mobility Components.
@@ -48,12 +48,6 @@
#include "filereader.h"
#include "trace.h"
-#ifdef SMALL_SCREEN_LAYOUT
- static const QLatin1String MainQmlFile("main-smallscreen.qml");
-#else
- static const QLatin1String MainQmlFile("main-largescreen.qml");
-#endif
-
#ifdef PERFORMANCEMONITOR_SUPPORT
#include "performancemonitordeclarative.h"
#endif
@@ -99,7 +93,7 @@ int main(int argc, char *argv[])
QQuickView viewer;
- viewer.setSource(QLatin1String("qrc:///qml/qmlvideofx/") + MainQmlFile);
+ viewer.setSource(QUrl(QLatin1String("qrc:///qml/qmlvideofx/Main.qml")));
QQuickItem *rootObject = viewer.rootObject();
rootObject->setProperty("fileName", fileName);
viewer.rootObject()->setProperty("volume", volume);
@@ -128,13 +122,10 @@ int main(int argc, char *argv[])
viewer.setTitle("qmlvideofx");
viewer.setFlags(Qt::Window | Qt::WindowSystemMenuHint | Qt::WindowTitleHint |
Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint);
- viewer.setMinimumSize(QSize(600, 400));
+ viewer.setMinimumSize(QSize(1280, 720));
+ viewer.setResizeMode(QQuickView::SizeRootObjectToView);
-#ifdef SMALL_SCREEN_PHYSICAL
- viewer.showFullScreen();
-#else
viewer.show();
-#endif
// Delay invocation of init until the event loop has started, to work around
// a GL context issue on Harmattan: without this, we get the following error
diff --git a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/Button.qml b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/Button.qml
index eb82aceed..203352832 100644
--- a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/Button.qml
+++ b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/Button.qml
@@ -43,29 +43,32 @@ import QtQuick 2.0
Rectangle {
id: root
- color: textColor
- radius: 0.25 * height
+ color: "transparent"
+ height: itemHeight
+ width: itemWidth
property string text
- property color bgColor: "white"
- property color bgColorSelected: "red"
- property color textColor: "black"
+ property color bgColor: "transparent"
+ property color bgColorSelected: "#14aaff"
+ property color textColor: "white"
property alias enabled: mouseArea.enabled
+ property bool active: true
+ property alias horizontalAlign: text.horizontalAlignment
signal clicked
Rectangle {
anchors { fill: parent; margins: 1 }
color: mouseArea.pressed ? bgColorSelected : bgColor
- radius: 0.25 * height
Text {
id: text
- anchors.centerIn: parent
+ clip: true
text: root.text
- font.pixelSize: 0.5 * parent.height
- color: mouseArea.pressed ? bgColor : textColor
- horizontalAlignment: Text.AlignHCenter
+ anchors { fill: parent; margins: scaledMargin }
+ font.pixelSize: fontSize
+ color: textColor
+ horizontalAlignment: Text.AlignLeft
verticalAlignment: Text.AlignVCenter
}
@@ -75,6 +78,7 @@ Rectangle {
onClicked: {
root.clicked()
}
+ enabled: active
}
}
}
diff --git a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/Content.qml b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/Content.qml
index d3a2e9f42..72b7cca7e 100644
--- a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/Content.qml
+++ b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/Content.qml
@@ -39,11 +39,10 @@
**
****************************************************************************/
-import QtQuick 2.0
+import QtQuick 2.1
Rectangle {
id: root
- color: "black"
property alias effect: effectLoader.item
property alias gripSize: divider.gripSize
property string effectSource
diff --git a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/ContentImage.qml b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/ContentImage.qml
index 0fa047bb1..2bce20bf0 100644
--- a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/ContentImage.qml
+++ b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/ContentImage.qml
@@ -39,7 +39,7 @@
**
****************************************************************************/
-import QtQuick 2.0
+import QtQuick 2.1
Image {
fillMode: Image.PreserveAspectFit
diff --git a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/ContentVideo.qml b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/ContentVideo.qml
index be09f7ea5..6491ceff2 100644
--- a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/ContentVideo.qml
+++ b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/ContentVideo.qml
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the Qt Mobility Components.
@@ -39,13 +39,14 @@
**
****************************************************************************/
-import QtQuick 2.0
+import QtQuick 2.1
import QtMultimedia 5.0
VideoOutput {
source: mediaPlayer
property alias mediaSource: mediaPlayer.source
property alias volume: mediaPlayer.volume
+ property bool isRunning: true
MediaPlayer {
id: mediaPlayer
@@ -55,5 +56,21 @@ VideoOutput {
}
function play() { mediaPlayer.play() }
+ function pause() { mediaPlayer.pause() }
function stop() { mediaPlayer.stop() }
+
+ function toggleplay() {
+ if (isRunning) {
+ pause()
+ isRunning = false
+ } else {
+ play()
+ isRunning = true
+ }
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: toggleplay()
+ }
}
diff --git a/examples/multimedia/video/qmlvideofx/shaders/sobeledgedetection2.fsh b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/Curtain.qml
index 039a567d2..253e3c397 100644
--- a/examples/multimedia/video/qmlvideofx/shaders/sobeledgedetection2.fsh
+++ b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/Curtain.qml
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the Qt Mobility Components.
@@ -39,39 +39,56 @@
**
****************************************************************************/
-// Based on http://rastergrid.com/blog/downloads/frei-chen-edge-detector/
+import QtQuick 2.0
-#version 130
-uniform sampler2D source;
-uniform float dividerValue;
-uniform float weight;
-mat3 G[2] = mat3[](
- mat3( 1.0, 2.0, 1.0, 0.0, 0.0, 0.0, -1.0, -2.0, -1.0 ),
- mat3( 1.0, 0.0, -1.0, 2.0, 0.0, -2.0, 1.0, 0.0, -1.0 )
-);
-uniform lowp float qt_Opacity;
-in vec2 qt_TexCoord0;
-out vec4 FragmentColor;
-void main() {
- vec2 uv = qt_TexCoord0.xy;
- vec4 c = vec4(0.0);
- if (uv.x < dividerValue) {
- mat3 intensity;
- float conv[2];
- vec3 sample;
- for (int i=0; i<3; ++i) {
- for (int j=0; j<3; ++j) {
- sample = texelFetch(source, ivec2(gl_FragCoord) + ivec2(i-1, j-1), 0).rgb;
- intensity[i][j] = length(sample) * weight;
- }
+Rectangle {
+ id: root
+ color: "transparent"
+ radius: 5
+ property alias value: grip.value
+ property color gripColor: "transparent"
+ property real gripSize: 20
+ property real gripTolerance: 3.0
+ property real increment: 0.1
+ property bool enabled: true
+ property string imageSource: "qrc:/images/Triangle_Top.png"
+
+ Rectangle {
+ id: grip
+ property real value: 0.5
+ x: (value * parent.width) - width/2
+ anchors.verticalCenter: parent.verticalCenter
+ width: root.gripTolerance * root.gripSize
+ height: width
+ radius: width/2
+ color: "transparent"
+
+ Image {
+ id: sliderhandleimage
+ source: imageSource
+ anchors.centerIn: parent
}
- for (int i=0; i<2; ++i) {
- float dp3 = dot(G[i][0], intensity[0]) + dot(G[i][1], intensity[1]) + dot(G[i][2], intensity[2]);
- conv[i] = dp3 * dp3;
+
+ MouseArea {
+ id: mouseArea
+ enabled: root.enabled
+ anchors.fill: parent
+ drag {
+ target: grip
+ axis: Drag.XAxis
+ minimumX: -parent.width/2
+ maximumX: root.width - parent.width/2
+ }
+ onPositionChanged: {
+ if (drag.active)
+ updatePosition()
+ }
+ onReleased: {
+ updatePosition()
+ }
+ function updatePosition() {
+ value = (grip.x + grip.width/2) / grip.parent.width
+ }
}
- c = vec4(0.5 * sqrt(conv[0]*conv[0] + conv[1]*conv[1]));
- } else {
- c = texture2D(source, qt_TexCoord0);
}
- FragmentColor = qt_Opacity * c;
}
diff --git a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/DisableScreenSaver.qml b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/DisableScreenSaver.qml
index f36b2b14f..362386bc4 100644
--- a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/DisableScreenSaver.qml
+++ b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/DisableScreenSaver.qml
@@ -41,6 +41,7 @@
import QtQuick 2.0
import QtMobility.systeminfo 1.1
+// NOTE: The QtSystemInfo module is not yet part of Qt 5
Item {
ScreenSaver {
diff --git a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/Divider.qml b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/Divider.qml
index 390818bbc..45c2606f9 100644
--- a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/Divider.qml
+++ b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/Divider.qml
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the Qt Mobility Components.
@@ -39,7 +39,7 @@
**
****************************************************************************/
-import QtQuick 2.0
+import QtQuick 2.1
Rectangle {
id: root
@@ -53,21 +53,34 @@ Rectangle {
id: line
anchors { top: parent.top; bottom: parent.bottom }
x: parent.value * parent.width - (width / 2)
- width: 2
- color: "red"
+ width: 4
+ color: "#14aaff"
}
- Slider {
+ // topgrip
+ Curtain {
id: slider
increment: 0.0
- lineColor: "transparent"
- fillColor: "transparent"
- gripColor: "red"
anchors {
top: parent.top
- topMargin: gripSize / 2
+ topMargin: (gripSize / 2) + 5
left: parent.left
right: parent.right
}
+ onValueChanged: slider2.value = slider.value
+ }
+
+ // bottomgrip
+ Curtain {
+ id: slider2
+ increment: 0.0
+ anchors {
+ bottom: parent.bottom
+ bottomMargin: (gripSize / 2) + 5
+ left: parent.left
+ right: parent.right
+ }
+ imageSource: "qrc:/images/Triangle_bottom.png"
+ onValueChanged: slider.value = slider2.value
}
}
diff --git a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectBillboard.qml b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectBillboard.qml
index 4e3adc3e2..1e2077246 100644
--- a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectBillboard.qml
+++ b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectBillboard.qml
@@ -44,7 +44,7 @@ import QtQuick 2.0
Effect {
parameters: ListModel {
ListElement {
- name: "grid spacing"
+ name: "Grid Spacing"
value: 0.5
}
}
diff --git a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectBlackAndWhite.qml b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectBlackAndWhite.qml
index 5e37c70ce..85f2abc7d 100644
--- a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectBlackAndWhite.qml
+++ b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectBlackAndWhite.qml
@@ -44,7 +44,7 @@ import QtQuick 2.0
Effect {
parameters: ListModel {
ListElement {
- name: "threshold"
+ name: "Threshold"
value: 0.5
}
}
diff --git a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectGaussianBlur.qml b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectGaussianBlur.qml
index 00fab0448..f0cad5288 100644
--- a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectGaussianBlur.qml
+++ b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectGaussianBlur.qml
@@ -49,7 +49,7 @@ Item {
property real dividerValue: 0.5
property ListModel parameters: ListModel {
ListElement {
- name: "radius"
+ name: "Radius"
value: 0.5
}
}
diff --git a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectIsolate.qml b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectIsolate.qml
index f3650419c..80c7ccaed 100644
--- a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectIsolate.qml
+++ b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectIsolate.qml
@@ -44,11 +44,11 @@ import QtQuick 2.0
Effect {
parameters: ListModel {
ListElement {
- name: "hue"
+ name: "Hue"
value: 0.5
}
ListElement {
- name: "width"
+ name: "Width"
value: 0.5
}
}
diff --git a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectMagnify.qml b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectMagnify.qml
index d93e72c9e..3fd35eaae 100644
--- a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectMagnify.qml
+++ b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectMagnify.qml
@@ -46,11 +46,11 @@ Effect {
divider: false
parameters: ListModel {
ListElement {
- name: "radius"
+ name: "Radius"
value: 0.5
}
ListElement {
- name: "diffraction"
+ name: "Diffraction"
value: 0.5
}
}
diff --git a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectPageCurl.qml b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectPageCurl.qml
index e4fc1f78f..c035b9b62 100644
--- a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectPageCurl.qml
+++ b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectPageCurl.qml
@@ -45,7 +45,7 @@ Effect {
divider: false
parameters: ListModel {
ListElement {
- name: "extent"
+ name: "Extent"
value: 0.5
}
}
diff --git a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectPixelate.qml b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectPixelate.qml
index 002a74a46..7a0f21984 100644
--- a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectPixelate.qml
+++ b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectPixelate.qml
@@ -44,7 +44,7 @@ import QtQuick 2.0
Effect {
parameters: ListModel {
ListElement {
- name: "granularity"
+ name: "Granularity"
value: 0.5
}
}
diff --git a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectPosterize.qml b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectPosterize.qml
index bda473764..084b28c17 100644
--- a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectPosterize.qml
+++ b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectPosterize.qml
@@ -44,7 +44,7 @@ import QtQuick 2.0
Effect {
parameters: ListModel {
ListElement {
- name: "gamma"
+ name: "Gamma"
value: 0.5
}
}
diff --git a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectRipple.qml b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectRipple.qml
index 7932b4c12..e0a2b0227 100644
--- a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectRipple.qml
+++ b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectRipple.qml
@@ -44,11 +44,11 @@ import QtQuick 2.0
Effect {
parameters: ListModel {
ListElement {
- name: "amplitude"
+ name: "Amplitude"
value: 0.5
}
ListElement {
- name: "frequency"
+ name: "Frequency"
value: 0.5
}
}
diff --git a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectSobelEdgeDetection2.qml b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectSelectionList.qml
index 33336537f..fa92bb7ca 100644
--- a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectSobelEdgeDetection2.qml
+++ b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectSelectionList.qml
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the Qt Mobility Components.
@@ -41,16 +41,27 @@
import QtQuick 2.0
-Effect {
- parameters: ListModel {
- ListElement {
- name: "threshold"
- value: 0.5
- }
- }
-
- // Transform slider values, and bind result to shader uniforms
- property real weight: parameters.get(0).value
-
- fragmentShaderFilename: "sobeledgedetection2.fsh"
+ListModel {
+ id: sources
+ ListElement { name: "No effect"; source: "EffectPassThrough.qml" }
+ ListElement { name: "Billboard"; source: "EffectBillboard.qml" }
+ ListElement { name: "Black & white"; source: "EffectBlackAndWhite.qml" }
+ ListElement { name: "Blur"; source: "EffectGaussianBlur.qml" }
+ ListElement { name: "Edge detection"; source: "EffectSobelEdgeDetection1.qml" }
+ ListElement { name: "Emboss"; source: "EffectEmboss.qml" }
+ ListElement { name: "Glow"; source: "EffectGlow.qml" }
+ ListElement { name: "Isolate"; source: "EffectIsolate.qml" }
+ //ListElement { name: "Magnify"; source: "EffectMagnify.qml" }
+ ListElement { name: "Page curl"; source: "EffectPageCurl.qml" }
+ ListElement { name: "Pixelate"; source: "EffectPixelate.qml" }
+ ListElement { name: "Posterize"; source: "EffectPosterize.qml" }
+ ListElement { name: "Ripple"; source: "EffectRipple.qml" }
+ ListElement { name: "Sepia"; source: "EffectSepia.qml" }
+ ListElement { name: "Sharpen"; source: "EffectSharpen.qml" }
+ ListElement { name: "Shockwave"; source: "EffectShockwave.qml" }
+ ListElement { name: "Tilt shift"; source: "EffectTiltShift.qml" }
+ ListElement { name: "Toon"; source: "EffectToon.qml" }
+ ListElement { name: "Warhol"; source: "EffectWarhol.qml" }
+ ListElement { name: "Wobble"; source: "EffectWobble.qml" }
+ ListElement { name: "Vignette"; source: "EffectVignette.qml" }
}
diff --git a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectSelectionPanel.qml b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectSelectionPanel.qml
deleted file mode 100644
index 948a4e888..000000000
--- a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectSelectionPanel.qml
+++ /dev/null
@@ -1,154 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt Mobility Components.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-import QtQuick 2.0
-
-Rectangle {
- id: root
- property int itemHeight: 25
- property string effectSource: ""
-
- signal clicked
-
- QtObject {
- id: d
- property Item selectedItem
- }
-
- ListModel {
- id: sources
- ListElement { name: "No effect"; source: "EffectPassThrough.qml" }
- ListElement { name: "Billboard"; source: "EffectBillboard.qml" }
- ListElement { name: "Black & white"; source: "EffectBlackAndWhite.qml" }
- ListElement { name: "Blur"; source: "EffectGaussianBlur.qml" }
- ListElement { name: "Edge detection"; source: "EffectSobelEdgeDetection1.qml" }
- //ListElement { name: "Edge detection (Sobel, #2)"; source: "EffectSobelEdgeDetection2.qml" }
- ListElement { name: "Emboss"; source: "EffectEmboss.qml" }
- ListElement { name: "Glow"; source: "EffectGlow.qml" }
- ListElement { name: "Isolate"; source: "EffectIsolate.qml" }
- ListElement { name: "Magnify"; source: "EffectMagnify.qml" }
- ListElement { name: "Page curl"; source: "EffectPageCurl.qml" }
- ListElement { name: "Pixelate"; source: "EffectPixelate.qml" }
- ListElement { name: "Posterize"; source: "EffectPosterize.qml" }
- ListElement { name: "Ripple"; source: "EffectRipple.qml" }
- ListElement { name: "Sepia"; source: "EffectSepia.qml" }
- ListElement { name: "Sharpen"; source: "EffectSharpen.qml" }
- ListElement { name: "Shockwave"; source: "EffectShockwave.qml" }
- ListElement { name: "Tilt shift"; source: "EffectTiltShift.qml" }
- ListElement { name: "Toon"; source: "EffectToon.qml" }
- ListElement { name: "Warhol"; source: "EffectWarhol.qml" }
- ListElement { name: "Wobble"; source: "EffectWobble.qml" }
- ListElement { name: "Vignette"; source: "EffectVignette.qml" }
- }
-
- Component {
- id: sourceDelegate
- Item {
- id: sourceDelegateItem
- width: root.width
- height: itemHeight
-
- Button {
- id: sourceSelectorItem
- anchors.centerIn: parent
- width: 0.9 * parent.width
- height: 0.8 * itemHeight
- text: name
- onClicked: {
- if (d.selectedItem)
- d.selectedItem.state = "baseState"
- d.selectedItem = sourceDelegateItem
- d.selectedItem.state = "selected"
- effectSource = source
- root.clicked()
- }
- }
-
- states: [
- State {
- name: "selected"
- PropertyChanges {
- target: sourceSelectorItem
- bgColor: "#ff8888"
- }
- }
- ]
-
- Component.onCompleted: {
- if (name == "No effect") {
- state = "selected"
- d.selectedItem = sourceDelegateItem
- }
- }
-
- transitions: [
- Transition {
- from: "*"
- to: "*"
- ColorAnimation {
- properties: "color"
- easing.type: Easing.OutQuart
- duration: 500
- }
- }
- ]
- }
- }
-
- Flickable {
- anchors.fill: parent
- contentHeight: (itemHeight * sources.count) + layout.anchors.topMargin + layout.spacing
- clip: true
-
- Column {
- id: layout
-
- anchors {
- fill: parent
- topMargin: 10
- }
-
- Repeater {
- model: sources
- delegate: sourceDelegate
- }
- }
- }
-}
diff --git a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectSharpen.qml b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectSharpen.qml
index 25215980d..f59544dc9 100644
--- a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectSharpen.qml
+++ b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectSharpen.qml
@@ -44,7 +44,7 @@ import QtQuick 2.0
Effect {
parameters: ListModel {
ListElement {
- name: "sharpness"
+ name: "Sharpness"
value: 0.5
}
}
diff --git a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectShockwave.qml b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectShockwave.qml
index 0e1b1785f..746445b46 100644
--- a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectShockwave.qml
+++ b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectShockwave.qml
@@ -45,7 +45,7 @@ Effect {
id: root
parameters: ListModel {
ListElement {
- name: "amplitude"
+ name: "Amplitude"
value: 0.5
}
}
diff --git a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectSobelEdgeDetection1.qml b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectSobelEdgeDetection1.qml
index 6724a8449..7b03dbfdb 100644
--- a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectSobelEdgeDetection1.qml
+++ b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectSobelEdgeDetection1.qml
@@ -44,7 +44,7 @@ import QtQuick 2.0
Effect {
parameters: ListModel {
ListElement {
- name: "threshold"
+ name: "Threshold"
value: 0.5
}
}
diff --git a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectToon.qml b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectToon.qml
index ff985e563..ecba40623 100644
--- a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectToon.qml
+++ b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectToon.qml
@@ -44,7 +44,7 @@ import QtQuick 2.0
Effect {
parameters: ListModel {
ListElement {
- name: "threshold"
+ name: "Threshold"
value: 0.5
}
}
diff --git a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectWobble.qml b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectWobble.qml
index 97e7c061c..aa07c1a68 100644
--- a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectWobble.qml
+++ b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectWobble.qml
@@ -44,7 +44,7 @@ import QtQuick 2.0
Effect {
parameters: ListModel {
ListElement {
- name: "amplitude"
+ name: "Amplitude"
value: 0.5
}
}
diff --git a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/FileBrowser.qml b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/FileBrowser.qml
index 7c8610361..c75b6f255 100644
--- a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/FileBrowser.qml
+++ b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/FileBrowser.qml
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the Qt Mobility Components.
@@ -39,12 +39,13 @@
**
****************************************************************************/
-import QtQuick 2.0
-import Qt.labs.folderlistmodel 2.0
+import QtQuick 2.1
+import Qt.labs.folderlistmodel 2.1
Rectangle {
id: fileBrowser
color: "transparent"
+ z: 4
property string folder
property bool shown: loader.sourceComponent
@@ -75,12 +76,12 @@ Rectangle {
Rectangle {
id: root
- color: "white"
+ color: "black"
property bool showFocusHighlight: false
property variant folders: folders1
property variant view: view1
property alias folder: folders1.folder
- property color textColor: "black"
+ property color textColor: "white"
FolderListModel {
id: folders1
@@ -112,7 +113,7 @@ Rectangle {
fileBrowser.selectFile(path)
}
width: root.width
- height: 52
+ height: itemHeight
color: "transparent"
Rectangle {
@@ -126,10 +127,12 @@ Rectangle {
}
Item {
- width: 48; height: 48
+ width: itemHeight; height: itemHeight
Image {
- source: "qrc:/images/folder.png"
- anchors.centerIn: parent
+ source: "qrc:/images/icon_Folder.png"
+ fillMode: Image.PreserveAspectFit
+ anchors.fill: parent
+ anchors.margins: scaledMargin
visible: folders.isFolder(index)
}
}
@@ -138,8 +141,8 @@ Rectangle {
id: nameText
anchors.fill: parent; verticalAlignment: Text.AlignVCenter
text: fileName
- anchors.leftMargin: 54
- font.pixelSize: 32
+ anchors.leftMargin: itemHeight + scaledMargin
+ font.pixelSize: fontSize
color: (wrapper.ListView.isCurrentItem && root.showFocusHighlight) ? palette.highlightedText : textColor
elide: Text.ElideRight
}
@@ -262,56 +265,45 @@ Rectangle {
Keys.onPressed: root.keyPressed(event.key)
}
- Rectangle {
+ Button {
id: cancelButton
- width: 100
- height: titleBar.height - 7
- color: "black"
- anchors { bottom: parent.bottom; horizontalCenter: parent.horizontalCenter }
-
- Text {
- anchors { fill: parent; margins: 4 }
- text: "Cancel"
- color: "white"
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- font.pixelSize: 20
- }
-
- MouseArea {
- anchors.fill: parent
- onClicked: fileBrowser.selectFile("")
- }
+ width: itemWidth
+ height: itemHeight
+ color: "#353535"
+ anchors { bottom: parent.bottom; right: parent.right; margins: 5 * scaledMargin }
+ text: "Cancel"
+ horizontalAlign: Text.AlignHCenter
+ onClicked: fileBrowser.selectFile("")
}
Keys.onPressed: {
root.keyPressed(event.key);
- if (event.key == Qt.Key_Return || event.key == Qt.Key_Select || event.key == Qt.Key_Right) {
+ if (event.key === Qt.Key_Return || event.key === Qt.Key_Select || event.key === Qt.Key_Right) {
view.currentItem.launch();
event.accepted = true;
- } else if (event.key == Qt.Key_Left) {
+ } else if (event.key === Qt.Key_Left) {
up();
}
}
- BorderImage {
- source: "qrc:/images/titlebar.sci";
+ // titlebar
+ Rectangle {
+ color: "black"
width: parent.width;
- height: 52
- y: -7
+ height: itemHeight
id: titleBar
Rectangle {
id: upButton
- width: 48
- height: titleBar.height - 7
+ width: titleBar.height
+ height: titleBar.height
color: "transparent"
- Image { anchors.centerIn: parent; source: "qrc:/images/up.png" }
- MouseArea { id: upRegion; anchors.centerIn: parent
- width: 56
- height: 56
- onClicked: up()
- }
+ anchors.left: parent.left
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.margins: scaledMargin
+
+ Image { anchors.fill: parent; anchors.margins: scaledMargin; source: "qrc:/images/icon_BackArrow.png" }
+ MouseArea { id: upRegion; anchors.fill: parent; onClicked: up() }
states: [
State {
name: "pressed"
@@ -321,23 +313,23 @@ Rectangle {
]
}
- Rectangle {
- color: "gray"
- x: 48
- width: 1
- height: 44
- }
-
Text {
anchors.left: upButton.right; anchors.right: parent.right; height: parent.height
- anchors.leftMargin: 4; anchors.rightMargin: 4
+ anchors.leftMargin: 10; anchors.rightMargin: 4
text: folders.folder
color: "white"
- elide: Text.ElideLeft; horizontalAlignment: Text.AlignRight; verticalAlignment: Text.AlignVCenter
- font.pixelSize: 32
+ elide: Text.ElideLeft; horizontalAlignment: Text.AlignLeft; verticalAlignment: Text.AlignVCenter
+ font.pixelSize: fontSize
}
}
+ Rectangle {
+ color: "#353535"
+ width: parent.width
+ height: 1
+ anchors.top: titleBar.bottom
+ }
+
function down(path) {
if (folders == folders1) {
view = view2
diff --git a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/FileOpen.qml b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/FileOpen.qml
index 716f4165b..a4de2cbb9 100644
--- a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/FileOpen.qml
+++ b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/FileOpen.qml
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the Qt Mobility Components.
@@ -39,56 +39,115 @@
**
****************************************************************************/
-import QtQuick 2.0
+import QtQuick 2.1
Rectangle {
id: root
- color: "white"
- property int buttonHeight: 35
- property int topMargin: 0
-
+ color: "#151515"
+ signal openCamera
signal openImage
signal openVideo
- signal openCamera
signal close
+
Rectangle {
+ id: menuField
+ height: itemHeight
+ width: itemHeight
+ color: "transparent"
+ anchors.right: parent.right
+ Image {
+ id: menu
+ source: "qrc:///images/icon_Menu.png"
+ anchors {
+ right: parent.right
+ top: parent.top
+ margins: scaledMargin
+ }
+ }
+ MouseArea {
+ anchors.fill: parent
+ onClicked: fileOpen.state == "expanded" ? fileOpen.state = "collapsed" : fileOpen.state = "expanded"
+ }
+ }
+
+ Column {
anchors {
- top: parent.top;
- topMargin: root.topMargin
- bottom: parent.bottom;
- horizontalCenter: parent.horizontalCenter
+ top: menuField.bottom
+ right: parent.right
+ left: parent.left
+ bottom: parent.bottom
+ topMargin: 10
}
- width: 0.9 * parent.width
- color: "transparent"
- Column {
- anchors.fill: parent
- spacing: 5
- Button {
- text: "Open image"
- height: buttonHeight
- width: parent.width
- onClicked: root.openImage()
+ spacing: 10
+ visible: fileOpen.state == "expanded"
+
+ Rectangle {
+ width: 0.9 * parent.width
+ height: 1
+ color: "#353535"
+ anchors.left: parent.left
+ }
+ Button {
+ text: "Start camera"
+ height: itemHeight
+ width: parent.width
+ onClicked: {
+ fileOpen.state = "collapsed"
+ root.openCamera()
}
- Button {
- text: "Open video"
- height: buttonHeight
- width: parent.width
- onClicked: root.openVideo()
+ }
+ Rectangle {
+ width: 0.9 * parent.width
+ height: 1
+ color: "#353535"
+ anchors.left: parent.left
+ }
+ Button {
+ text: "Open image"
+ height: itemHeight
+ width: parent.width
+ onClicked: {
+ fileOpen.state = "collapsed"
+ root.openImage()
}
- Button {
- text: "Start camera"
- height: buttonHeight
- width: parent.width
- onClicked: root.openCamera()
+ }
+ Rectangle {
+ width: 0.9 * parent.width
+ height: 1
+ color: "#353535"
+ anchors.left: parent.left
+ }
+ Button {
+ text: "Open video"
+ height: itemHeight
+ width: parent.width
+ onClicked: {
+ fileOpen.state = "collapsed"
+ root.openVideo()
}
- Button {
- text: "Reset"
- height: buttonHeight
- width: parent.width
- onClicked: root.close()
+ }
+ Rectangle {
+ width: 0.9 * parent.width
+ height: 1
+ color: "#353535"
+ anchors.left: parent.left
+ }
+ Button {
+ text: "Reset"
+ height: itemHeight
+ width: parent.width
+ onClicked: {
+ fileOpen.state = "collapsed"
+ root.close()
}
}
+ Rectangle {
+ width: 0.9 * parent.width
+ height: 1
+ color: "#353535"
+ anchors.left: parent.left
+ }
}
}
diff --git a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/Main.qml b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/Main.qml
new file mode 100644
index 000000000..e39eeafd7
--- /dev/null
+++ b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/Main.qml
@@ -0,0 +1,293 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.1
+import QtQuick.Window 2.1
+
+Rectangle {
+ id: root
+ color: "black"
+ property string fileName
+ property alias volume: content.volume
+ property bool perfMonitorsLogging: false
+ property bool perfMonitorsVisible: false
+ property int pixDens: Math.ceil(Screen.pixelDensity)
+ property int itemWidth: 25 * pixDens
+ property int itemHeight: 10 * pixDens
+ property int windowWidth: Screen.desktopAvailableWidth
+ property int windowHeight: Screen.desktopAvailableHeight
+ property int scaledMargin: 2 * pixDens
+ property int fontSize: 5 * pixDens
+
+ QtObject {
+ id: d
+ property real gripSize: 20
+ }
+
+ Content {
+ id: content
+ color: "transparent"
+ anchors {
+ top: parent.top
+ left: parent.left
+ right: parent.right
+ bottom: parameterPanel.top
+ margins: scaledMargin
+ leftMargin: scaledMargin + itemHeight
+ }
+ gripSize: d.gripSize
+ }
+
+ ParameterPanel {
+ id: parameterPanel
+ anchors {
+ left: parent.left
+ right: effectName.left
+ bottom: parent.bottom
+ margins: scaledMargin
+ leftMargin: scaledMargin + itemHeight
+ }
+ gripSize: d.gripSize
+ height: root.itemHeight * 2.5
+ width: root.itemWidth * 3
+ }
+
+ Button {
+ id: effectName
+ anchors {
+ right: parent.right
+ bottom: perfHolder.top
+ margins: scaledMargin
+ }
+
+ text: "No effect"
+ width: itemWidth * 2
+ height: itemHeight
+ onClicked: {
+ effectName.visible = false
+ listview.visible = true
+ lvbg.visible = true
+ }
+ color: "#303030"
+ }
+
+ Rectangle {
+ id: lvbg
+ width: itemWidth * 2
+ color: "black"
+ opacity: 0.8
+ visible: false
+
+ anchors {
+ right: parent.right
+ bottom: perfHolder.top
+ top: parent.top
+ margins: scaledMargin
+ }
+
+ ListView {
+ id: listview
+ width: itemWidth * 2
+ anchors.fill: parent
+ visible: false
+
+ model: EffectSelectionList {}
+ delegate: effectDelegate
+
+ clip: true
+ focus: true
+
+ Component {
+ id: effectDelegate
+ Button {
+ text: name
+ width: itemWidth * 2
+ onClicked: {
+ content.effectSource = source
+ listview.visible = false
+ lvbg.visible = false
+ effectName.text = name
+ effectName.visible = true
+ parameterPanel.model = content.effect.parameters
+
+ }
+ }
+ }
+ }
+ }
+
+ Rectangle {
+ id: perfHolder
+ color: "transparent"
+ anchors {
+ right: parent.right
+ bottom: parent.bottom
+ margins: scaledMargin
+ }
+ height: root.itemHeight * 1.5
+ width: root.itemWidth
+
+ Loader {
+ id: performanceLoader
+ function init() {
+ console.log("[qmlvideofx] performanceLoader.init logging " + root.perfMonitorsLogging + " visible " + root.perfMonitorsVisible)
+ var enabled = root.perfMonitorsLogging || root.perfMonitorsVisible
+ source = enabled ? "../performancemonitor/PerformanceItem.qml" : ""
+ }
+ onLoaded: {
+ item.parent = perfHolder
+ item.anchors.top = perfHolder.top
+ item.anchors.bottom = perfHolder.bottom
+ item.anchors.left = perfHolder.left
+ item.anchors.right = perfHolder.right
+ item.logging = root.perfMonitorsLogging
+ item.displayed = root.perfMonitorsVisible
+ item.init()
+ }
+ }
+ }
+
+ FileOpen {
+ id: fileOpen
+ state: "collapsed"
+ anchors {
+ left: parent.left
+ top: parent.top
+ bottom: parent.bottom
+ margins: scaledMargin
+ }
+ width: itemHeight + scaledMargin
+ z: 2
+ opacity: 0.9
+
+ states: [
+ State {
+ name: "expanded"
+ PropertyChanges {
+ target: fileOpen
+ width: itemWidth * 1.5
+ opacity: 0.8
+ }
+ },
+ State {
+ name: "collapsed"
+ PropertyChanges {
+ target: fileOpen
+ width: itemHeight + scaledMargin
+ opacity: 0.9
+ }
+ }
+ ]
+
+ transitions: [
+ Transition {
+ NumberAnimation { target: fileOpen; property: "width"; duration: 100 }
+ NumberAnimation { target: fileOpen; property: "opacity"; duration: 100 }
+ }
+ ]
+ }
+
+ FileBrowser {
+ id: imageFileBrowser
+ anchors.fill: root
+ Component.onCompleted: fileSelected.connect(content.openImage)
+ }
+
+ FileBrowser {
+ id: videoFileBrowser
+ anchors.fill: root
+ Component.onCompleted: fileSelected.connect(content.openVideo)
+ }
+
+ Component.onCompleted: {
+ fileOpen.openImage.connect(openImage)
+ fileOpen.openVideo.connect(openVideo)
+ fileOpen.openCamera.connect(openCamera)
+ fileOpen.close.connect(close)
+ }
+
+ function init() {
+ if (Qt.platform.os === "linux" || Qt.platform.os === "windows" || Qt.platform.os === "osx" || Qt.platform.os === "unix") {
+ if (Screen.desktopAvailableWidth > 1280) {
+ windowWidth = 1280
+ }
+ if (Screen.desktopAvailableHeight > 720) {
+ windowHeight = 720
+ }
+ }
+
+ height = windowHeight
+ width = windowWidth
+
+ console.log("[qmlvideofx] root.init")
+ console.log("Height: ", Screen.desktopAvailableHeight)
+ console.log("Width: ", Screen.desktopAvailableWidth)
+ console.log("Pixels per mm: ", Math.ceil(Screen.pixelDensity))
+ console.log("Orientation: ", Screen.orientation)
+ imageFileBrowser.folder = imagePath
+ videoFileBrowser.folder = videoPath
+ content.init()
+ performanceLoader.init()
+ if (fileName != "")
+ content.openVideo(fileName)
+ }
+
+ function qmlFramePainted() {
+ if (performanceLoader.item)
+ performanceLoader.item.qmlFramePainted()
+ }
+
+ function openImage() {
+ imageFileBrowser.show()
+ }
+
+ function openVideo() {
+ videoFileBrowser.show()
+ }
+
+ function openCamera() {
+ content.openCamera()
+ }
+
+ function close() {
+ content.init()
+ }
+}
diff --git a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/ParameterPanel.qml b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/ParameterPanel.qml
index 83c0d4c8d..aa4315c9d 100644
--- a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/ParameterPanel.qml
+++ b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/ParameterPanel.qml
@@ -47,17 +47,12 @@ Rectangle {
height: view.model.count * sliderHeight
property color lineColor: "black"
property real gripSize: 25
- property real spacing: 10
- property real sliderHeight: 40
+ property real spacing: 20
+ property real sliderHeight: 60
property ListModel model: ListModel { }
- Rectangle {
- anchors.fill: parent
- color: "black"
- opacity: 0.5
- radius: 10
- }
+ anchors.topMargin: 10
Component {
id: editDelegate
@@ -77,10 +72,10 @@ Rectangle {
bottom: parent.bottom
left: parent.left
}
- font.pixelSize: 0.5 * parent.height
+ font.pixelSize: fontSize
horizontalAlignment: Text.AlignRight
verticalAlignment: Text.AlignVCenter
- width: 150
+ width: 8 * fontSize
}
Slider {
diff --git a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/Slider.qml b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/Slider.qml
index c12537022..97b52c87b 100644
--- a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/Slider.qml
+++ b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/Slider.qml
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the Qt Mobility Components.
@@ -39,91 +39,84 @@
**
****************************************************************************/
-import QtQuick 2.0
+import QtQuick 2.1
Rectangle {
id: root
color: "transparent"
radius: 5
property alias value: grip.value
- property color fillColor: "white"
- property color lineColor: "black"
- property color gripColor: "white"
- property real gripSize: 20
+ property color fillColor: "#14aaff"
+ property real gripSize: 40
property real gripTolerance: 3.0
property real increment: 0.1
property bool enabled: true
Rectangle {
- anchors { left: parent.left; right: parent.right; verticalCenter: parent.verticalCenter }
- height: 3
- color: displayedColor(root.lineColor)
+ id: slider
+ anchors {
+ left: parent.left
+ right: parent.right
+ verticalCenter: parent.verticalCenter
+ }
+ height: 10
+ color: "transparent"
+ BorderImage {
+ id: sliderbarimage
+ source: "qrc:/images/Slider_bar.png"
+ anchors { fill: parent; margins: 1 }
+ border.right: 5
+ border.left: 5
+ }
Rectangle {
- anchors { fill: parent; margins: 1 }
+ height: parent.height -2
+ anchors.left: parent.left
+ anchors.right: grip.horizontalCenter
color: root.fillColor
+ radius: 3
+ border.width: 1
+ border.color: Qt.darker(color, 1.3)
+ opacity: 0.8
}
- }
+ Rectangle {
+ id: grip
+ property real value: 0.5
+ x: (value * parent.width) - width/2
+ anchors.verticalCenter: parent.verticalCenter
+ width: root.gripTolerance * root.gripSize
+ height: width
+ radius: width/2
+ color: "transparent"
- MouseArea {
- anchors.fill: parent
- enabled: root.enabled
- onClicked: {
- if (parent.width) {
- var newValue = mouse.x / parent.width
- if (Math.abs(newValue - parent.value) > parent.increment) {
- if (newValue > parent.value)
- parent.value = Math.min(1.0, parent.value + parent.increment)
- else
- parent.value = Math.max(0.0, parent.value - parent.increment)
- }
+ Image {
+ id: sliderhandleimage
+ source: "qrc:/images/Slider_handle.png"
+ anchors.centerIn: parent
}
- }
- }
-
- Rectangle {
- id: grip
- property real value: 0.5
- x: (value * parent.width) - width/2
- anchors.verticalCenter: parent.verticalCenter
- width: root.gripTolerance * root.gripSize
- height: width
- radius: width/2
- color: "transparent"
- MouseArea {
- id: mouseArea
- enabled: root.enabled
- anchors.fill: parent
- drag {
- target: grip
- axis: Drag.XAxis
- minimumX: -parent.width/2
- maximumX: root.width - parent.width/2
- }
- onPositionChanged: {
- if (drag.active)
+ MouseArea {
+ id: mouseArea
+ enabled: root.enabled
+ anchors.fill: parent
+ drag {
+ target: grip
+ axis: Drag.XAxis
+ minimumX: -parent.width/2
+ maximumX: root.width - parent.width/2
+ }
+ onPositionChanged: {
+ if (drag.active)
+ updatePosition()
+ }
+ onReleased: {
updatePosition()
- }
- onReleased: {
- updatePosition()
- }
- function updatePosition() {
- value = (grip.x + grip.width/2) / grip.parent.width
+ }
+ function updatePosition() {
+ value = (grip.x + grip.width/2) / slider.width
+ }
}
}
- Rectangle {
- anchors.centerIn: parent
- width: root.gripSize
- height: width
- radius: width/2
- color: root.gripColor
- }
- }
-
- function displayedColor(c) {
- var tint = Qt.rgba(c.r, c.g, c.b, 0.25)
- return enabled ? c : Qt.tint(c, tint)
}
}
diff --git a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/main-largescreen.qml b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/main-largescreen.qml
deleted file mode 100644
index 63a0a01ac..000000000
--- a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/main-largescreen.qml
+++ /dev/null
@@ -1,186 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt Mobility Components.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Rectangle {
- id: root
- width: 900
- height: 600
- color: "grey"
- property string fileName
- property alias volume: content.volume
- property bool perfMonitorsLogging: false
- property bool perfMonitorsVisible: false
-
- QtObject {
- id: d
- property real gripSize: 20
- }
-
- Rectangle {
- id: inner
- anchors.fill: parent
- color: "grey"
-
- Content {
- id: content
- anchors {
- top: parent.top
- bottom: parent.bottom
- left: parent.left
- right: effectSelectionPanel.left
- margins: 5
- }
- gripSize: d.gripSize
- width: 600
- height: 600
- }
-
- Loader {
- id: performanceLoader
- function init() {
- console.log("[qmlvideofx] performanceLoader.init logging " + root.perfMonitorsLogging + " visible " + root.perfMonitorsVisible)
- var enabled = root.perfMonitorsLogging || root.perfMonitorsVisible
- source = enabled ? "../performancemonitor/PerformanceItem.qml" : ""
- }
- onLoaded: {
- item.parent = content
- item.anchors.top = content.top
- item.anchors.left = content.left
- item.anchors.right = content.right
- item.logging = root.perfMonitorsLogging
- item.displayed = root.perfMonitorsVisible
- item.init()
- }
- }
-
- ParameterPanel {
- id: parameterPanel
- anchors {
- left: parent.left
- bottom: parent.bottom
- right: effectSelectionPanel.left
- margins: 20
- }
- gripSize: d.gripSize
- }
-
- EffectSelectionPanel {
- id: effectSelectionPanel
- anchors {
- top: parent.top
- bottom: fileOpen.top
- right: parent.right
- margins: 5
- }
- width: 300
- itemHeight: 40
- onEffectSourceChanged: {
- content.effectSource = effectSource
- parameterPanel.model = content.effect.parameters
- }
- }
-
- FileOpen {
- id: fileOpen
- anchors {
- right: parent.right
- bottom: parent.bottom
- margins: 5
- }
- width: effectSelectionPanel.width
- height: 165
- buttonHeight: 32
- topMargin: 10
- }
- }
-
- FileBrowser {
- id: imageFileBrowser
- anchors.fill: root
- Component.onCompleted: fileSelected.connect(content.openImage)
- }
-
- FileBrowser {
- id: videoFileBrowser
- anchors.fill: root
- Component.onCompleted: fileSelected.connect(content.openVideo)
- }
-
- Component.onCompleted: {
- fileOpen.openImage.connect(openImage)
- fileOpen.openVideo.connect(openVideo)
- fileOpen.openCamera.connect(openCamera)
- fileOpen.close.connect(close)
- }
-
- function init() {
- console.log("[qmlvideofx] main.init")
- imageFileBrowser.folder = imagePath
- videoFileBrowser.folder = videoPath
- content.init()
- performanceLoader.init()
- if (fileName != "")
- content.openVideo(fileName)
- }
-
- function qmlFramePainted() {
- if (performanceLoader.item)
- performanceLoader.item.qmlFramePainted()
- }
-
- function openImage() {
- imageFileBrowser.show()
- }
-
- function openVideo() {
- videoFileBrowser.show()
- }
-
- function openCamera() {
- content.openCamera()
- }
-
- function close() {
- content.openImage("qrc:/images/qt-logo.png")
- }
-}
diff --git a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/main-smallscreen.qml b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/main-smallscreen.qml
deleted file mode 100644
index f715dc8c1..000000000
--- a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/main-smallscreen.qml
+++ /dev/null
@@ -1,408 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt Mobility Components.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Rectangle {
- id: root
- width: 640
- height: 360
- color: "grey"
- property string fileName
- property alias volume: content.volume
- property bool perfMonitorsLogging: false
- property bool perfMonitorsVisible: false
-
- QtObject {
- id: d
- property bool dialogShown: (fileOpenContainer.state == "shown" ||
- effectSelectionPanel.state == "shown" ||
- videoFileBrowser.shown ||
- imageFileBrowser.shown)
- property real gripSize: 40
- }
-
- // Create ScreenSaver element via Loader, so this app will still run if the
- // SystemInfo module is not available
- Loader {
- source: "DisableScreenSaver.qml"
- }
-
- Loader {
- id: performanceLoader
-
- Connections {
- target: d
- onDialogShownChanged:
- if (performanceLoader.item)
- performanceLoader.item.enabled = !d.dialogShown
- ignoreUnknownSignals: true
- }
-
- function init() {
- console.log("[qmlvideofx] performanceLoader.init logging " + root.perfMonitorsLogging + " visible " + root.perfMonitorsVisible)
- var enabled = root.perfMonitorsLogging || root.perfMonitorsVisible
- source = enabled ? "../performancemonitor/PerformanceItem.qml" : ""
- }
-
- onLoaded: {
- item.parent = root
- item.anchors.top = root.top
- item.anchors.left = root.left
- item.logging = root.perfMonitorsLogging
- item.displayed = root.perfMonitorsVisible
- item.init()
- }
- }
-
- Rectangle {
- id: inner
- anchors.fill: parent
- color: "grey"
-
- Content {
- id: content
- anchors.fill: parent
- gripSize: d.gripSize
- onVideoFramePainted: performanceLoader.item.videoFramePainted()
- }
-
- ParameterPanel {
- id: parameterPanel
- anchors {
- left: parent.left;
- right: parent.right;
- margins: 10
- }
- y: parent.height
- gripSize: d.gripSize
-
- states: [
- State {
- name: "shown"
- PropertyChanges {
- target: parameterPanel
- y: parent.height - (parameterPanel.height + 10)
- }
- }
- ]
-
- transitions: [
- Transition {
- from: "*"
- to: "*"
- NumberAnimation {
- properties: "y"
- easing.type: Easing.OutQuart
- duration: 500
- }
- }
- ]
-
- state: (enabled && !d.dialogShown) ? "shown" : "baseState"
- }
-
- EffectSelectionPanel {
- id: effectSelectionPanel
- anchors {
- top: parent.top;
- bottom: parameterPanel.top;
- margins: 10
- }
- x: parent.width
- width: parent.width - 40
- opacity: 0.75
- radius: 20
- itemHeight: 50
-
- states: [
- State {
- name: "shown"
- PropertyChanges {
- target: effectSelectionPanel
- x: 20
- }
- }
- ]
-
- transitions: [
- Transition {
- from: "*"
- to: "*"
- NumberAnimation {
- properties: "x"
- easing.type: Easing.OutQuart
- duration: 500
- }
- }
- ]
-
- onEffectSourceChanged: {
- content.effectSource = effectSource
- if (content.effect.parameters.count) {
- parameterPanel.model = content.effect.parameters
- parameterPanel.enabled = true
- } else {
- parameterPanel.enabled = false
- }
- }
-
- onClicked: state = "baseState"
- }
-
- Rectangle {
- id: fileOpenContainer
- anchors {
- top: parent.top
- bottom: parameterPanel.top
- margins: 10
- }
- x: -width
- width: parent.width - 40
- color: "transparent"
-
- Column {
- anchors.fill: parent
-
- FileOpen {
- id: fileOpen
- color: "transparent"
- width: parent.width
- height: 200
- opacity: 0.75
- radius: 20
- buttonHeight: 40
- }
-
- MouseArea {
- width: parent.width
- height: 250
- onClicked: fileOpenContainer.state = "baseState"
- }
- }
-
- states: [
- State {
- name: "shown"
- PropertyChanges {
- target: fileOpenContainer
- x: 20
- }
- }
- ]
-
- transitions: [
- Transition {
- from: "*"
- to: "*"
- NumberAnimation {
- properties: "x"
- easing.type: Easing.OutQuart
- duration: 500
- }
- }
- ]
- }
-
- Rectangle {
- id: splashScreen
- anchors {
- horizontalCenter: parent.horizontalCenter
- verticalCenter: parent.verticalCenter
- }
- width: 300
- height: 200
- radius: 0.1 * height
- color: "white"
- opacity: 0.9
- border { color: "black"; width: 2 }
-
- Text {
- anchors {
- fill: parent
- margins: 5
- }
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- font.pixelSize: 24
- text: "Tap on left side to switch between sources.\n\nTap on right side to switch between effects."
- wrapMode: Text.WordWrap
- }
-
- MouseArea {
- anchors.fill: parent
- onClicked: parent.state = "hidden"
- }
-
- states: [
- State {
- name: "hidden"
- PropertyChanges {
- target: splashScreen
- opacity: 0.0
- }
- }
- ]
-
- transitions: [
- Transition {
- from: "*"
- to: "*"
- NumberAnimation {
- properties: "opacity"
- easing.type: Easing.OutQuart
- duration: 500
- }
- }
- ]
- }
-
- HintedMouseArea {
- id: fileOpenMouseArea
- anchors {
- left: parent.left;
- top: parent.top;
- bottom: parameterPanel.top;
- topMargin: 75
- }
- width: 100
- onClicked: {
- fileOpenMouseArea.hintEnabled = false
- effectSelectionPanelMouseArea.hintEnabled = false
- splashScreen.state = "hidden"
- fileOpenContainer.state = "shown"
- }
- enabled: !d.dialogShown
- }
-
- HintedMouseArea {
- id: effectSelectionPanelMouseArea
- anchors {
- right: parent.right;
- top: parent.top;
- bottom: parameterPanel.top;
- topMargin: 75
- }
- width: 100
- onClicked: {
- fileOpenMouseArea.hintEnabled = false
- effectSelectionPanelMouseArea.hintEnabled = false
- splashScreen.state = "hidden"
- effectSelectionPanel.state = "shown"
- }
- enabled: !d.dialogShown
- }
-
- Image {
- source: "qrc:/images/close.png"
-
- anchors {
- top: parent.top
- right: parent.right
- margins: 5
- }
-
- MouseArea {
- anchors.fill: parent
- onClicked: Qt.quit()
- }
- }
- }
-
- Component.onCompleted: {
- fileOpen.openImage.connect(openImage)
- fileOpen.openVideo.connect(openVideo)
- fileOpen.openCamera.connect(openCamera)
- fileOpen.close.connect(close)
- }
-
- FileBrowser {
- id: imageFileBrowser
- anchors.fill: root
- Component.onCompleted: fileSelected.connect(content.openImage)
- }
-
- FileBrowser {
- id: videoFileBrowser
- anchors.fill: root
- Component.onCompleted: fileSelected.connect(content.openVideo)
- }
-
- // Called from main() once root properties have been set
- function init() {
- console.log("[qmlvideofx] main.init")
- imageFileBrowser.folder = imagePath
- videoFileBrowser.folder = videoPath
- content.init()
- performanceLoader.init()
- if (fileName != "") {
- fileOpenMouseArea.hintEnabled = false
- effectSelectionPanelMouseArea.hintEnabled = false
- splashScreen.state = "hidden"
- content.openVideo(fileName)
- }
- }
-
- function qmlFramePainted() {
- if (performanceLoader.item)
- performanceLoader.item.qmlFramePainted()
- }
-
- function openImage() {
- fileOpenContainer.state = "baseState"
- imageFileBrowser.show()
- }
-
- function openVideo() {
- fileOpenContainer.state = "baseState"
- videoFileBrowser.show()
- }
-
- function openCamera() {
- fileOpenContainer.state = "baseState"
- content.openCamera()
- }
-
- function close() {
- fileOpenContainer.state = "baseState"
- content.openImage("qrc:/images/qt-logo.png")
- }
-}
diff --git a/examples/multimedia/video/qmlvideofx/qmlvideofx.pro b/examples/multimedia/video/qmlvideofx/qmlvideofx.pro
index 563444903..e9633954c 100644
--- a/examples/multimedia/video/qmlvideofx/qmlvideofx.pro
+++ b/examples/multimedia/video/qmlvideofx/qmlvideofx.pro
@@ -10,10 +10,12 @@ RESOURCES += qmlvideofx.qrc
include($$PWD/../snippets/performancemonitor/performancemonitordeclarative.pri)
-maemo6: {
- DEFINES += SMALL_SCREEN_LAYOUT
- DEFINES += SMALL_SCREEN_PHYSICAL
-}
-
target.path = $$[QT_INSTALL_EXAMPLES]/multimedia/video/qmlvideofx
INSTALLS += target
+
+ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android
+
+OTHER_FILES += \
+ android/AndroidManifest.xml
+
+QMAKE_INFO_PLIST = Info.plist
diff --git a/examples/multimedia/video/qmlvideofx/qmlvideofx.qrc b/examples/multimedia/video/qmlvideofx/qmlvideofx.qrc
index 93cb4f1f5..e7a361246 100644
--- a/examples/multimedia/video/qmlvideofx/qmlvideofx.qrc
+++ b/examples/multimedia/video/qmlvideofx/qmlvideofx.qrc
@@ -1,10 +1,5 @@
<RCC>
<qresource prefix="/">
- <file>images/close.png</file>
- <file>images/folder.png</file>
- <file>images/titlebar.png</file>
- <file>images/titlebar.sci</file>
- <file>images/up.png</file>
<file>images/qt-logo.png</file>
<file>qml/qmlvideofx/Button.qml</file>
<file>qml/qmlvideofx/Content.qml</file>
@@ -26,12 +21,10 @@
<file>qml/qmlvideofx/EffectPixelate.qml</file>
<file>qml/qmlvideofx/EffectPosterize.qml</file>
<file>qml/qmlvideofx/EffectRipple.qml</file>
- <file>qml/qmlvideofx/EffectSelectionPanel.qml</file>
<file>qml/qmlvideofx/EffectSepia.qml</file>
<file>qml/qmlvideofx/EffectSharpen.qml</file>
<file>qml/qmlvideofx/EffectShockwave.qml</file>
<file>qml/qmlvideofx/EffectSobelEdgeDetection1.qml</file>
- <file>qml/qmlvideofx/EffectSobelEdgeDetection2.qml</file>
<file>qml/qmlvideofx/EffectTiltShift.qml</file>
<file>qml/qmlvideofx/EffectToon.qml</file>
<file>qml/qmlvideofx/EffectVignette.qml</file>
@@ -40,8 +33,6 @@
<file>qml/qmlvideofx/FileBrowser.qml</file>
<file>qml/qmlvideofx/FileOpen.qml</file>
<file>qml/qmlvideofx/HintedMouseArea.qml</file>
- <file>qml/qmlvideofx/main-largescreen.qml</file>
- <file>qml/qmlvideofx/main-smallscreen.qml</file>
<file>qml/qmlvideofx/ParameterPanel.qml</file>
<file>qml/qmlvideofx/Slider.qml</file>
<file>shaders/billboard.fsh</file>
@@ -61,11 +52,21 @@
<file>shaders/sharpen.fsh</file>
<file>shaders/shockwave.fsh</file>
<file>shaders/sobeledgedetection1.fsh</file>
- <file>shaders/sobeledgedetection2.fsh</file>
<file>shaders/tiltshift.fsh</file>
<file>shaders/toon.fsh</file>
<file>shaders/vignette.fsh</file>
<file>shaders/warhol.fsh</file>
<file>shaders/wobble.fsh</file>
+ <file>images/Slider_handle.png</file>
+ <file>images/Slider_bar.png</file>
+ <file>qml/qmlvideofx/Curtain.qml</file>
+ <file>images/Triangle_bottom.png</file>
+ <file>images/Triangle_Top.png</file>
+ <file>images/Dropdown_arrows.png</file>
+ <file>images/icon_Folder.png</file>
+ <file>images/icon_BackArrow.png</file>
+ <file>qml/qmlvideofx/Main.qml</file>
+ <file>images/icon_Menu.png</file>
+ <file>qml/qmlvideofx/EffectSelectionList.qml</file>
</qresource>
</RCC>
diff --git a/examples/multimediawidgets/camera/doc/src/camera.qdoc b/examples/multimediawidgets/camera/doc/src/camera.qdoc
index d1a855d4e..5f6683484 100644
--- a/examples/multimediawidgets/camera/doc/src/camera.qdoc
+++ b/examples/multimediawidgets/camera/doc/src/camera.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt Toolkit.
@@ -35,10 +35,12 @@
\brief The Camera Example shows how to use the API to capture a still image
or video.
-The Camera Example demonstrates how you can use Qt Multimedia to implement
+The Camera Example demonstrates how you can use \l{Qt Multimedia} to implement
some basic Camera functionality to take still images and record video clips
with audio.
+\include examples-run.qdocinc
+
A Camera class is created that will act as our Camera. It has a user interface,
control functions, setting values and a means of defining the location where
the image or video clip is to be saved. It will also store the image and video
@@ -74,5 +76,3 @@ is started with a call to \l {QMediaRecorder::record()}.
\image camera-example.png
*/
-
-
diff --git a/examples/multimediawidgets/player/doc/src/player.qdoc b/examples/multimediawidgets/player/doc/src/player.qdoc
index 2dfb7c3d0..29121dce4 100644
--- a/examples/multimediawidgets/player/doc/src/player.qdoc
+++ b/examples/multimediawidgets/player/doc/src/player.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt Toolkit.
@@ -34,6 +34,8 @@
This example creates a simple multimedia player. We can play audio and
or video files using various codecs.
+ \include examples-run.qdocinc
+
The example uses a QMediaPlayer object passed into a QVideoWidget to
control the video output. To give the application playlist capability
we also use a QPlayList object.
@@ -93,4 +95,3 @@
\endcode
*/
-
diff --git a/examples/multimediawidgets/videographicsitem/doc/src/videographicsitem.qdoc b/examples/multimediawidgets/videographicsitem/doc/src/videographicsitem.qdoc
index 3ccdba5f5..1e392ce8c 100644
--- a/examples/multimediawidgets/videographicsitem/doc/src/videographicsitem.qdoc
+++ b/examples/multimediawidgets/videographicsitem/doc/src/videographicsitem.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt Toolkit.
@@ -32,9 +32,11 @@
\brief This example demonstrates how to stream video on a graphics scene.
The Video Graphics Item example shows how to implement a QGraphicsItem that displays video on a
- graphics scene using Qt Multimedia's QAbstractVideoSurface.
+ graphics scene using \l{Qt Multimedia}'s QAbstractVideoSurface.
\image video-videographicsitem.png
\sa {Video Widget Example}
+
+ \include examples-run.qdocinc
*/
diff --git a/examples/multimediawidgets/videowidget/doc/src/videowidget.qdoc b/examples/multimediawidgets/videowidget/doc/src/videowidget.qdoc
index 805a830bc..6b93a3c19 100644
--- a/examples/multimediawidgets/videowidget/doc/src/videowidget.qdoc
+++ b/examples/multimediawidgets/videowidget/doc/src/videowidget.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt Toolkit.
@@ -32,7 +32,9 @@
\brief This example is a simple video player
The Video Widget example denonstrates how to implement a video widget using
- Qt Multimedia's QAbstractVideoSurface.
+ \l{Qt Multimedia}'s QAbstractVideoSurface.
\image video-videowidget.png
+
+ \include examples-run.qdocinc
*/