* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
***************************************************************************/
+/**
+ * @class CustomTrackScene
+ * @author Jean-Baptiste Mardelle
+ * @brief Holds all scene properties that need to be used by clip items.
+ */
#ifndef CUSTOMTRACKSCENE_H
#define CUSTOMTRACKSCENE_H
class KdenliveDoc;
class MltVideoProfile;
-/** This class holds all scene properties that need to be used by clip items */
-
enum EDITMODE { NORMALEDIT = 0 , OVERWRITEEDIT = 1 , INSERTEDIT = 2 };
class CustomTrackScene : public QGraphicsScene
while (!m_dragGuide && ct < collisionList.count()) {
if (collisionList.at(ct)->type() == AVWIDGET || collisionList.at(ct)->type() == TRANSITIONWIDGET) {
collisionClip = static_cast <AbstractClipItem *>(collisionList.at(ct));
- if (collisionClip == m_dragItem) {
+ if (collisionClip->isItemLocked())
+ break;
+ if (collisionClip == m_dragItem)
collisionClip = NULL;
- } else m_dragItem = collisionClip;
+ else
+ m_dragItem = collisionClip;
found = true;
m_dragItemInfo = m_dragItem->info();
if (m_dragItem->parentItem() && m_dragItem->parentItem()->type() == GROUPWIDGET && m_dragItem->parentItem() != m_selectionGroup) {
int tracknumber = m_document->tracksCount() - ix - 1;
m_document->switchTrackLock(tracknumber, lock);
emit doTrackLock(ix, lock);
+ AbstractClipItem *clip = NULL;
QList<QGraphicsItem *> selection = m_scene->items(0, ix * m_tracksHeight + m_tracksHeight / 2, sceneRect().width(), m_tracksHeight / 2 - 2);
for (int i = 0; i < selection.count(); i++) {
if (selection.at(i)->type() == AVWIDGET) emit clipItemSelected(NULL);
else emit transitionItemSelected(NULL);
}
- static_cast <AbstractClipItem *>(selection.at(i))->setItemLocked(lock);
+ clip = static_cast <AbstractClipItem *>(selection.at(i));
+ clip->setItemLocked(lock);
+ if (clip == m_dragItem)
+ m_dragItem = NULL;
}
kDebug() << "NEXT TRK STATE: " << m_document->trackInfoAt(tracknumber).isLocked;
viewport()->update();
void autoTransition();
QStringList getLadspaParams(QDomElement effect) const;
void initCursorPos(int pos);
+ /** @brief Locks or unlocks a track.
+ * @param ix number of track
+ * @param lock whether to lock or unlock
+ *
+ * Makes sure no clip on track to lock is selected. */
void lockTrack(int ix, bool lock);
void groupClips(bool group = true);
void doGroupClips(QList <ItemInfo> clipInfos, QList <ItemInfo> transitionInfos, bool group);
if (m_view.create_chapter->isChecked()) chapterFile = m_view.out_file->url().path() + ".dvdchapter";
// mantisbt 1051
- KStandardDirs::makeDir(m_view.out_file->url().directory());
+ if (!KStandardDirs::makeDir(m_view.out_file->url().directory())) {
+ KMessageBox::sorry(this, i18n("The directory %1, could not be created.\nPlease make sure you have the required permissions.", m_view.out_file->url().directory()));
+ return;
+ }
emit prepareRenderingData(scriptExport, m_view.render_zone->isChecked(), chapterFile);
}