From ed5a2c50b2402499f775bee428e079cac7bde423 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Mardelle Date: Mon, 14 Jan 2013 11:35:58 +0100 Subject: [PATCH] small cleanup --- CMakeLists.txt | 2 +- src/abstractgroupitem.cpp | 2 +- src/customtrackview.cpp | 65 ++++++++++++++++++++++------------ src/encodingprofilesdialog.cpp | 2 +- src/kdenlivesettingsdialog.cpp | 2 +- src/mainwindow.cpp | 2 +- src/projectlist.cpp | 17 +++++++++ src/projectlist.h | 3 ++ src/projectsettings.cpp | 2 +- 9 files changed, 68 insertions(+), 29 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 516c3d1a..fd29ad4b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,7 @@ project(kdenlive) set(KDENLIVE_VERSION 0.9.3) # Minimum versions of main dependencies. -set(LIBMLT_MIN_VERSION 0.7.8) +set(LIBMLT_MIN_VERSION 0.8.6) set(QT_MIN_VERSION 4.5.0) set(KDE_MIN_VERSION 4.3.0) diff --git a/src/abstractgroupitem.cpp b/src/abstractgroupitem.cpp index a2e04b60..abf061c7 100644 --- a/src/abstractgroupitem.cpp +++ b/src/abstractgroupitem.cpp @@ -201,7 +201,7 @@ QVariant AbstractGroupItem::itemChange(GraphicsItemChange change, const QVariant } else if (children.at(i)->type() == GROUPWIDGET) { currentTrack = static_cast (children.at(i))->track(); - } + } else continue; if (children.at(i)->type() == AVWIDGET) { if (topTrack == -1 || currentTrack <= topTrack) { diff --git a/src/customtrackview.cpp b/src/customtrackview.cpp index dc0a76a1..15abfdeb 100644 --- a/src/customtrackview.cpp +++ b/src/customtrackview.cpp @@ -847,7 +847,11 @@ void CustomTrackView::mousePressEvent(QMouseEvent * event) m_selectionGroup->setProperty("locked_tracks", lockedTracks); } if (m_dragItem->parentItem() && m_dragItem->parentItem()->type() == GROUPWIDGET && m_dragItem->parentItem() != m_selectionGroup) { - dragGroup = static_cast (m_dragItem->parentItem()); + QGraphicsItem *topGroup = m_dragItem->parentItem(); + while (topGroup->parentItem() && topGroup->parentItem()->type() == GROUPWIDGET && topGroup->parentItem() != m_selectionGroup) { + topGroup = topGroup->parentItem(); + } + dragGroup = static_cast (topGroup); dragGroup->setProperty("y_absolute", yOffset); dragGroup->setProperty("locked_tracks", lockedTracks); } @@ -1040,10 +1044,12 @@ void CustomTrackView::mousePressEvent(QMouseEvent * event) } else { resetSelectionGroup(); } - dragGroup = NULL; - if (m_dragItem->parentItem() && m_dragItem->parentItem()->type() == GROUPWIDGET) { - dragGroup = static_cast (m_dragItem->parentItem()); - } + /*if () { + dragGroup = NULL; + if (m_dragItem->parentItem() && m_dragItem->parentItem()->type() == GROUPWIDGET) { + dragGroup = static_cast (m_dragItem->parentItem()); + } + }*/ bool selected = !m_dragItem->isSelected(); QGraphicsView::mousePressEvent(event); @@ -1085,8 +1091,9 @@ void CustomTrackView::mousePressEvent(QMouseEvent * event) m_selectionGroup->setSelected(itemSelected); } - if (dragGroup) + if (dragGroup) { dragGroup->setSelected(itemSelected); + } m_dragItem->setSelected(itemSelected); } @@ -1247,11 +1254,11 @@ void CustomTrackView::rebuildGroup(AbstractGroupItem *group) if (group) { QList children = group->childItems(); m_document->clipManager()->removeGroup(group); - /*for (int i = 0; i < children.count(); i++) { + for (int i = 0; i < children.count(); i++) { group->removeFromGroup(children.at(i)); - }*/ + } scene()->destroyItemGroup(group); - groupSelectedItems(children, true, true); + groupSelectedItems(children, group != m_selectionGroup, true); } } @@ -1266,14 +1273,16 @@ void CustomTrackView::resetSelectionGroup(bool selectItems) scene()->destroyItemGroup(m_selectionGroup); m_selectionGroup = NULL; for (int i = 0; i < children.count(); i++) { - if (children.at(i)->parentItem() == 0 && (children.at(i)->type() == AVWIDGET || children.at(i)->type() == TRANSITIONWIDGET)) { - if (!static_cast (children.at(i))->isItemLocked()) { - children.at(i)->setFlag(QGraphicsItem::ItemIsMovable, true); - children.at(i)->setSelected(selectItems); - } - } else if (children.at(i)->type() == GROUPWIDGET) { - children.at(i)->setFlag(QGraphicsItem::ItemIsMovable, true); - children.at(i)->setSelected(selectItems); + if (children.at(i)->parentItem() == 0) { + if ((children.at(i)->type() == AVWIDGET || children.at(i)->type() == TRANSITIONWIDGET)) { + if (!static_cast (children.at(i))->isItemLocked()) { + children.at(i)->setFlag(QGraphicsItem::ItemIsMovable, true); + children.at(i)->setSelected(selectItems); + } + } else if (children.at(i)->type() == GROUPWIDGET) { + children.at(i)->setFlag(QGraphicsItem::ItemIsMovable, true); + children.at(i)->setSelected(selectItems); + } } } KdenliveSettings::setSnaptopoints(snap); @@ -1295,6 +1304,9 @@ void CustomTrackView::groupSelectedItems(QList selection, bool if (selectNewGroup) selection.at(i)->setSelected(true); if (selection.at(i)->type() == GROUPWIDGET) { AbstractGroupItem *it = static_cast (selection.at(i)); + while (it->parentItem() && it->parentItem()->type() == GROUPWIDGET) { + it = static_cast (it->parentItem()); + } if (!it || it->isItemLocked()) continue; groupsList.insert(it); } @@ -1303,6 +1315,9 @@ void CustomTrackView::groupSelectedItems(QList selection, bool if (selection.at(i)->type() == AVWIDGET || selection.at(i)->type() == TRANSITIONWIDGET) { if (selection.at(i)->parentItem() && selection.at(i)->parentItem()->type() == GROUPWIDGET) { AbstractGroupItem *it = static_cast (selection.at(i)->parentItem()); + while (it->parentItem() && it->parentItem()->type() == GROUPWIDGET) { + it = static_cast (it->parentItem()); + } if (!it || it->isItemLocked()) continue; groupsList.insert(it); } @@ -1339,8 +1354,11 @@ void CustomTrackView::groupSelectedItems(QList selection, bool newGroup->translate(-diff.x(), -diff.y()); //newGroup->translate((int) -rectUnion.left(), (int) -rectUnion.top() + 1); - scene()->addItem(newGroup); // Check if we are trying to include a group in a group + foreach (QGraphicsItemGroup *value, groupsList) { + newGroup->addItem(value); + } + foreach (QGraphicsItemGroup *value, groupsList) { QList children = value->childItems(); for (int i = 0; i < children.count(); i++) { @@ -1355,6 +1373,7 @@ void CustomTrackView::groupSelectedItems(QList selection, bool foreach (QGraphicsItem *value, itemsList) { newGroup->addItem(value); } + scene()->addItem(newGroup); KdenliveSettings::setSnaptopoints(snap); if (selectNewGroup) newGroup->setSelected(true); } else { @@ -4254,7 +4273,7 @@ void CustomTrackView::deleteSelectedClips() int groupCount = 0; int clipCount = 0; int transitionCount = 0; - // expand & destroy groups + // expand & destroy groups for (int i = 0; i < itemList.count(); i++) { if (itemList.at(i)->type() == GROUPWIDGET) { groupCount++; @@ -4281,20 +4300,19 @@ void CustomTrackView::deleteSelectedClips() } else if (itemList.at(i)->parentItem() && itemList.at(i)->parentItem()->type() == GROUPWIDGET) itemList.insert(i + 1, itemList.at(i)->parentItem()); } - + emit clipItemSelected(NULL); + emit transitionItemSelected(NULL); for (int i = 0; i < itemList.count(); i++) { if (itemList.at(i)->type() == AVWIDGET) { clipCount++; ClipItem *item = static_cast (itemList.at(i)); //kDebug()<<"// DELETE CLP AT: "<info().startPos.frames(25); new AddTimelineClipCommand(this, item->xml(), item->clipProducer(), item->info(), item->effectList(), false, false, true, true, deleteSelected); - emit clipItemSelected(NULL); } else if (itemList.at(i)->type() == TRANSITIONWIDGET) { transitionCount++; Transition *item = static_cast (itemList.at(i)); //kDebug()<<"// DELETE TRANS AT: "<info().startPos.frames(25); new AddTransitionCommand(this, item->info(), item->transitionEndTrack(), item->toXML(), true, true, deleteSelected); - emit transitionItemSelected(NULL); } } if (groupCount > 0 && clipCount == 0 && transitionCount == 0) @@ -4475,7 +4493,8 @@ void CustomTrackView::doGroupClips(QList clipInfos, QList resetSelectionGroup(); m_scene->clearSelection(); if (!group) { - for (int i = 0; i < clipInfos.count(); i++) { + // ungroup, find main group to destroy it... + for (int i = 0; i < clipInfos.count(); i++) { ClipItem *clip = getClipItemAt(clipInfos.at(i).startPos, clipInfos.at(i).track); if (clip == NULL) continue; if (clip->parentItem() && clip->parentItem()->type() == GROUPWIDGET) { diff --git a/src/encodingprofilesdialog.cpp b/src/encodingprofilesdialog.cpp index 3b14a176..02a029f2 100644 --- a/src/encodingprofilesdialog.cpp +++ b/src/encodingprofilesdialog.cpp @@ -47,7 +47,7 @@ EncodingProfilesDialog::EncodingProfilesDialog(int profileType, QWidget * parent button_delete->setIcon(KIcon("list-remove")); button_download->setIcon(KIcon("download")); - m_configFile = new KConfig("encodingprofiles.rc", KConfig::FullConfig, "appdata"); + m_configFile = new KConfig("encodingprofiles.rc", KConfig::CascadeConfig, "appdata"); profile_type->setCurrentIndex(profileType); connect(profile_type, SIGNAL(currentIndexChanged(int)), this, SLOT(slotLoadProfiles())); connect(profile_list, SIGNAL(currentRowChanged(int)), this, SLOT(slotShowParams())); diff --git a/src/kdenlivesettingsdialog.cpp b/src/kdenlivesettingsdialog.cpp index 755cbab7..32d8844d 100644 --- a/src/kdenlivesettingsdialog.cpp +++ b/src/kdenlivesettingsdialog.cpp @@ -1011,7 +1011,7 @@ void KdenliveSettingsDialog::slotManageEncodingProfile() void KdenliveSettingsDialog::loadEncodingProfiles() { - KConfig conf("encodingprofiles.rc", KConfig::FullConfig, "appdata"); + KConfig conf("encodingprofiles.rc", KConfig::CascadeConfig, "appdata"); // Load v4l profiles m_configCapture.kcfg_v4l_profile->blockSignals(true); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 7258b46f..e273a984 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -623,7 +623,7 @@ MainWindow::MainWindow(const QString &MltPath, const KUrl & Url, const QString & viewMenu->addAction(guiActions->addAction(viewActions.at(i).first, viewActions.at(i).second)); // Populate encoding profiles - KConfig conf("encodingprofiles.rc", KConfig::FullConfig, "appdata"); + KConfig conf("encodingprofiles.rc", KConfig::CascadeConfig, "appdata"); if (KdenliveSettings::proxyparams().isEmpty() || KdenliveSettings::proxyextension().isEmpty()) { KConfigGroup group(&conf, "proxy"); QMap< QString, QString > values = group.entryMap(); diff --git a/src/projectlist.cpp b/src/projectlist.cpp index 99c1af2b..cb78f068 100644 --- a/src/projectlist.cpp +++ b/src/projectlist.cpp @@ -2221,6 +2221,7 @@ void ProjectList::extractMetadata(DocClipBase *clip) clip->setProperty("exiftool", "1"); if (!meta.isEmpty()) { clip->setMetadata(meta); + //checkCamcorderFilters(clip, meta); } } } @@ -3767,4 +3768,20 @@ void ProjectList::slotGotFilterJobResults(QString id, int , int , stringMap resu } +/* +// Work in progress: apply filter based on clip's camcorder +void ProjectList::checkCamcorderFilters(DocClipBase *clip, QMap meta) +{ + KConfig conf("camcorderfilters.rc", KConfig::CascadeConfig, "appdata"); + QStringList groups = conf.groupList(); + foreach(QString grp, groups) { + if (!meta.contains(grp)) continue; + KConfigGroup group(&conf, grp); + QString value = group.readEntry(meta.value(grp)); + if (value.isEmpty()) continue; + clip->setProperty(value.section(' ', 0, 0), value.section(' ', 1)); + break; + } +}*/ + #include "projectlist.moc" diff --git a/src/projectlist.h b/src/projectlist.h index fe8c0342..830e4034 100644 --- a/src/projectlist.h +++ b/src/projectlist.h @@ -426,7 +426,10 @@ private: /** @brief Create rounded shape pixmap for project tree thumb. */ QPixmap roundedPixmap(QImage img); QPixmap roundedPixmap(QPixmap source); + /** @brief Extract a clip's metadata with the exiftool program. */ void extractMetadata(DocClipBase *clip); + /** @brief Add a special FFmpeg tag if clip matches some properties (for example set full_luma for Sony NEX camcorders. */ + //void checkCamcorderFilters(DocClipBase *clip, QMap meta); private slots: void slotClipSelected(); diff --git a/src/projectsettings.cpp b/src/projectsettings.cpp index 9289e18e..6cd03557 100644 --- a/src/projectsettings.cpp +++ b/src/projectsettings.cpp @@ -94,7 +94,7 @@ ProjectSettings::ProjectSettings(ProjectList *projectlist, QMap values = group.entryMap(); QMapIterator k(values); -- 2.39.2