From 360700e911699e6417f65bb9a6f2157385043ebc Mon Sep 17 00:00:00 2001 From: "Simon A. Eugster" Date: Mon, 26 Jan 2009 18:48:08 +0000 Subject: [PATCH] Fixed part of bug 617: Adding file extension automatically in the Rendering dialog. When there was no extension, only a . has been added when clicking the first time. http://www.kdenlive.org/mantis/view.php?id=617 svn path=/branches/KDE4/; revision=2974 --- src/renderwidget.cpp | 43 +++++++++++++++++++++++++++++++++---------- src/renderwidget.h | 1 + 2 files changed, 34 insertions(+), 10 deletions(-) diff --git a/src/renderwidget.cpp b/src/renderwidget.cpp index 20a61c70..6a4200f3 100644 --- a/src/renderwidget.cpp +++ b/src/renderwidget.cpp @@ -160,6 +160,13 @@ void RenderWidget::setGuides(QDomElement guidesxml, double duration) { void RenderWidget::slotUpdateButtons() { if (m_view.out_file->url().isEmpty()) m_view.buttonStart->setEnabled(false); else m_view.buttonStart->setEnabled(true); + KUrl url = m_view.out_file->url(); + QListWidgetItem *item = m_view.size_list->currentItem(); + QString extension = item->data(ExtensionRole).toString(); + url = filenameWithExtension(url, extension); + kDebug() << "URL SHOULD BE " << url.path(); + //m_view.out_file->setUrl(url); + // not possible here; key input wouldn't be possible anymore } void RenderWidget::slotSaveProfile() { @@ -590,6 +597,21 @@ void RenderWidget::refreshView() { refreshParams(); } +KUrl RenderWidget::filenameWithExtension(KUrl url, QString extension) { + QString path; + if (!url.isEmpty()) { + path = url.path(); + int pos = path.lastIndexOf('.') + 1; + if (pos == 0) path.append('.' + extension); + else path = path.left(pos) + extension; + + } else { + path = QDir::homePath() + "/untitled." + extension; + } + return KUrl(path); +} + + void RenderWidget::refreshParams() { QListWidgetItem *item = m_view.size_list->currentItem(); if (!item || item->isHidden()) { @@ -601,16 +623,17 @@ void RenderWidget::refreshParams() { QString extension = item->data(ExtensionRole).toString(); m_view.advanced_params->setPlainText(params); m_view.advanced_params->setToolTip(params); - KUrl url = m_view.out_file->url(); - if (!url.isEmpty()) { - QString path = url.path(); - int pos = path.lastIndexOf('.') + 1; - if (pos == 0) path.append('.') + extension; - else path = path.left(pos) + extension; - m_view.out_file->setUrl(KUrl(path)); - } else { - m_view.out_file->setUrl(KUrl(QDir::homePath() + "/untitled." + extension)); - } + KUrl url = filenameWithExtension(m_view.out_file->url(), extension); + m_view.out_file->setUrl(url); +// if (!url.isEmpty()) { +// QString path = url.path(); +// int pos = path.lastIndexOf('.') + 1; +// if (pos == 0) path.append('.' + extension); +// else path = path.left(pos) + extension; +// m_view.out_file->setUrl(KUrl(path)); +// } else { +// m_view.out_file->setUrl(KUrl(QDir::homePath() + "/untitled." + extension)); +// } m_view.out_file->setFilter("*." + extension); if (item->data(EditableRole).toString().isEmpty()) { diff --git a/src/renderwidget.h b/src/renderwidget.h index 1c4d7a33..c3759c87 100644 --- a/src/renderwidget.h +++ b/src/renderwidget.h @@ -95,6 +95,7 @@ private: void parseProfiles(QString group = QString(), QString profile = QString()); void parseFile(QString exportFile, bool editable); void updateButtons(); + KUrl filenameWithExtension(KUrl url, QString extension); signals: void doRender(const QString&, const QString&, const QStringList &, const QStringList &, bool, bool, double, double, bool); -- 2.39.2