From: <j-...@us...> - 2009-12-12 19:24:52
|
Revision: 4179 http://kdenlive.svn.sourceforge.net/kdenlive/?rev=4179&view=rev Author: j-b-m Date: 2009-12-12 19:24:42 +0000 (Sat, 12 Dec 2009) Log Message: ----------- Add "Favorites" category to rendering profiles for easier management Modified Paths: -------------- trunk/kdenlive/src/renderwidget.cpp trunk/kdenlive/src/renderwidget.h trunk/kdenlive/src/widgets/renderwidget_ui.ui Modified: trunk/kdenlive/src/renderwidget.cpp =================================================================== --- trunk/kdenlive/src/renderwidget.cpp 2009-12-09 17:42:13 UTC (rev 4178) +++ trunk/kdenlive/src/renderwidget.cpp 2009-12-12 19:24:42 UTC (rev 4179) @@ -81,6 +81,9 @@ m_view.buttonInfo->setIcon(KIcon("help-about")); m_view.hide_log->setIcon(KIcon("go-down")); + m_view.buttonFavorite->setIcon(KIcon("favorites")); + m_view.buttonFavorite->setToolTip(i18n("Copy profile to favorites")); + if (KdenliveSettings::showrenderparams()) { m_view.buttonInfo->setDown(true); } else m_view.advanced_params->hide(); @@ -120,6 +123,8 @@ connect(m_view.buttonSave, SIGNAL(clicked()), this, SLOT(slotSaveProfile())); connect(m_view.buttonEdit, SIGNAL(clicked()), this, SLOT(slotEditProfile())); connect(m_view.buttonDelete, SIGNAL(clicked()), this, SLOT(slotDeleteProfile())); + connect(m_view.buttonFavorite, SIGNAL(clicked()), this, SLOT(slotCopyToFavorites())); + connect(m_view.abort_job, SIGNAL(clicked()), this, SLOT(slotAbortCurrentJob())); connect(m_view.start_job, SIGNAL(clicked()), this, SLOT(slotStartCurrentJob())); connect(m_view.clean_up, SIGNAL(clicked()), this, SLOT(slotCLeanUpJobs())); @@ -338,7 +343,30 @@ ui.profile_name->setFocus(); if (d->exec() == QDialog::Accepted && !ui.profile_name->text().simplified().isEmpty()) { - QString exportFile = KStandardDirs::locateLocal("appdata", "export/customprofiles.xml"); + QString newProfileName = ui.profile_name->text().simplified(); + QString newGroupName = ui.group_name->text().simplified(); + if (newGroupName.isEmpty()) newGroupName = i18n("Custom"); + QString newMetaGroupId = ui.destination_list->itemData(ui.destination_list->currentIndex(), Qt::UserRole).toString(); + + QDomDocument doc; + QDomElement profileElement = doc.createElement("profile"); + profileElement.setAttribute("name", newProfileName); + profileElement.setAttribute("category", newGroupName); + profileElement.setAttribute("destinationid", newMetaGroupId); + profileElement.setAttribute("extension", ui.extension->text().simplified()); + profileElement.setAttribute("args", ui.parameters->toPlainText().simplified()); + doc.appendChild(profileElement); + saveProfile(doc.documentElement()); + + parseProfiles(newMetaGroupId, newGroupName, newProfileName); + } + delete d; +} + + +void RenderWidget::saveProfile(QDomElement newprofile) +{ + QString exportFile = KStandardDirs::locateLocal("appdata", "export/customprofiles.xml"); QDomDocument doc; QFile file(exportFile); doc.setContent(&file, false); @@ -360,20 +388,17 @@ doc.appendChild(profiles); } - QString newProfileName = ui.profile_name->text().simplified(); - QString newGroupName = ui.group_name->text().simplified(); - if (newGroupName.isEmpty()) newGroupName = i18n("Custom"); - QString newMetaGroupId = ui.destination_list->itemData(ui.destination_list->currentIndex(), Qt::UserRole).toString(); + QDomNodeList profilelist = doc.elementsByTagName("profile"); int i = 0; while (!profilelist.item(i).isNull()) { // make sure a profile with same name doesn't exist documentElement = profilelist.item(i).toElement(); QString profileName = documentElement.attribute("name"); - if (profileName == newProfileName) { + if (profileName == newprofile.attribute("name")) { // a profile with that same name already exists bool ok; - newProfileName = QInputDialog::getText(this, i18n("Profile already exists"), i18n("This profile name already exists. Change the name if you don't want to overwrite it."), QLineEdit::Normal, newProfileName, &ok); + QString newProfileName = QInputDialog::getText(this, i18n("Profile already exists"), i18n("This profile name already exists. Change the name if you don't want to overwrite it."), QLineEdit::Normal, profileName, &ok); if (!ok) return; if (profileName == newProfileName) { profiles.removeChild(profilelist.item(i)); @@ -383,19 +408,12 @@ i++; } - QDomElement profileElement = doc.createElement("profile"); - profileElement.setAttribute("name", newProfileName); - profileElement.setAttribute("category", newGroupName); - profileElement.setAttribute("destinationid", newMetaGroupId); - profileElement.setAttribute("extension", ui.extension->text().simplified()); - profileElement.setAttribute("args", ui.parameters->toPlainText().simplified()); - profiles.appendChild(profileElement); + profiles.appendChild(newprofile); //QCString save = doc.toString().utf8(); if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) { KMessageBox::sorry(this, i18n("Unable to write to file %1", exportFile)); - delete d; return; } QTextStream out(&file); @@ -403,15 +421,32 @@ if (file.error() != QFile::NoError) { KMessageBox::error(this, i18n("Cannot write to file %1", exportFile)); file.close(); - delete d; return; } file.close(); - parseProfiles(newMetaGroupId, newGroupName, newProfileName); - } - delete d; } +void RenderWidget::slotCopyToFavorites() +{ + QListWidgetItem *item = m_view.size_list->currentItem(); + if (!item) return; + QString currentGroup = m_view.format_list->currentItem()->text(); + + QString params = item->data(ParamsRole).toString(); + QString extension = item->data(ExtensionRole).toString(); + QString currentProfile = item->text(); + QDomDocument doc; + QDomElement profileElement = doc.createElement("profile"); + profileElement.setAttribute("name", currentProfile); + profileElement.setAttribute("category", i18n("Custom")); + profileElement.setAttribute("destinationid", "favorites"); + profileElement.setAttribute("extension", extension); + profileElement.setAttribute("args", params); + doc.appendChild(profileElement); + saveProfile(doc.documentElement()); + parseProfiles(m_view.destination_list->itemData(m_view.destination_list->currentIndex(), Qt::UserRole).toString(), currentGroup, currentProfile); +} + void RenderWidget::slotEditProfile() { QListWidgetItem *item = m_view.size_list->currentItem(); @@ -1114,6 +1149,7 @@ m_view.format_list->clear(); m_view.destination_list->clear(); m_view.destination_list->addItem(KIcon("video-x-generic"), i18n("File rendering")); + m_view.destination_list->addItem(KIcon("favorites"), i18n("Favorites"), "favorites"); m_view.destination_list->addItem(KIcon("media-optical"), i18n("DVD"), "dvd"); m_view.destination_list->addItem(KIcon("audio-x-generic"), i18n("Audio only"), "audioonly"); m_view.destination_list->addItem(KIcon("applications-internet"), i18n("Web sites"), "websites"); Modified: trunk/kdenlive/src/renderwidget.h =================================================================== --- trunk/kdenlive/src/renderwidget.h 2009-12-09 17:42:13 UTC (rev 4178) +++ trunk/kdenlive/src/renderwidget.h 2009-12-12 19:24:42 UTC (rev 4179) @@ -141,7 +141,8 @@ void slotPrepareExport(bool scriptExport = false); void slotPlayRendering(QTreeWidgetItem *item, int); void slotStartCurrentJob(); - + void slotCopyToFavorites(); + private: Ui::RenderWidget_UI m_view; MltVideoProfile m_profile; @@ -156,6 +157,7 @@ KUrl filenameWithExtension(KUrl url, QString extension); void checkRenderStatus(); void startRendering(QTreeWidgetItem *item); + void saveProfile(QDomElement newprofile); signals: void abortProcess(const QString &url); Modified: trunk/kdenlive/src/widgets/renderwidget_ui.ui =================================================================== --- trunk/kdenlive/src/widgets/renderwidget_ui.ui 2009-12-09 17:42:13 UTC (rev 4178) +++ trunk/kdenlive/src/widgets/renderwidget_ui.ui 2009-12-12 19:24:42 UTC (rev 4179) @@ -34,7 +34,7 @@ </property> </widget> </item> - <item row="0" column="2" colspan="7"> + <item row="0" column="2" colspan="9"> <widget class="KComboBox" name="destination_list"/> </item> <item row="1" column="0" colspan="2"> @@ -44,7 +44,7 @@ </property> </widget> </item> - <item row="1" column="2" colspan="7"> + <item row="1" column="2" colspan="9"> <widget class="KUrlRequester" name="out_file"/> </item> <item row="2" column="0"> @@ -61,20 +61,7 @@ </property> </widget> </item> - <item row="2" column="2" colspan="2"> - <spacer name="horizontalSpacer_2"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>124</width> - <height>23</height> - </size> - </property> - </spacer> - </item> - <item row="2" column="4" colspan="2"> + <item row="2" column="2" colspan="4"> <widget class="KComboBox" name="format_selection"> <item> <property name="text"> @@ -88,28 +75,28 @@ </item> </widget> </item> - <item row="2" column="6"> + <item row="2" column="8"> <widget class="QToolButton" name="buttonEdit"> <property name="text"> <string>E</string> </property> </widget> </item> - <item row="2" column="7"> + <item row="2" column="9"> <widget class="QToolButton" name="buttonSave"> <property name="text"> <string>S</string> </property> </widget> </item> - <item row="2" column="8"> + <item row="2" column="10"> <widget class="QToolButton" name="buttonDelete"> <property name="text"> <string>D</string> </property> </widget> </item> - <item row="3" column="0" colspan="9"> + <item row="3" column="0" colspan="11"> <widget class="QSplitter" name="splitter_3"> <property name="orientation"> <enum>Qt::Vertical</enum> @@ -171,7 +158,7 @@ </item> </widget> </item> - <item row="4" column="5" colspan="4"> + <item row="4" column="5" colspan="6"> <widget class="QCheckBox" name="export_audio"> <property name="text"> <string>Export audio</string> @@ -198,28 +185,28 @@ </property> </widget> </item> - <item row="5" column="5" colspan="4"> + <item row="5" column="5" colspan="6"> <widget class="QCheckBox" name="tc_overlay"> <property name="text"> <string>Timecode overlay</string> </property> </widget> </item> - <item row="9" column="0" colspan="9"> + <item row="9" column="0" colspan="11"> <widget class="QCheckBox" name="open_browser"> <property name="text"> <string>Open browser window after export</string> </property> </widget> </item> - <item row="10" column="0" colspan="9"> + <item row="10" column="0" colspan="11"> <widget class="QCheckBox" name="play_after"> <property name="text"> <string>Play after render</string> </property> </widget> </item> - <item row="11" column="0" colspan="9"> + <item row="11" column="0" colspan="11"> <layout class="QHBoxLayout" name="horizontalLayout"> <item> <widget class="QRadioButton" name="render_full"> @@ -247,7 +234,7 @@ </item> </layout> </item> - <item row="12" column="0" colspan="9"> + <item row="12" column="0" colspan="11"> <widget class="QGroupBox" name="guides_box"> <property name="title"> <string/> @@ -297,7 +284,7 @@ </property> </widget> </item> - <item row="13" column="3" colspan="4"> + <item row="13" column="3" colspan="6"> <spacer name="horizontalSpacer"> <property name="orientation"> <enum>Qt::Horizontal</enum> @@ -310,27 +297,47 @@ </property> </spacer> </item> - <item row="13" column="7" colspan="2"> + <item row="13" column="9" colspan="2"> <widget class="KPushButton" name="buttonClose"> <property name="text"> <string>Close</string> </property> </widget> </item> - <item row="6" column="0" colspan="9"> + <item row="6" column="0" colspan="11"> <widget class="QCheckBox" name="open_dvd"> <property name="text"> <string>Open Dvd wizard after rendering</string> </property> </widget> </item> - <item row="7" column="0" colspan="9"> + <item row="7" column="0" colspan="11"> <widget class="QCheckBox" name="create_chapter"> <property name="text"> <string>Create chapter file based on guides</string> </property> </widget> </item> + <item row="2" column="7"> + <widget class="QToolButton" name="buttonFavorite"> + <property name="text"> + <string>...</string> + </property> + </widget> + </item> + <item row="2" column="6"> + <spacer name="horizontalSpacer_2"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>124</width> + <height>23</height> + </size> + </property> + </spacer> + </item> </layout> </widget> <widget class="QWidget" name="tab_2"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |