[vlc-devel] [RESEND] [PATCH] Qt: Enable Stop Time in media convert dialog
Filip Roséen
filip at atch.se
Thu Oct 27 12:04:45 CEST 2016
Hi Rajeesh,
On 2016-08-29 20:39, Rajeesh K V wrote:
> Convert/Save dialog has had option to specify 'start time' but
> no option for setting 'stop time' in the interface. The backend
> 'stop-time' option was already present. This patch simply adds
> and enables the edit widget for end time in Qt interface.
> ---
> modules/gui/qt/dialogs/open.cpp | 10 ++++++++++
> modules/gui/qt/ui/open.ui | 33 +++++++++++++++++++++++++++++++++
> 2 files changed, 43 insertions(+)
>
> diff --git a/modules/gui/qt/dialogs/open.cpp b/modules/gui/qt/dialogs/open.cpp
> index 224cfa5..a894d8c 100644
> --- a/modules/gui/qt/dialogs/open.cpp
> +++ b/modules/gui/qt/dialogs/open.cpp
> @@ -156,6 +156,7 @@ OpenDialog::OpenDialog( QWidget *parent,
> CONNECT( ui.slaveText, textChanged( const QString& ), this, updateMRL() );
> CONNECT( ui.cacheSpinBox, valueChanged( int ), this, updateMRL() );
> CONNECT( ui.startTimeTimeEdit, timeChanged ( const QTime& ), this, updateMRL() );
> + CONNECT( ui.stopTimeTimeEdit, timeChanged ( const QTime& ), this, updateMRL() );
> BUTTONACT( ui.advancedCheckBox, toggleAdvancedPanel() );
> BUTTONACT( ui.slaveBrowseButton, browseInputSlave() );
>
> @@ -179,6 +180,7 @@ OpenDialog::OpenDialog( QWidget *parent,
>
> /* enforce section due to .ui bug */
> ui.startTimeTimeEdit->setCurrentSection( QDateTimeEdit::SecondSection );
> + ui.stopTimeTimeEdit->setCurrentSection( QDateTimeEdit::SecondSection );
>
> setMinimumSize( sizeHint() );
> setMaximumWidth( 900 );
> @@ -443,6 +445,14 @@ void OpenDialog::updateMRL() {
> ) ) )
> .arg( ui.startTimeTimeEdit->time().msec(), 3, 10, QChar('0') );
> }
> + if( ui.stopTimeTimeEdit->time() > ui.startTimeTimeEdit->time() ) {
> + mrl += QString( " :stop-time=%1.%2" )
> + .arg( QString::number(
> + ui.stopTimeTimeEdit->minimumTime().secsTo(
> + ui.stopTimeTimeEdit->time()
> + ) ) )
> + .arg( ui.stopTimeTimeEdit->time().msec(), 3, 10, QChar('0') );
> + }
This could be written a lot simpler by updating the *format-string* so
that you are generating the *string-representation* of a
*floating-point* with the value of `QTime::msecsTo` divided by `1000`.
Remember that you can specify the number of decimals, as well as
padding, directly in the *format-string*; there's no explicit need to
do this by hand.
I reckon you are basing your implementation on what is done for
`:start-time`, so if you fix your implementation - you could refactor
`:start-time` at the same time.
> ui.advancedLineInput->setText( mrl );
> ui.mrlLine->setText( itemsMRL.join( " " ) );
> /* Only allow action without valid items */
> diff --git a/modules/gui/qt/ui/open.ui b/modules/gui/qt/ui/open.ui
> index ea510db..05d8193 100644
> --- a/modules/gui/qt/ui/open.ui
> +++ b/modules/gui/qt/ui/open.ui
> @@ -169,6 +169,19 @@
> </property>
> </widget>
> </item>
> + <item row="1" column="3">
> + <widget class="QLabel" name="label_3">
> + <property name="text">
> + <string>Stop Time</string>
> + </property>
> + <property name="alignment">
> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
> + </property>
> + <property name="buddy">
> + <cstring>stopTimeTimeEdit</cstring>
> + </property>
> + </widget>
> + </item>
> <item row="8" column="0">
> <widget class="QLabel" name="label">
> <property name="text">
> @@ -241,6 +254,25 @@
> </property>
> </widget>
> </item>
> + <item row="1" column="4" colspan="2">
> + <widget class="QTimeEdit" name="stopTimeTimeEdit">
> + <property name="toolTip">
> + <string>Change the stop time for the media</string>
> + </property>
> + <property name="alignment">
> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
> + </property>
> + <property name="currentSection">
> + <enum>QDateTimeEdit::HourSection</enum>
> + </property>
> + <property name="displayFormat">
> + <string>HH'H':mm'm':ss's'.zzz</string>
> + </property>
> + <property name="timeSpec">
> + <enum>Qt::LocalTime</enum>
> + </property>
> + </widget>
> + </item>
This suffers from the same problem as for the *start-time*, so I guess
it is not overly important; but it is worthwhile noting that using
`QTimeEdit` makes it impossible to specify *start-* and *stop-time* if
they exceed 24h.
> <item row="4" column="0" colspan="6">
> <widget class="QCheckBox" name="slaveCheckbox">
> <property name="text">
> @@ -271,6 +303,7 @@
> <tabstop>advancedCheckBox</tabstop>
> <tabstop>cacheSpinBox</tabstop>
> <tabstop>startTimeTimeEdit</tabstop>
> + <tabstop>stopTimeTimeEdit</tabstop>
> <tabstop>slaveCheckbox</tabstop>
> <tabstop>slaveText</tabstop>
> <tabstop>slaveBrowseButton</tabstop>
> --
> 2.7.4
>
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20161027/39a02734/attachment.html>
More information about the vlc-devel
mailing list