-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
After applying the patch: when changing crop start in the duration
dialog duration will alter accordingly.
Until now when crop start was changed you also influenced crop end.
regards till
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAkti9LUACgkQzwEyz7QP6nSQlwCeNtmE2YCIkOxLmU75QmF0ijTo
zFMAn3YIVrLEwjNoi8N6Idb8TX2hIGBk
=qU1X
-----END PGP SIGNATURE-----
Index: src/clipdurationdialog.cpp
===================================================================
--- src/clipdurationdialog.cpp (revision 4251)
+++ src/clipdurationdialog.cpp (working copy)
@@ -49,10 +49,12 @@
m_view.crop_position->hide();
m_view.crop_label->hide();
}
-
m_view.clip_position->setText(tc.getTimecode(m_clip->startPos()));
m_view.crop_position->setText(tc.getTimecode(m_clip->cropStart()));
m_view.clip_duration->setText(tc.getTimecode(m_clip->cropDuration()));
+
+ m_crop = m_tc.getFrameCount(m_view.crop_position->text());
+
connect(m_view.position_up, SIGNAL(clicked()), this, SLOT(slotPosUp()));
connect(m_view.position_down, SIGNAL(clicked()), this, SLOT(slotPosDown()));
connect(m_view.crop_up, SIGNAL(clicked()), this, SLOT(slotCropUp()));
@@ -106,11 +108,20 @@
{
int dur = m_tc.getFrameCount(m_view.clip_duration->text());
int crop = m_tc.getFrameCount(m_view.crop_position->text());
+ int dur_orig = dur;
+ if(m_crop < crop && dur - crop + m_crop > 0) {
+ dur = dur - crop + m_crop;
+ } else if(m_crop > crop && dur + m_crop - crop > 0) {
+ dur = dur + m_crop - crop;
+ }
GenTime duration(dur, m_fps);
GenTime cropStart(crop, m_fps);
GenTime maxDuration = m_clip->maxDuration();
if (maxDuration != GenTime() && cropStart + duration > maxDuration) {
- m_view.crop_position->setText(m_tc.getTimecode(maxDuration - duration));
+ m_view.crop_position->setText(m_tc.getTimecode(maxDuration - GenTime(dur_orig, m_fps)));
+ } else {
+ m_crop = crop;
+ m_view.clip_duration->setText(m_tc.getTimecode(duration));
}
}
@@ -149,10 +160,12 @@
void ClipDurationDialog::slotCropUp()
{
+ slotDurDown();
int crop = m_tc.getFrameCount(m_view.crop_position->text());
int duration = m_tc.getFrameCount(m_view.clip_duration->text());
if (m_clip->maxDuration() != GenTime() && duration + crop > m_clip->maxDuration().frames(m_fps)) return;
crop ++;
+ m_crop = crop;
m_view.crop_position->setText(m_tc.getTimecode(GenTime(crop, m_fps)));
}
@@ -161,7 +174,9 @@
int crop = m_tc.getFrameCount(m_view.crop_position->text());
if (crop <= 0) return;
crop --;
+ m_crop = crop;
m_view.crop_position->setText(m_tc.getTimecode(GenTime(crop, m_fps)));
+ slotDurUp();
}
GenTime ClipDurationDialog::startPos() const
Index: src/clipdurationdialog.h
===================================================================
--- src/clipdurationdialog.h (revision 4251)
+++ src/clipdurationdialog.h (working copy)
@@ -60,6 +60,7 @@
double m_fps;
GenTime m_min;
GenTime m_max;
+ int m_crop;
};
------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
Kdenlive-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/kdenlive-devel