X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fclipproperties.cpp;h=b448d45375124dfc2af5fa097131cbf4567d46d9;hb=b4fed78d531ebfe19f26d8fb3512690328b4a1a3;hp=866349a6adcd0a9ad89d8691713d8199b6f9f9f2;hpb=668d8a4d6a1436697fb48fdf279b69e61dec8f8d;p=kdenlive diff --git a/src/clipproperties.cpp b/src/clipproperties.cpp index 866349a6..b448d453 100644 --- a/src/clipproperties.cpp +++ b/src/clipproperties.cpp @@ -27,6 +27,19 @@ #include #include #include +#include +#include +#include + +#ifdef USE_NEPOMUK +#if KDE_IS_VERSION(4,6,0) +#include +#include +#include +#include +#endif +#endif + #include @@ -223,7 +236,11 @@ ClipProperties::ClipProperties(DocClipBase *clip, Timecode tc, double fps, QWidg l->addWidget(pb); connect(pb, SIGNAL(clicked()), this, SLOT(slotDeleteProxy())); m_proxyContainer->setLayout(l); - if (t == AUDIO) { + if (t == IMAGE) { + m_view.tab_image->layout()->addWidget(line); + m_view.tab_image->layout()->addWidget(m_proxyContainer); + } + else if (t == AUDIO) { m_view.tab_audio->layout()->addWidget(line); m_view.tab_audio->layout()->addWidget(m_proxyContainer); } @@ -265,7 +282,6 @@ ClipProperties::ClipProperties(DocClipBase *clip, Timecode tc, double fps, QWidg m_view.clip_color->setColor(QColor('#' + props.value("colour").right(8).left(6))); connect(m_view.clip_color, SIGNAL(changed(QColor)), this, SLOT(slotModified())); } else if (t == SLIDESHOW) { - bool isMime = true; if (url.fileName().startsWith(".all.")) { // the image sequence is defined by mimetype m_view.clip_path->setText(url.directory()); @@ -274,7 +290,6 @@ ClipProperties::ClipProperties(DocClipBase *clip, Timecode tc, double fps, QWidg m_view.slide_type_label->setHidden(true); m_view.image_type->setHidden(true); m_view.clip_path->setText(url.path()); - isMime = false; } m_view.tabWidget->removeTab(METATAB); @@ -399,6 +414,13 @@ ClipProperties::ClipProperties(DocClipBase *clip, Timecode tc, double fps, QWidg new QTreeWidgetItem(m_view.clip_vproperties, QStringList() << i18n("Frame rate") << props.value("fps")); if (!m_view.clip_framerate->isEnabled()) m_view.clip_framerate->setValue(props.value("fps").toDouble()); } + + if (props.contains("progressive")) { + int scanning = props.value("progressive").toInt(); + QString txt = scanning == 1 ? i18n("Progressive") : i18n("Interlaced"); + new QTreeWidgetItem(m_view.clip_vproperties, QStringList() << i18n("Scanning") << txt); + } + if (props.contains("aspect_ratio")) new QTreeWidgetItem(m_view.clip_vproperties, QStringList() << i18n("Pixel aspect ratio") << props.value("aspect_ratio")); @@ -407,6 +429,7 @@ ClipProperties::ClipProperties(DocClipBase *clip, Timecode tc, double fps, QWidg if (props.contains("colorspace")) new QTreeWidgetItem(m_view.clip_vproperties, QStringList() << i18n("Colorspace") << ProfilesDialog::getColorspaceDescription(props.value("colorspace").toInt())); + int width = 180.0 * KdenliveSettings::project_display_ratio(); if (width % 2 == 1) width++; @@ -428,8 +451,7 @@ ClipProperties::ClipProperties(DocClipBase *clip, Timecode tc, double fps, QWidg m_view.clip_filesize->setHidden(true); m_view.label_size->setHidden(true); } - m_view.clip_duration->setInputMask(""); - m_view.clip_duration->setValidator(tc.validator()); + m_view.clip_duration->setInputMask(tc.mask()); m_view.clip_duration->setText(tc.getTimecode(m_clip->duration())); if (t != IMAGE && t != COLOR && t != TEXT) m_view.clip_duration->setReadOnly(true); else { @@ -445,6 +467,31 @@ ClipProperties::ClipProperties(DocClipBase *clip, Timecode tc, double fps, QWidg m_view.marker_delete->setIcon(KIcon("trash-empty")); m_view.marker_delete->setToolTip(i18n("Delete marker")); + // Check for Nepomuk metadata +#ifdef USE_NEPOMUK +#if KDE_IS_VERSION(4,6,0) + if (!url.isEmpty()) { + Nepomuk::ResourceManager::instance()->init(); + Nepomuk::Resource res( url.path() ); + // Check if file has a license + if (res.hasProperty(Nepomuk::Vocabulary::NIE::license())) { + QString ltype = res.property(Nepomuk::Vocabulary::NIE::licenseType()).toString(); + m_view.clip_license->setText(i18n("License: %1", res.property(Nepomuk::Vocabulary::NIE::license()).toString())); + if (ltype.startsWith("http")) { + m_view.clip_license->setUrl(ltype); + connect(m_view.clip_license, SIGNAL(leftClickedUrl(const QString &)), this, SLOT(slotOpenUrl(const QString &))); + } + } + else m_view.clip_license->setHidden(true); + } + else m_view.clip_license->setHidden(true); +#else + m_view.clip_license->setHidden(true); +#endif +#else + m_view.clip_license->setHidden(true); +#endif + slotFillMarkersList(); connect(m_view.marker_new, SIGNAL(clicked()), this, SLOT(slotAddMarker())); connect(m_view.marker_edit, SIGNAL(clicked()), this, SLOT(slotEditMarker())); @@ -454,7 +501,7 @@ ClipProperties::ClipProperties(DocClipBase *clip, Timecode tc, double fps, QWidg connect(this, SIGNAL(accepted()), this, SLOT(slotApplyProperties())); connect(m_view.buttonBox->button(QDialogButtonBox::Apply), SIGNAL(clicked()), this, SLOT(slotApplyProperties())); m_view.buttonBox->button(QDialogButtonBox::Apply)->setEnabled(false); - //adjustSize(); + adjustSize(); } @@ -610,8 +657,10 @@ ClipProperties::~ClipProperties() void ClipProperties::slotApplyProperties() { - if (m_clip != NULL) - emit applyNewClipProperties(m_clip->getId(), m_clip->properties(), properties(), needsTimelineRefresh(), needsTimelineReload()); + if (m_clip != NULL) { + QMap props = properties(); + emit applyNewClipProperties(m_clip->getId(), m_clip->currentProperties(props), props, needsTimelineRefresh(), needsTimelineReload()); + } m_view.buttonBox->button(QDialogButtonBox::Apply)->setEnabled(false); } @@ -707,6 +756,7 @@ const QString &ClipProperties::clipId() const QMap ClipProperties::properties() { QMap props; + QLocale locale; CLIPTYPE t = UNKNOWN; if (m_clip != NULL) { t = m_clip->clipType(); @@ -737,7 +787,7 @@ QMap ClipProperties::properties() double fps = m_view.clip_framerate->value(); if (m_view.clip_force_framerate->isChecked()) { if (fps != m_old_props.value("force_fps").toDouble()) { - props["force_fps"] = QString::number(fps); + props["force_fps"] = locale.toString(fps); m_clipNeedsRefresh = true; } } else if (m_old_props.contains("force_fps") && !m_old_props.value("force_fps").isEmpty()) { @@ -1018,13 +1068,16 @@ void ClipProperties::slotUpdateDurationFormat(int ix) void ClipProperties::slotDeleteProxy() { QString proxy = m_clip->getProperty("proxy"); - QFile::remove(proxy); - QMap props; - props.insert("proxy", QString()); - emit applyNewClipProperties(m_clip->getId(), m_clip->properties(), props, false, true); + if (proxy.isEmpty()) return; + emit deleteProxy(proxy); if (m_proxyContainer) delete m_proxyContainer; } +void ClipProperties::slotOpenUrl(const QString &url) +{ + new KRun(KUrl(url), this); +} + #include "clipproperties.moc"