m_doc->commandStack()->push(command);
}
-void ClipManager::slotAddSlideshowClipFile(const QString name, const QString path, int count, const QString duration, const bool loop, QString group, const int groupId) {
+void ClipManager::slotAddSlideshowClipFile(const QString name, const QString path, int count, const QString duration, const bool loop, const bool fade, const QString &luma_duration, const QString &luma_file, QString group, const int groupId) {
QDomDocument doc;
QDomElement prod = doc.createElement("producer");
prod.setAttribute("resource", path);
prod.setAttribute("in", "0");
prod.setAttribute("out", m_doc->getFramePos(duration) * count);
prod.setAttribute("ttl", m_doc->getFramePos(duration));
+ prod.setAttribute("luma_duration", m_doc->getFramePos(luma_duration));
prod.setAttribute("name", name);
prod.setAttribute("loop", loop);
+ prod.setAttribute("fade", fade);
+ prod.setAttribute("luma_file", luma_file);
if (!group.isEmpty()) {
prod.setAttribute("groupname", group);
prod.setAttribute("groupid", groupId);
void slotAddClipFile(const KUrl url, const QString group, const int groupId);
void slotAddTextClipFile(const QString path, const QString xml, const QString group, const int groupId);
void slotAddColorClipFile(const QString name, const QString color, QString duration, const QString group, const int groupId);
- void slotAddSlideshowClipFile(const QString name, const QString path, int count, const QString duration, bool loop, const QString group, const int groupId);
+ void slotAddSlideshowClipFile(const QString name, const QString path, int count, const QString duration, const bool loop, const bool fade, const QString &luma_duration, const QString &luma_file, const QString group, const int groupId);
DocClipBase *getClipById(int clipId);
void slotDeleteClip(uint clipId);
void setThumbsProgress(const QString &message, int progress);
types << "JPG" << "PNG" << "BMP" << "GIF";
m_view.image_type->addItems(types);
m_view.slide_loop->setChecked(props.value("loop").toInt());
+ m_view.slide_fade->setChecked(props.value("fade").toInt());
QString path = props.value("resource");
if (path.endsWith("png")) m_view.image_type->setCurrentIndex(TYPE_PNG);
else if (path.endsWith("bmp")) m_view.image_type->setCurrentIndex(TYPE_BMP);
else if (path.endsWith("gif")) m_view.image_type->setCurrentIndex(TYPE_GIF);
m_view.slide_duration->setText(tc.getTimecodeFromFrames(props.value("ttl").toInt()));
parseFolder();
+
+ m_view.luma_duration->setText(tc.getTimecodeFromFrames(props.value("luma_duration").toInt()));
+ QString lumaFile = props.value("luma_file");
+ QString profilePath = KdenliveSettings::mltpath();
+ profilePath = profilePath.section('/', 0, -3);
+ profilePath += "/lumas/PAL/";
+
+ QDir dir(profilePath);
+ QStringList result = dir.entryList(QDir::Files);
+ QStringList imagefiles;
+ QStringList imagenamelist;
+ int current;
+ foreach(QString file, result) {
+ if (file.endsWith(".pgm")) {
+ m_view.luma_file->addItem(KIcon(profilePath + file), file, profilePath + file);
+ if (!lumaFile.isEmpty() && lumaFile == QString(profilePath + file))
+ current = m_view.luma_file->count() - 1;
+ }
+ }
+
+ if (!lumaFile.isEmpty()) {
+ m_view.slide_luma->setChecked(true);
+ m_view.luma_file->setCurrentIndex(current);
+ }
+
connect(m_view.image_type, SIGNAL(currentIndexChanged(int)), this, SLOT(parseFolder()));
} else if (t != AUDIO) {
m_view.tabWidget->removeTab(SLIDETAB);
props["colour"] = "0x" + new_color.right(6) + "ff";
}
} else if (t == SLIDESHOW) {
- props["loop"] = QString::number((int) m_view.slide_loop->isChecked());
QMap <QString, QString> old_props = m_clip->properties();
+ QString value = QString::number((int) m_view.slide_loop->isChecked());
+ if (old_props.value("loop") != value) props["loop"] = value;
+ value = QString::number((int) m_view.slide_fade->isChecked());
+ if (old_props.value("fade") != value) props["fade"] = value;
+
QString extension;
switch (m_view.image_type->currentIndex()) {
case TYPE_PNG:
m_clipNeedsRefresh = true;
props["out"] = QString::number(duration * m_count);
}
+ if (m_view.slide_fade->isChecked()) {
+ int luma_duration = m_tc.getFrameCount(m_view.luma_duration->text(), m_fps);
+ if (luma_duration != old_props.value("luma_duration").toInt()) {
+ m_clipNeedsRefresh = true;
+ props["luma_duration"] = QString::number(luma_duration);
+ }
+ QString lumaFile;
+ if (m_view.slide_luma->isChecked())
+ lumaFile = m_view.luma_file->itemData(m_view.luma_file->currentIndex()).toString();
+ if (lumaFile != old_props.value("luma_file")) {
+ m_clipNeedsRefresh = true;
+ props["luma_file"] = lumaFile;
+ }
+ } else {
+ if (old_props.value("luma_file") != QString()) {
+ props["luma_file"] = QString();
+ }
+ }
}
return props;
return m_clipProducer;
}
+void DocClipBase::slotRefreshProducer() {
+ if (m_clipProducer == NULL) return;
+ kDebug() << "//////////// REFRESH CLIP !!!!!!!!!!!!!!!!";
+ if (m_clipType == SLIDESHOW) {
+ /*char *tmp = (char *) qstrdup(getProperty("resource").toUtf8().data());
+ Mlt::Producer producer(*(m_clipProducer->profile()), tmp);
+ delete[] tmp;
+ delete m_clipProducer;
+ m_clipProducer = new Mlt::Producer(producer.get_producer());
+ if (!getProperty("out").isEmpty()) m_clipProducer->set_in_and_out(getProperty("in").toInt(), getProperty("out").toInt());*/
+ m_clipProducer->set("ttl", getProperty("ttl").toInt());
+ //m_clipProducer->set("id", getProperty("id"));
+ if (getProperty("fade") == "1") {
+ // we want a fade filter effect
+ kDebug() << "//////////// FADE WANTED";
+ Mlt::Service clipService(m_clipProducer->get_service());
+ int ct = 0;
+ Mlt::Filter *filter = clipService.filter(ct);
+ while (filter) {
+ if (filter->get("mlt_service") == "luma") {
+ break;
+ }
+ ct++;
+ filter = clipService.filter(ct);
+ }
+
+ if (filter && filter->get("mlt_service") == "luma") {
+ filter->set("period", getProperty("ttl").toInt() - 1);
+ filter->set("luma.out", getProperty("luma_duration").toInt());
+ QString resource = getProperty("luma_file");
+ char *tmp = (char *) qstrdup(resource.toUtf8().data());
+ filter->set("luma.resource", tmp);
+ delete[] tmp;
+ } else {
+ // filter does not exist, create it...
+ Mlt::Filter *filter = new Mlt::Filter(*(m_clipProducer->profile()), "luma");
+ filter->set("period", getProperty("ttl").toInt() - 1);
+ filter->set("luma.out", getProperty("luma_duration").toInt());
+ QString resource = getProperty("luma_file");
+ char *tmp = (char *) qstrdup(resource.toUtf8().data());
+ filter->set("luma.resource", tmp);
+ delete[] tmp;
+ clipService.attach(*filter);
+ }
+ } else {
+ kDebug() << "//////////// FADE NOT WANTED!!!";
+ Mlt::Service clipService(m_clipProducer->get_service());
+ int ct = 0;
+ Mlt::Filter *filter = clipService.filter(0);
+ while (filter) {
+ if (filter->get("mlt_service") == "luma") {
+ clipService.detach(*filter);
+ } else ct++;
+ filter = clipService.filter(ct);
+ }
+ }
+ }
+}
+
void DocClipBase::setProperties(QMap <QString, QString> properties) {
// changing clip type is not allowed
properties.remove("type");
QMapIterator<QString, QString> i(properties);
+ bool refreshProducer = false;
+ QStringList keys;
+ keys << "luma_duration" << "luma_file" << "fade" << "ttl";
while (i.hasNext()) {
i.next();
m_properties.insert(i.key(), i.value());
if (i.key() == "resource") m_thumbProd->updateClipUrl(KUrl(i.value()));
else if (i.key() == "out") setDuration(GenTime(i.value().toInt(), KdenliveSettings::project_fps()));
+ else if (m_clipType == SLIDESHOW && keys.contains(i.key())) refreshProducer = true;
}
+ if (refreshProducer) slotRefreshProducer();
}
void DocClipBase::setProperty(QString key, QString value) {
QMap <QString, QString> m_properties;
/** Create connections for audio thumbnails */
void slotCreateAudioTimer();
+ void slotRefreshProducer();
public slots:
void updateAudioThumbnail(QMap<int, QMap<int, QByteArray> > data);
ui.buttonDown->setEnabled(false);
} else {
if (ix < 0) ix = 0;
- if (ix > ui.effectlist->count() - 1) ix = ui.effectlist->count() - 1;
+ if (ix > ui.effectlist->count() - 1) ix = ui.effectlist->count() - 1;
ui.effectlist->setCurrentRow(ix);
ui.buttonDel->setEnabled(true);
ui.buttonSave->setEnabled(true);
setModified(true);
}
-void KdenliveDoc::slotAddSlideshowClipFile(const QString name, const QString path, int count, const QString duration, bool loop, const QString group, const int groupId) {
- m_clipManager->slotAddSlideshowClipFile(name, path, count, duration, loop, group, groupId);
+void KdenliveDoc::slotAddSlideshowClipFile(const QString name, const QString path, int count, const QString duration, const bool loop, const bool fade, const QString &luma_duration, const QString &luma_file, const QString group, const int groupId) {
+ m_clipManager->slotAddSlideshowClipFile(name, path, count, duration, loop, fade, luma_duration, luma_file, group, groupId);
setModified(true);
}
void slotDeleteFolder(const QString folderName, const int id);
void slotEditFolder(const QString folderName, const QString oldfolderName, int clipId);
void slotAddColorClipFile(const QString name, const QString color, QString duration, const QString group, const int groupId = -1);
- void slotAddSlideshowClipFile(const QString name, const QString path, int count, const QString duration, bool loop, const QString group, const int groupId = -1);
+ void slotAddSlideshowClipFile(const QString name, const QString path, int count, const QString duration, const bool loop, const bool fade, const QString &luma_duration, const QString &luma_file, const QString group, const int groupId = -1);
void deleteClip(const uint clipId);
int getFramePos(QString duration);
DocClipBase *getBaseClip(int clipId);
m_currentClip = clip;
render->setProducer(clip->producer(), 0);
m_ruler->slotNewValue(0);
+ //adjustRulerSize(clip->producer()->get_playtime());
m_timePos->setText("00:00:00:00");
m_position = 0;
}
groupId = item->clipId();
}
- m_doc->slotAddSlideshowClipFile(dia->clipName(), dia->selectedPath(), dia->imageCount(), dia->clipDuration(), dia->loop(), group, groupId);
+ m_doc->slotAddSlideshowClipFile(dia->clipName(), dia->selectedPath(), dia->imageCount(), dia->clipDuration(), dia->loop(), dia->fade(), dia->lumaDuration(), dia->lumaFile(), group, groupId);
}
delete dia;
}
if (xml.attribute("type").toInt() == COLOR) {
char *tmp = decodedString("colour:" + xml.attribute("colour"));
producer = new Mlt::Producer(*m_mltProfile, "fezzik", tmp);
- producer->set_in_and_out(xml.attribute("in").toInt(), xml.attribute("out").toInt());
delete[] tmp;
} else if (url.isEmpty()) {
QDomDocument doc;
} else {
char *tmp = decodedString(url.path());
producer = new Mlt::Producer(*m_mltProfile, tmp);
- if (!xml.attribute("out").isEmpty()) producer->set_in_and_out(xml.attribute("in").toInt(), xml.attribute("out").toInt());
- if (!xml.attribute("ttl").isEmpty()) producer->set("ttl", xml.attribute("ttl").toInt());
delete[] tmp;
}
+ if (xml.hasAttribute("out")) producer->set_in_and_out(xml.attribute("in").toInt(), xml.attribute("out").toInt());
+
if (producer->is_blank()) {
kDebug() << " / / / / / / / /ERRROR / / / / // CANNOT LOAD PRODUCER: ";
return;
//kDebug() << "/////// PRODUCER: " << url.path() << " IS: " << producer.get_playtime();
Mlt::Frame * frame = producer->get_frame();
+
+ if (xml.attribute("type").toInt() == SLIDESHOW) {
+ if (xml.hasAttribute("ttl")) producer->set("ttl", xml.attribute("ttl").toInt());
+ if (xml.attribute("fade") == "1") {
+ // user wants a fade effect to slideshow
+ Mlt::Filter *filter = new Mlt::Filter(*m_mltProfile, "luma");
+ if (xml.hasAttribute("ttl")) filter->set("period", xml.attribute("ttl").toInt() - 1);
+ if (xml.hasAttribute("luma_duration") && !xml.attribute("luma_duration").isEmpty()) filter->set("luma.out", xml.attribute("luma_duration").toInt());
+ if (xml.hasAttribute("luma_file") && !xml.attribute("luma_file").isEmpty()) {
+ char *tmp = decodedString(xml.attribute("luma_file"));
+ filter->set("luma.resource", tmp);
+ delete[] tmp;
+ }
+ Mlt::Service clipService(producer->get_service());
+ clipService.attach(*filter);
+ }
+ }
+
+
filePropertyMap["fps"] = producer->get("source_fps");
if (frame && frame->is_valid()) {
if (!m_mltProducer)
return;
if (m_mltProducer->get_speed() == 0.0) {
- m_isBlocked = false;
+ //m_isBlocked = false;
m_mltProducer->set_speed(1.0);
m_mltConsumer->set("refresh", 1);
kDebug() << " ********* RENDER PLAY: " << m_mltProducer->get_speed();
//m_isBlocked = true;
m_mltConsumer->set("refresh", 0);
m_mltProducer->set_speed(0.0);
- m_isBlocked = true;
+ //m_isBlocked = true;
m_mltProducer->seek((int) m_framePosition);
//kDebug()<<" ********* RENDER PAUSE: "<<m_mltProducer->get_speed();
//m_mltConsumer->set("refresh", 0);
//kDebug()<<" ********* RENDER SEEK TO POS";
if (!m_mltProducer)
return;
- //kDebug()<<"////////// KDENLIVE SEEK: "<<(int) (time.frames(m_fps));
m_mltProducer->seek(pos);
refresh();
}
m_view.icon_list->setIconSize(QSize(50, 50));
connect(m_view.folder_url, SIGNAL(textChanged(const QString &)), this, SLOT(parseFolder()));
connect(m_view.image_type, SIGNAL(currentIndexChanged(int)), this, SLOT(parseFolder()));
+
+ connect(m_view.slide_fade, SIGNAL(stateChanged(int)), this, SLOT(slotEnableLuma(int)));
+ connect(m_view.luma_fade, SIGNAL(stateChanged(int)), this, SLOT(slotEnableLumaFile(int)));
+
m_view.image_type->addItem("JPG");
m_view.image_type->addItem("PNG");
m_view.image_type->addItem("BMP");
m_view.image_type->addItem("GIF");
- m_view.clip_duration->setText("00:00:03:00");
+ m_view.clip_duration->setText(KdenliveSettings::image_duration());
+ m_view.luma_duration->setText("00:00:00:24");
m_view.folder_url->setUrl(QDir::homePath());
+
+
+ QString profilePath = KdenliveSettings::mltpath();
+ profilePath = profilePath.section('/', 0, -3);
+ profilePath += "/lumas/PAL/";
+
+ QDir dir(profilePath);
+ QStringList result = dir.entryList(QDir::Files);
+ QStringList imagefiles;
+ QStringList imagenamelist;
+ foreach(QString file, result) {
+ if (file.endsWith(".pgm")) {
+ m_view.luma_file->addItem(KIcon(profilePath + file), file, profilePath + file);
+ }
+ }
+
adjustSize();
}
+void SlideshowClip::slotEnableLuma(int state) {
+ bool enable = false;
+ if (state == Qt::Checked) enable = true;
+ m_view.luma_duration->setEnabled(enable);
+ m_view.luma_fade->setEnabled(enable);
+ if (enable) m_view.luma_file->setEnabled(m_view.luma_fade->isChecked());
+ else m_view.luma_file->setEnabled(false);
+}
+
+void SlideshowClip::slotEnableLumaFile(int state) {
+ bool enable = false;
+ if (state == Qt::Checked) enable = true;
+ m_view.luma_file->setEnabled(enable);
+}
+
void SlideshowClip::parseFolder() {
m_view.icon_list->clear();
QDir dir(m_view.folder_url->url().path());
bool SlideshowClip::loop() const {
return m_view.slide_loop->isChecked();
}
+
+bool SlideshowClip::fade() const {
+ return m_view.slide_fade->isChecked();
+}
+
+QString SlideshowClip::lumaDuration() const {
+ return m_view.luma_duration->text();
+}
+
+QString SlideshowClip::lumaFile() const {
+ if (!m_view.luma_fade->isChecked() || !m_view.luma_file->isEnabled()) return QString();
+ return m_view.luma_file->itemData(m_view.luma_file->currentIndex()).toString();
+}
+
#include "slideshowclip.moc"
QString selectedPath() const;
QString clipName() const;
QString clipDuration() const;
+ QString lumaDuration() const;
int imageCount() const;
bool loop() const;
+ bool fade() const;
+ QString lumaFile() const;
private slots:
void parseFolder();
+ void slotEnableLuma(int state);
+ void slotEnableLumaFile(int state);
private:
Ui::SlideshowClip_UI m_view;
<rect>
<x>0</x>
<y>0</y>
- <width>304</width>
- <height>456</height>
+ <width>315</width>
+ <height>440</height>
</rect>
</property>
<property name="windowTitle" >
</property>
</widget>
</item>
+ <item row="7" column="1" colspan="2" >
+ <spacer name="verticalSpacer_4" >
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>20</width>
+ <height>17</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="8" column="0" colspan="4" >
+ <widget class="QDialogButtonBox" name="buttonBox" >
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons" >
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
<item row="6" column="0" colspan="4" >
<widget class="QTabWidget" name="tabWidget" >
<property name="currentIndex" >
- <number>0</number>
+ <number>3</number>
</property>
<widget class="QWidget" name="tab_video" >
<property name="geometry" >
<rect>
<x>0</x>
<y>0</y>
- <width>284</width>
- <height>204</height>
+ <width>288</width>
+ <height>210</height>
</rect>
</property>
<attribute name="title" >
<rect>
<x>0</x>
<y>0</y>
- <width>284</width>
- <height>204</height>
+ <width>288</width>
+ <height>210</height>
</rect>
</property>
<attribute name="title" >
<rect>
<x>0</x>
<y>0</y>
- <width>284</width>
- <height>204</height>
+ <width>288</width>
+ <height>210</height>
</rect>
</property>
<attribute name="title" >
<rect>
<x>0</x>
<y>0</y>
- <width>284</width>
- <height>204</height>
+ <width>299</width>
+ <height>194</height>
</rect>
</property>
<attribute name="title" >
</widget>
</item>
<item row="2" column="0" >
+ <widget class="QCheckBox" name="slide_loop" >
+ <property name="text" >
+ <string>Loop</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" >
<widget class="QCheckBox" name="slide_fade" >
<property name="text" >
<string>Crossfade</string>
</property>
</widget>
</item>
- <item row="3" column="0" >
+ <item row="3" column="1" >
+ <widget class="KRestrictedLine" name="luma_duration" >
+ <property name="inputMask" >
+ <string>99:99:99:99; </string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0" >
<widget class="QCheckBox" name="slide_luma" >
<property name="text" >
<string>Luma file</string>
</property>
</widget>
</item>
- <item row="3" column="1" >
+ <item row="4" column="1" >
<widget class="KComboBox" name="luma_file" />
</item>
- <item row="5" column="1" >
+ <item row="5" column="0" colspan="2" >
+ <widget class="QLabel" name="slide_info" >
+ <property name="text" >
+ <string>No image found</string>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="1" >
<spacer name="verticalSpacer_6" >
<property name="orientation" >
<enum>Qt::Vertical</enum>
</property>
</spacer>
</item>
- <item row="2" column="1" >
- <widget class="QCheckBox" name="slide_loop" >
- <property name="text" >
- <string>Loop</string>
- </property>
- </widget>
- </item>
- <item row="4" column="0" colspan="2" >
- <widget class="QLabel" name="slide_info" >
- <property name="text" >
- <string>No image found</string>
- </property>
- </widget>
- </item>
</layout>
</widget>
<widget class="QWidget" name="tab_3" >
<rect>
<x>0</x>
<y>0</y>
- <width>284</width>
- <height>204</height>
+ <width>288</width>
+ <height>210</height>
</rect>
</property>
<attribute name="title" >
<rect>
<x>0</x>
<y>0</y>
- <width>284</width>
- <height>204</height>
+ <width>288</width>
+ <height>210</height>
</rect>
</property>
<attribute name="title" >
</widget>
</widget>
</item>
- <item row="7" column="1" colspan="2" >
- <spacer name="verticalSpacer_4" >
- <property name="orientation" >
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0" >
- <size>
- <width>20</width>
- <height>17</height>
- </size>
- </property>
- </spacer>
- </item>
- <item row="8" column="0" colspan="4" >
- <widget class="QDialogButtonBox" name="buttonBox" >
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="standardButtons" >
- <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
- </property>
- </widget>
- </item>
</layout>
+ <zorder>clip_thumb</zorder>
+ <zorder>label_5</zorder>
+ <zorder>clip_path</zorder>
+ <zorder>label_3</zorder>
+ <zorder>clip_description</zorder>
+ <zorder>clip_filesize_2</zorder>
+ <zorder>clip_duration</zorder>
+ <zorder>clip_filesize_3</zorder>
+ <zorder>clip_filesize</zorder>
+ <zorder>buttonBox</zorder>
+ <zorder>tabWidget</zorder>
</widget>
<customwidgets>
<customwidget>
<rect>
<x>0</x>
<y>0</y>
- <width>319</width>
- <height>332</height>
+ <width>251</width>
+ <height>392</height>
</rect>
</property>
<property name="windowTitle" >
<string>Slideshow Clip</string>
</property>
- <layout class="QGridLayout" >
+ <layout class="QGridLayout" name="gridLayout" >
<item row="0" column="0" >
<widget class="QLabel" name="label_3" >
<property name="text" >
</property>
</widget>
</item>
- <item row="0" column="1" colspan="2" >
+ <item row="0" column="1" >
<widget class="KLineEdit" name="clip_name" />
</item>
- <item row="3" column="0" >
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label" >
+ <property name="text" >
+ <string>Folder</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="KUrlRequester" name="folder_url" />
+ </item>
+ <item row="2" column="0" >
<widget class="QLabel" name="label_2" >
<property name="text" >
<string>Frame Duration</string>
</property>
</widget>
</item>
- <item row="3" column="1" colspan="2" >
+ <item row="2" column="1" >
<widget class="KRestrictedLine" name="clip_duration" >
<property name="inputMask" >
<string>99:99:99:99; </string>
</property>
</widget>
</item>
- <item row="9" column="0" colspan="3" >
- <widget class="QDialogButtonBox" name="buttonBox" >
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="standardButtons" >
- <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
- </property>
- </widget>
- </item>
- <item row="1" column="1" colspan="2" >
- <widget class="KUrlRequester" name="folder_url" />
- </item>
- <item row="1" column="0" >
- <widget class="QLabel" name="label" >
- <property name="text" >
- <string>Folder</string>
- </property>
- </widget>
- </item>
- <item row="4" column="1" colspan="2" >
- <widget class="KComboBox" name="image_type" />
- </item>
- <item row="4" column="0" >
+ <item row="3" column="0" >
<widget class="QLabel" name="label_4" >
<property name="text" >
<string>Image Type</string>
</property>
</widget>
</item>
- <item row="7" column="0" colspan="3" >
- <widget class="KListWidget" name="icon_list" />
+ <item row="3" column="1" >
+ <widget class="KComboBox" name="image_type" />
</item>
- <item row="8" column="0" >
- <widget class="QLabel" name="label_info" >
+ <item row="4" column="0" >
+ <widget class="QCheckBox" name="slide_loop" >
<property name="text" >
- <string>No image found</string>
+ <string>Loop</string>
</property>
</widget>
</item>
</property>
</widget>
</item>
- <item row="6" column="0" >
+ <item row="7" column="0" >
<widget class="QCheckBox" name="luma_fade" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
<property name="text" >
<string>Luma File</string>
</property>
</widget>
</item>
- <item row="6" column="1" colspan="2" >
- <widget class="KComboBox" name="luma_file" />
+ <item row="7" column="1" >
+ <widget class="KComboBox" name="luma_file" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="8" column="0" colspan="2" >
+ <widget class="KListWidget" name="icon_list" />
</item>
- <item row="5" column="1" >
- <widget class="QCheckBox" name="slide_loop" >
+ <item row="9" column="0" >
+ <widget class="QLabel" name="label_info" >
<property name="text" >
- <string>Loop</string>
+ <string>No image found</string>
+ </property>
+ </widget>
+ </item>
+ <item row="10" column="0" colspan="2" >
+ <widget class="QDialogButtonBox" name="buttonBox" >
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons" >
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="1" >
+ <widget class="KRestrictedLine" name="luma_duration" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="inputMask" >
+ <string>99:99:99:99; </string>
</property>
</widget>
</item>