]> git.sesse.net Git - kdenlive/commitdiff
331 fixed: Naming of tracks now Audio 1, Video 1, etc. http://www.kdenlive.org/mantis...
authorSimon A. Eugster <simon.eu@gmail.com>
Sun, 23 May 2010 18:38:41 +0000 (18:38 +0000)
committerSimon A. Eugster <simon.eu@gmail.com>
Sun, 23 May 2010 18:38:41 +0000 (18:38 +0000)
Titler widget: vertical lines added to keep different elements separated
Comments inserted
Warning message adjusted

svn path=/trunk/kdenlive/; revision=4479

src/kdenlivedoc.cpp
src/kdenlivedoc.h
src/titlewidget.cpp
src/titlewidget.h
src/widgets/titlewidget_ui.ui

index e8bec8ca75edc8814086178bc53ac578d466e294..f88528a29c65c9563826c0d4a5ad47405399b956 100644 (file)
 const double DOCUMENTVERSION = 0.85;
 
 KdenliveDoc::KdenliveDoc(const KUrl &url, const KUrl &projectFolder, QUndoGroup *undoGroup, QString profileName, const QPoint tracks, Render *render, MainWindow *parent) :
-        QObject(parent),
-        m_autosave(NULL),
-        m_url(url),
-        m_render(render),
-        m_commandStack(new QUndoStack(undoGroup)),
-        m_modified(false),
-        m_projectFolder(projectFolder),
-        m_abortLoading(false)
+    QObject(parent),
+    m_autosave(NULL),
+    m_url(url),
+    m_render(render),
+    m_commandStack(new QUndoStack(undoGroup)),
+    m_modified(false),
+    m_projectFolder(projectFolder),
+    m_abortLoading(false)
 {
     m_clipManager = new ClipManager(this);
     m_autoSaveTimer = new QTimer(this);
@@ -69,10 +69,10 @@ KdenliveDoc::KdenliveDoc(const KUrl &url, const KUrl &projectFolder, QUndoGroup
     m_documentProperties["zonein"] = "0";
     m_documentProperties["zoneout"] = "100";
 
-    if (!url.isEmpty()) {
+    if(!url.isEmpty()) {
         QString tmpFile;
         success = KIO::NetAccess::download(url.path(), tmpFile, parent);
-        if (!success) // The file cannot be opened
+        if(!success)  // The file cannot be opened
             KMessageBox::error(parent, KIO::NetAccess::lastErrorString());
         else {
             QFile file(tmpFile);
@@ -83,13 +83,13 @@ KdenliveDoc::KdenliveDoc(const KUrl &url, const KUrl &projectFolder, QUndoGroup
             file.close();
             KIO::NetAccess::removeTempFile(tmpFile);
 
-            if (!success) // It is corrupted
+            if(!success)  // It is corrupted
                 KMessageBox::error(parent, errorMsg);
             else {
                 parent->slotGotProgressInfo(i18n("Validating"), 0);
                 DocumentValidator validator(m_document);
                 success = validator.isProject();
-                if (!success) {
+                if(!success) {
                     // It is not a project file
                     parent->slotGotProgressInfo(i18n("File %1 is not a Kdenlive project file", m_url.path()), 0);
                 } else {
@@ -99,7 +99,7 @@ KdenliveDoc::KdenliveDoc(const KUrl &url, const KUrl &projectFolder, QUndoGroup
                      */
                     // TODO: backup the document or alert the user?
                     success = validator.validate(DOCUMENTVERSION);
-                    if (success) { // Let the validator handle error messages
+                    if(success) {  // Let the validator handle error messages
                         parent->slotGotProgressInfo(i18n("Loading"), 0);
                         QDomElement mlt = m_document.firstChildElement("mlt");
                         QDomElement infoXml = mlt.firstChildElement("kdenlivedoc");
@@ -108,20 +108,20 @@ KdenliveDoc::KdenliveDoc(const KUrl &url, const KUrl &projectFolder, QUndoGroup
                         m_projectFolder = KUrl(infoXml.attribute("projectfolder"));
                         QDomElement docproperties = infoXml.firstChildElement("documentproperties");
                         QDomNamedNodeMap props = docproperties.attributes();
-                        for (int i = 0; i < props.count(); i++) {
+                        for(int i = 0; i < props.count(); i++) {
                             m_documentProperties.insert(props.item(i).nodeName(), props.item(i).nodeValue());
                         }
                         // Build tracks
                         QDomElement e;
                         QDomElement tracksinfo = infoXml.firstChildElement("tracksinfo");
                         TrackInfo projectTrack;
-                        if (!tracksinfo.isNull()) {
+                        if(!tracksinfo.isNull()) {
                             QDomNodeList trackslist = tracksinfo.childNodes();
                             int maxchild = trackslist.count();
-                            for (int k = 0; k < maxchild; k++) {
+                            for(int k = 0; k < maxchild; k++) {
                                 e = trackslist.at(k).toElement();
-                                if (e.tagName() == "trackinfo") {
-                                    if (e.attribute("type") == "audio") projectTrack.type = AUDIOTRACK;
+                                if(e.tagName() == "trackinfo") {
+                                    if(e.attribute("type") == "audio") projectTrack.type = AUDIOTRACK;
                                     else projectTrack.type = VIDEOTRACK;
                                     projectTrack.isMute = e.attribute("mute").toInt();
                                     projectTrack.isBlind = e.attribute("blind").toInt();
@@ -135,27 +135,27 @@ KdenliveDoc::KdenliveDoc(const KUrl &url, const KUrl &projectFolder, QUndoGroup
                         QDomNodeList producers = m_document.elementsByTagName("producer");
                         QDomNodeList infoproducers = m_document.elementsByTagName("kdenlive_producer");
                         parent->slotGotProgressInfo(i18n("Check missing clips"), 0);
-                        if (checkDocumentClips(infoproducers) == false) m_abortLoading = true;
+                        if(checkDocumentClips(infoproducers) == false) m_abortLoading = true;
                         const int max = producers.count();
                         const int infomax = infoproducers.count();
 
                         QDomNodeList                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    folders = m_document.elementsByTagName("folder");
-                        for (int i = 0; i < folders.count(); i++) {
+                        for(int i = 0; i < folders.count(); i++) {
                             e = folders.item(i).cloneNode().toElement();
                             m_clipManager->addFolder(e.attribute("id"), e.attribute("name"));
                         }
 
-                        for (int i = 0; i < infomax && !m_abortLoading; i++) {
+                        for(int i = 0; i < infomax && !m_abortLoading; i++) {
                             e = infoproducers.item(i).cloneNode().toElement();
                             QString prodId = e.attribute("id");
-                            if (!e.isNull() && prodId != "black" && !prodId.startsWith("slowmotion") && !m_abortLoading) {
+                            if(!e.isNull() && prodId != "black" && !prodId.startsWith("slowmotion") && !m_abortLoading) {
                                 e.setTagName("producer");
                                 // Get MLT's original producer properties
                                 QDomElement orig;
-                                for (int j = 0; j < max; j++) {
+                                for(int j = 0; j < max; j++) {
                                     QDomElement o = producers.item(j).cloneNode().toElement();
                                     QString origId = o.attribute("id").section('_', 0, 0);
-                                    if (origId == prodId) {
+                                    if(origId == prodId) {
                                         orig = o;
                                         break;
                                     }
@@ -163,7 +163,7 @@ KdenliveDoc::KdenliveDoc(const KUrl &url, const KUrl &projectFolder, QUndoGroup
                                 addClipInfo(e, orig, prodId);
                             }
                         }
-                        if (m_abortLoading) {
+                        if(m_abortLoading) {
                             //parent->slotGotProgressInfo(i18n("File %1 is not a Kdenlive project file."), 100);
                             emit resetProjectList();
                             m_documentProperties.remove("position");
@@ -175,12 +175,12 @@ KdenliveDoc::KdenliveDoc(const KUrl &url, const KUrl &projectFolder, QUndoGroup
                             m_clipManager->clear();
                         } else {
                             QDomElement markers = infoXml.firstChildElement("markers");
-                            if (!markers.isNull()) {
+                            if(!markers.isNull()) {
                                 QDomNodeList markerslist = markers.childNodes();
                                 int maxchild = markerslist.count();
-                                for (int k = 0; k < maxchild; k++) {
+                                for(int k = 0; k < maxchild; k++) {
                                     e = markerslist.at(k).toElement();
-                                    if (e.tagName() == "marker") {
+                                    if(e.tagName() == "marker") {
                                         m_clipManager->getClipById(e.attribute("id"))->addSnapMarker(GenTime(e.attribute("time").toDouble()), e.attribute("comment"));
                                     }
                                 }
@@ -197,7 +197,7 @@ KdenliveDoc::KdenliveDoc(const KUrl &url, const KUrl &projectFolder, QUndoGroup
     }
 
     // Something went wrong, or a new file was requested: create a new project
-    if (!success) {
+    if(!success) {
         setProfilePath(profileName);
         m_url = KUrl();
         m_document = createEmptyDocument(tracks.x(), tracks.y());
@@ -208,7 +208,7 @@ KdenliveDoc::KdenliveDoc(const KUrl &url, const KUrl &projectFolder, QUndoGroup
     // Set the video profile (empty == default)
 
     // Make sure the project folder is usable
-    if (m_projectFolder.isEmpty() || !KIO::NetAccess::exists(m_projectFolder.path(), KIO::NetAccess::DestinationSide, parent)) {
+    if(m_projectFolder.isEmpty() || !KIO::NetAccess::exists(m_projectFolder.path(), KIO::NetAccess::DestinationSide, parent)) {
         KMessageBox::information(parent, i18n("Document project folder is invalid, setting it to the default one: %1", KdenliveSettings::defaultprojectfolder()));
         m_projectFolder = KUrl(KdenliveSettings::defaultprojectfolder());
     }
@@ -219,7 +219,7 @@ KdenliveDoc::KdenliveDoc(const KUrl &url, const KUrl &projectFolder, QUndoGroup
     KStandardDirs::makeDir(m_projectFolder.path(KUrl::AddTrailingSlash) + "ladspa/");
 
     kDebug() << "Kdenlive document, init timecode: " << m_fps;
-    if (m_fps == 30000.0 / 1001.0) m_timecode.setFormat(m_fps, true);
+    if(m_fps == 30000.0 / 1001.0) m_timecode.setFormat(m_fps, true);
     else m_timecode.setFormat(m_fps);
 
     //kDebug() << "// SETTING SCENE LIST:\n\n" << m_document.toString();
@@ -234,8 +234,8 @@ KdenliveDoc::~KdenliveDoc()
     delete m_clipManager;
     kDebug() << "// DEL CLP MAN done";
     delete m_autoSaveTimer;
-    if (m_autosave) {
-        if (!m_autosave->fileName().isEmpty()) m_autosave->remove();
+    if(m_autosave) {
+        if(!m_autosave->fileName().isEmpty()) m_autosave->remove();
         delete m_autosave;
     }
 }
@@ -243,7 +243,7 @@ KdenliveDoc::~KdenliveDoc()
 int KdenliveDoc::setSceneList()
 {
     m_render->resetProfile(KdenliveSettings::current_profile());
-    if (m_render->setSceneList(m_document.toString(), m_documentProperties.value("position").toInt()) == -1) {
+    if(m_render->setSceneList(m_document.toString(), m_documentProperties.value("position").toInt()) == -1) {
         // INVALID MLT Consumer, something is wrong
         return -1;
     }
@@ -269,10 +269,16 @@ QDomDocument KdenliveDoc::createEmptyDocument(int videotracks, int audiotracks)
 
     m_tracksList.clear();
 
-    for (int i = 0; i < audiotracks; i++) {
+    // Tracks are added «backwards», so we need to reverse the track numbering
+    // mbt 331: http://www.kdenlive.org/mantis/view.php?id=331
+    // Better default names for tracks: Audio 1 etc. instead of blank numbers
+    for(int i = 0; i < audiotracks; i++) {
+        audioTrack.trackName = QString("Audio ") + QString::number(audiotracks - i);
         m_tracksList.append(audioTrack);
+
     }
-    for (int i = 0; i < videotracks; i++) {
+    for(int i = 0; i < videotracks; i++) {
+        videoTrack.trackName = QString("Video ") + QString::number(videotracks - i);
         m_tracksList.append(videoTrack);
     }
     return createEmptyDocument(m_tracksList);
@@ -349,7 +355,7 @@ QDomDocument KdenliveDoc::createEmptyDocument(QList <TrackInfo> tracks)
     // create playlists
     int total = tracks.count() + 1;
 
-    for (int i = 1; i < total; i++) {
+    for(int i = 1; i < total; i++) {
         QDomElement playlist = doc.createElement("playlist");
         playlist.setAttribute("id", "playlist" + QString::number(i));
         mlt.appendChild(playlist);
@@ -359,20 +365,20 @@ QDomDocument KdenliveDoc::createEmptyDocument(QList <TrackInfo> tracks)
     track0.setAttribute("producer", "black_track");
     tractor.appendChild(track0);
 
-    // create audio tracks
-    for (int i = 1; i < total; i++) {
+    // create audio and video tracks
+    for(int i = 1; i < total; i++) {
         QDomElement track = doc.createElement("track");
         track.setAttribute("producer", "playlist" + QString::number(i));
-        if (tracks.at(i - 1).type == AUDIOTRACK)
+        if(tracks.at(i - 1).type == AUDIOTRACK) {
             track.setAttribute("hide", "video");
-        else if (tracks.at(i - 1).isBlind)
+        } else if(tracks.at(i - 1).isBlind)
             track.setAttribute("hide", "video");
-        if (tracks.at(i - 1).isMute)
+        if(tracks.at(i - 1).isMute)
             track.setAttribute("hide", "audio");
         tractor.appendChild(track);
     }
 
-    for (int i = 2; i < total ; i++) {
+    for(int i = 2; i < total ; i++) {
         QDomElement transition = doc.createElement("transition");
         transition.setAttribute("always_active", "1");
 
@@ -419,7 +425,7 @@ void KdenliveDoc::syncGuides(QList <Guide *> guides)
     m_guidesXml.appendChild(guideNode);
     QDomElement e;
 
-    for (int i = 0; i < guides.count(); i++) {
+    for(int i = 0; i < guides.count(); i++) {
         e = m_guidesXml.createElement("guide");
         e.setAttribute("time", guides.at(i)->position().ms() / 1000);
         e.setAttribute("comment", guides.at(i)->label());
@@ -436,14 +442,14 @@ QDomElement KdenliveDoc::guidesXml() const
 
 void KdenliveDoc::slotAutoSave()
 {
-    if (m_render && m_autosave) {
-        if (!m_autosave->isOpen() && !m_autosave->open(QIODevice::ReadWrite)) {
+    if(m_render && m_autosave) {
+        if(!m_autosave->isOpen() && !m_autosave->open(QIODevice::ReadWrite)) {
             // show error: could not open the autosave file
             kDebug() << "ERROR; CANNOT CREATE AUTOSAVE FILE";
         }
         kDebug() << "// AUTOSAVE FILE: " << m_autosave->fileName();
         QString doc;
-        if (KdenliveSettings::dropbframes()) {
+        if(KdenliveSettings::dropbframes()) {
             KdenliveSettings::setDropbframes(false);
             m_clipManager->updatePreviewSettings();
             doc = m_render->sceneList();
@@ -481,7 +487,7 @@ bool KdenliveDoc::saveSceneList(const QString &path, const QString &scene)
     QDomDocument sceneList;
     sceneList.setContent(scene, true);
     QDomElement mlt = sceneList.firstChildElement("mlt");
-    if (mlt.isNull() || !mlt.hasChildNodes()) {
+    if(mlt.isNull() || !mlt.hasChildNodes()) {
         //Make sure we don't save if scenelist is corrupted
         KMessageBox::error(kapp->activeWindow(), i18n("Cannot write to file %1", path));
         return false;
@@ -497,7 +503,7 @@ bool KdenliveDoc::saveSceneList(const QString &path, const QString &scene)
 
     QDomElement docproperties = sceneList.createElement("documentproperties");
     QMapIterator<QString, QString> i(m_documentProperties);
-    while (i.hasNext()) {
+    while(i.hasNext()) {
         i.next();
         docproperties.setAttribute(i.key(), i.value());
     }
@@ -520,9 +526,9 @@ bool KdenliveDoc::saveSceneList(const QString &path, const QString &scene)
 
     // tracks info
     QDomElement tracksinfo = sceneList.createElement("tracksinfo");
-    foreach(const TrackInfo &info, m_tracksList) {
+    foreach(const TrackInfo & info, m_tracksList) {
         QDomElement trackinfo = sceneList.createElement("trackinfo");
-        if (info.type == AUDIOTRACK) trackinfo.setAttribute("type", "audio");
+        if(info.type == AUDIOTRACK) trackinfo.setAttribute("type", "audio");
         trackinfo.setAttribute("mute", info.isMute);
         trackinfo.setAttribute("blind", info.isBlind);
         trackinfo.setAttribute("locked", info.isLocked);
@@ -535,7 +541,7 @@ bool KdenliveDoc::saveSceneList(const QString &path, const QString &scene)
     QMap <QString, QString> folderlist = m_clipManager->documentFolderList();
 
     QMapIterator<QString, QString> f(folderlist);
-    while (f.hasNext()) {
+    while(f.hasNext()) {
         f.next();
         QDomElement folder = sceneList.createElement("folder");
         folder.setAttribute("id", f.key());
@@ -546,12 +552,12 @@ bool KdenliveDoc::saveSceneList(const QString &path, const QString &scene)
     // Save project clips
     QDomElement e;
     QList <DocClipBase*> list = m_clipManager->documentClipList();
-    for (int i = 0; i < list.count(); i++) {
+    for(int i = 0; i < list.count(); i++) {
         e = list.at(i)->toXML();
         e.setTagName("kdenlive_producer");
         addedXml.appendChild(sceneList.importNode(e, true));
         QList < CommentedTime > marks = list.at(i)->commentedSnapMarkers();
-        for (int j = 0; j < marks.count(); j++) {
+        for(int j = 0; j < marks.count(); j++) {
             QDomElement marker = sceneList.createElement("marker");
             marker.setAttribute("time", marks.at(j).time().ms() / 1000);
             marker.setAttribute("comment", marks.at(j).comment());
@@ -562,7 +568,7 @@ bool KdenliveDoc::saveSceneList(const QString &path, const QString &scene)
     addedXml.appendChild(markers);
 
     // Add guides
-    if (!m_guidesXml.isNull()) addedXml.appendChild(sceneList.importNode(m_guidesXml.documentElement(), true));
+    if(!m_guidesXml.isNull()) addedXml.appendChild(sceneList.importNode(m_guidesXml.documentElement(), true));
 
     // Add clip groups
     addedXml.appendChild(sceneList.importNode(m_clipManager->groupsXml(), true));
@@ -570,14 +576,14 @@ bool KdenliveDoc::saveSceneList(const QString &path, const QString &scene)
     //wes.appendChild(doc.importNode(kdenliveData, true));
 
     QFile file(path);
-    if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
+    if(!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
         kWarning() << "//////  ERROR writing to file: " << path;
         KMessageBox::error(kapp->activeWindow(), i18n("Cannot write to file %1", path));
         return false;
     }
 
     file.write(sceneList.toString().toUtf8());
-    if (file.error() != QFile::NoError) {
+    if(file.error() != QFile::NoError) {
         KMessageBox::error(kapp->activeWindow(), i18n("Cannot write to file %1", path));
         file.close();
         return false;
@@ -599,12 +605,12 @@ KUrl KdenliveDoc::projectFolder() const
 
 void KdenliveDoc::setProjectFolder(KUrl url)
 {
-    if (url == m_projectFolder) return;
+    if(url == m_projectFolder) return;
     setModified(true);
     KStandardDirs::makeDir(url.path());
     KStandardDirs::makeDir(url.path(KUrl::AddTrailingSlash) + "titles/");
     KStandardDirs::makeDir(url.path(KUrl::AddTrailingSlash) + "thumbs/");
-    if (KMessageBox::questionYesNo(kapp->activeWindow(), i18n("You have changed the project folder. Do you want to copy the cached data from %1 to the new folder %2?").arg(m_projectFolder.path(), url.path())) == KMessageBox::Yes) moveProjectData(url);
+    if(KMessageBox::questionYesNo(kapp->activeWindow(), i18n("You have changed the project folder. Do you want to copy the cached data from %1 to the new folder %2?").arg(m_projectFolder.path(), url.path())) == KMessageBox::Yes) moveProjectData(url);
     m_projectFolder = url;
 }
 
@@ -612,27 +618,27 @@ void KdenliveDoc::moveProjectData(KUrl url)
 {
     QList <DocClipBase*> list = m_clipManager->documentClipList();
     //TODO: Also move ladspa effects files
-    for (int i = 0; i < list.count(); i++) {
+    for(int i = 0; i < list.count(); i++) {
         DocClipBase *clip = list.at(i);
-        if (clip->clipType() == TEXT) {
+        if(clip->clipType() == TEXT) {
             // the image for title clip must be moved
             KUrl oldUrl = clip->fileURL();
             KUrl newUrl = KUrl(url.path(KUrl::AddTrailingSlash) + "titles/" + oldUrl.fileName());
             KIO::Job *job = KIO::copy(oldUrl, newUrl);
-            if (KIO::NetAccess::synchronousRun(job, 0)) clip->setProperty("resource", newUrl.path());
+            if(KIO::NetAccess::synchronousRun(job, 0)) clip->setProperty("resource", newUrl.path());
         }
         QString hash = clip->getClipHash();
         KUrl oldVideoThumbUrl = KUrl(m_projectFolder.path(KUrl::AddTrailingSlash) + "thumbs/" + hash + ".png");
         KUrl oldAudioThumbUrl = KUrl(m_projectFolder.path(KUrl::AddTrailingSlash) + "thumbs/" + hash + ".thumb");
-        if (KIO::NetAccess::exists(oldVideoThumbUrl, KIO::NetAccess::SourceSide, 0)) {
+        if(KIO::NetAccess::exists(oldVideoThumbUrl, KIO::NetAccess::SourceSide, 0)) {
             KUrl newUrl = KUrl(url.path(KUrl::AddTrailingSlash) + "thumbs/" + hash + ".png");
             KIO::Job *job = KIO::copy(oldVideoThumbUrl, newUrl);
             KIO::NetAccess::synchronousRun(job, 0);
         }
-        if (KIO::NetAccess::exists(oldAudioThumbUrl, KIO::NetAccess::SourceSide, 0)) {
+        if(KIO::NetAccess::exists(oldAudioThumbUrl, KIO::NetAccess::SourceSide, 0)) {
             KUrl newUrl = KUrl(url.path(KUrl::AddTrailingSlash) + "thumbs/" + hash + ".thumb");
             KIO::Job *job = KIO::copy(oldAudioThumbUrl, newUrl);
-            if (KIO::NetAccess::synchronousRun(job, 0)) clip->refreshThumbUrl();
+            if(KIO::NetAccess::synchronousRun(job, 0)) clip->refreshThumbUrl();
         }
     }
 }
@@ -649,14 +655,14 @@ MltVideoProfile KdenliveDoc::mltProfile() const
 
 bool KdenliveDoc::setProfilePath(QString path)
 {
-    if (path.isEmpty()) path = KdenliveSettings::default_profile();
-    if (path.isEmpty()) path = "dv_pal";
+    if(path.isEmpty()) path = KdenliveSettings::default_profile();
+    if(path.isEmpty()) path = "dv_pal";
     m_profile = ProfilesDialog::getVideoProfile(path);
     bool current_fps = m_fps;
-    if (m_profile.path.isEmpty()) {
+    if(m_profile.path.isEmpty()) {
         // Profile not found, use embedded profile
         QDomElement profileInfo = m_document.elementsByTagName("profileinfo").at(0).toElement();
-        if (profileInfo.isNull()) {
+        if(profileInfo.isNull()) {
             KMessageBox::information(kapp->activeWindow(), i18n("Project profile was not found, using default profile."), i18n("Missing Profile"));
             m_profile = ProfilesDialog::getVideoProfile(KdenliveSettings::default_profile());
         } else {
@@ -671,20 +677,20 @@ bool KdenliveDoc::setProfilePath(QString path)
             m_profile.display_aspect_num = profileInfo.attribute("display_aspect_num").toInt();
             m_profile.display_aspect_den = profileInfo.attribute("display_aspect_den").toInt();
             QString existing = ProfilesDialog::existingProfile(m_profile);
-            if (!existing.isEmpty()) {
+            if(!existing.isEmpty()) {
                 m_profile = ProfilesDialog::getVideoProfile(existing);
                 KMessageBox::information(kapp->activeWindow(), i18n("Project profile not found, replacing with existing one: %1", m_profile.description), i18n("Missing Profile"));
             } else {
                 QString newDesc = m_profile.description;
                 bool ok = true;
-                while (ok && (newDesc.isEmpty() || ProfilesDialog::existingProfileDescription(newDesc))) {
+                while(ok && (newDesc.isEmpty() || ProfilesDialog::existingProfileDescription(newDesc))) {
                     newDesc = QInputDialog::getText(kapp->activeWindow(), i18n("Existing Profile"), i18n("Your project uses an unknown profile.\nIt uses an existing profile name: %1.\nPlease choose a new name to save it", newDesc), QLineEdit::Normal, newDesc, &ok);
                 }
-                if (ok == false) {
+                if(ok == false) {
                     // User canceled, use default profile
                     m_profile = ProfilesDialog::getVideoProfile(KdenliveSettings::default_profile());
                 } else {
-                    if (newDesc != m_profile.description) {
+                    if(newDesc != m_profile.description) {
                         // Profile description existed, was replaced by new one
                         m_profile.description = newDesc;
                     } else {
@@ -703,7 +709,7 @@ bool KdenliveDoc::setProfilePath(QString path)
     m_width = m_profile.width;
     m_height = m_profile.height;
     kDebug() << "Kdenlive document, init timecode from path: " << path << ",  " << m_fps;
-    if (m_fps == 30000.0 / 1001.0) m_timecode.setFormat(m_fps, true);
+    if(m_fps == 30000.0 / 1001.0) m_timecode.setFormat(m_fps, true);
     else m_timecode.setFormat(m_fps);
     return (current_fps != m_fps);
 }
@@ -739,7 +745,7 @@ void KdenliveDoc::setRenderer(Render *render) {
 
 void KdenliveDoc::checkProjectClips()
 {
-    if (m_render == NULL) return;
+    if(m_render == NULL) return;
     m_clipManager->resetProducersList(m_render->producersList());
 }
 
@@ -773,11 +779,11 @@ QString KdenliveDoc::producerName(const QString &id)
     QString result = "unnamed";
     QDomNodeList prods = producersList();
     int ct = prods.count();
-    for (int i = 0; i <  ct ; i++) {
+    for(int i = 0; i <  ct ; i++) {
         QDomElement e = prods.item(i).toElement();
-        if (e.attribute("id") != "black" && e.attribute("id") == id) {
+        if(e.attribute("id") != "black" && e.attribute("id") == id) {
             result = e.attribute("name");
-            if (result.isEmpty()) result = KUrl(e.attribute("resource")).fileName();
+            if(result.isEmpty()) result = KUrl(e.attribute("resource")).fileName();
             break;
         }
     }
@@ -801,7 +807,7 @@ QDomNodeList KdenliveDoc::producersList()
 
 double KdenliveDoc::projectDuration() const
 {
-    if (m_render)
+    if(m_render)
         return GenTime(m_render->getLength(), m_fps).ms() / 1000;
     else
         return 0;
@@ -834,10 +840,10 @@ void KdenliveDoc::setUrl(KUrl url)
 
 void KdenliveDoc::setModified(bool mod)
 {
-    if (!m_url.isEmpty() && mod && KdenliveSettings::crashrecovery()) {
+    if(!m_url.isEmpty() && mod && KdenliveSettings::crashrecovery()) {
         m_autoSaveTimer->start(3000);
     }
-    if (mod == m_modified) return;
+    if(mod == m_modified) return;
     m_modified = mod;
     emit docModified(m_modified);
 }
@@ -849,7 +855,7 @@ bool KdenliveDoc::isModified() const
 
 const QString KdenliveDoc::description() const
 {
-    if (m_url.isEmpty())
+    if(m_url.isEmpty())
         return i18n("Untitled") + " / " + m_profile.description;
     else
         return m_url.fileName() + " / " + m_profile.description;
@@ -860,28 +866,28 @@ void KdenliveDoc::addClip(QDomElement elem, QString clipId, bool createClipItem)
     const QString producerId = clipId.section('_', 0, 0);
     DocClipBase *clip = m_clipManager->getClipById(producerId);
 
-    if (clip == NULL) {
+    if(clip == NULL) {
         elem.setAttribute("id", producerId);
         QString path = elem.attribute("resource");
         QString extension;
-        if (elem.attribute("type").toInt() == SLIDESHOW) {
+        if(elem.attribute("type").toInt() == SLIDESHOW) {
             extension = KUrl(path).fileName();
             path = KUrl(path).directory();
         }
 
-        if (path.isEmpty() == false && QFile::exists(path) == false && elem.attribute("type").toInt() != TEXT && !elem.hasAttribute("placeholder")) {
+        if(path.isEmpty() == false && QFile::exists(path) == false && elem.attribute("type").toInt() != TEXT && !elem.hasAttribute("placeholder")) {
             kDebug() << "// FOUND MISSING CLIP: " << path << ", TYPE: " << elem.attribute("type").toInt();
             const QString size = elem.attribute("file_size");
             const QString hash = elem.attribute("file_hash");
             QString newpath;
             int action = KMessageBox::No;
-            if (!size.isEmpty() && !hash.isEmpty()) {
-                if (!m_searchFolder.isEmpty()) newpath = searchFileRecursively(m_searchFolder, size, hash);
+            if(!size.isEmpty() && !hash.isEmpty()) {
+                if(!m_searchFolder.isEmpty()) newpath = searchFileRecursively(m_searchFolder, size, hash);
                 else action = (KMessageBox::ButtonCode) KMessageBox::questionYesNoCancel(kapp->activeWindow(), i18n("Clip <b>%1</b><br />is invalid, what do you want to do?", path), i18n("File not found"), KGuiItem(i18n("Search automatically")), KGuiItem(i18n("Keep as placeholder")));
             } else {
-                if (elem.attribute("type").toInt() == SLIDESHOW) {
+                if(elem.attribute("type").toInt() == SLIDESHOW) {
                     int res = KMessageBox::questionYesNoCancel(kapp->activeWindow(), i18n("Clip <b>%1</b><br />is invalid or missing, what do you want to do?", path), i18n("File not found"), KGuiItem(i18n("Search manually")), KGuiItem(i18n("Keep as placeholder")));
-                    if (res == KMessageBox::Yes)
+                    if(res == KMessageBox::Yes)
                         newpath = KFileDialog::getExistingDirectory(KUrl("kfiledialog:///clipfolder"), kapp->activeWindow(), i18n("Looking for %1", path));
                     else {
                         // Abort project loading
@@ -889,7 +895,7 @@ void KdenliveDoc::addClip(QDomElement elem, QString clipId, bool createClipItem)
                     }
                 } else {
                     int res = KMessageBox::questionYesNoCancel(kapp->activeWindow(), i18n("Clip <b>%1</b><br />is invalid or missing, what do you want to do?", path), i18n("File not found"), KGuiItem(i18n("Search manually")), KGuiItem(i18n("Keep as placeholder")));
-                    if (res == KMessageBox::Yes)
+                    if(res == KMessageBox::Yes)
                         newpath = KFileDialog::getOpenFileName(KUrl("kfiledialog:///clipfolder"), QString(), kapp->activeWindow(), i18n("Looking for %1", path));
                     else {
                         // Abort project loading
@@ -897,21 +903,21 @@ void KdenliveDoc::addClip(QDomElement elem, QString clipId, bool createClipItem)
                     }
                 }
             }
-            if (action == KMessageBox::Yes) {
+            if(action == KMessageBox::Yes) {
                 kDebug() << "// ASKED FOR SRCH CLIP: " << clipId;
                 m_searchFolder = KFileDialog::getExistingDirectory(KUrl("kfiledialog:///clipfolder"), kapp->activeWindow());
-                if (!m_searchFolder.isEmpty()) {
+                if(!m_searchFolder.isEmpty()) {
                     newpath = searchFileRecursively(QDir(m_searchFolder), size, hash);
                 }
-            } else if (action == KMessageBox::Cancel) {
+            } else if(action == KMessageBox::Cancel) {
                 m_abortLoading = true;
                 return;
-            } else if (action == KMessageBox::No) {
+            } else if(action == KMessageBox::No) {
                 // Keep clip as placeHolder
                 elem.setAttribute("placeholder", '1');
             }
-            if (!newpath.isEmpty()) {
-                if (elem.attribute("type").toInt() == SLIDESHOW) newpath.append('/' + extension);
+            if(!newpath.isEmpty()) {
+                if(elem.attribute("type").toInt() == SLIDESHOW) newpath.append('/' + extension);
                 elem.setAttribute("resource", newpath);
                 setNewClipResource(clipId, newpath);
                 setModified(true);
@@ -921,7 +927,7 @@ void KdenliveDoc::addClip(QDomElement elem, QString clipId, bool createClipItem)
         m_clipManager->addClip(clip);
     }
 
-    if (createClipItem) {
+    if(createClipItem) {
         emit addProjectClip(clip);
         //qApp->processEvents();
     }
@@ -931,14 +937,14 @@ void KdenliveDoc::setNewClipResource(const QString &id, const QString &path)
 {
     QDomNodeList prods = m_document.elementsByTagName("producer");
     int maxprod = prods.count();
-    for (int i = 0; i < maxprod; i++) {
+    for(int i = 0; i < maxprod; i++) {
         QDomNode m = prods.at(i);
         QString prodId = m.toElement().attribute("id");
-        if (prodId == id || prodId.startsWith(id + '_')) {
+        if(prodId == id || prodId.startsWith(id + '_')) {
             QDomNodeList params = m.childNodes();
-            for (int j = 0; j < params.count(); j++) {
+            for(int j = 0; j < params.count(); j++) {
                 QDomElement e = params.item(j).toElement();
-                if (e.attribute("name") == "resource") {
+                if(e.attribute("name") == "resource") {
                     e.firstChild().setNodeValue(path);
                     break;
                 }
@@ -953,32 +959,32 @@ QString KdenliveDoc::searchFileRecursively(const QDir &dir, const QString &match
     QByteArray fileData;
     QByteArray fileHash;
     QStringList filesAndDirs = dir.entryList(QDir::Files | QDir::Readable);
-    for (int i = 0; i < filesAndDirs.size() && foundFileName.isEmpty(); i++) {
+    for(int i = 0; i < filesAndDirs.size() && foundFileName.isEmpty(); i++) {
         QFile file(dir.absoluteFilePath(filesAndDirs.at(i)));
-        if (file.open(QIODevice::ReadOnly)) {
-            if (QString::number(file.size()) == matchSize) {
+        if(file.open(QIODevice::ReadOnly)) {
+            if(QString::number(file.size()) == matchSize) {
                 /*
                 * 1 MB = 1 second per 450 files (or faster)
                 * 10 MB = 9 seconds per 450 files (or faster)
                 */
-                if (file.size() > 1000000*2) {
+                if(file.size() > 1000000 * 2) {
                     fileData = file.read(1000000);
-                    if (file.seek(file.size() - 1000000))
+                    if(file.seek(file.size() - 1000000))
                         fileData.append(file.readAll());
                 } else
                     fileData = file.readAll();
                 file.close();
                 fileHash = QCryptographicHash::hash(fileData, QCryptographicHash::Md5);
-                if (QString(fileHash.toHex()) == matchHash)
+                if(QString(fileHash.toHex()) == matchHash)
                     return file.fileName();
             }
         }
         kDebug() << filesAndDirs.at(i) << file.size() << fileHash.toHex();
     }
     filesAndDirs = dir.entryList(QDir::Dirs | QDir::Readable | QDir::Executable | QDir::NoDotAndDotDot);
-    for (int i = 0; i < filesAndDirs.size() && foundFileName.isEmpty(); i++) {
+    for(int i = 0; i < filesAndDirs.size() && foundFileName.isEmpty(); i++) {
         foundFileName = searchFileRecursively(dir.absoluteFilePath(filesAndDirs.at(i)), matchSize, matchHash);
-        if (!foundFileName.isEmpty())
+        if(!foundFileName.isEmpty())
             break;
     }
     return foundFileName;
@@ -987,34 +993,34 @@ QString KdenliveDoc::searchFileRecursively(const QDir &dir, const QString &match
 void KdenliveDoc::addClipInfo(QDomElement elem, QDomElement orig, QString clipId)
 {
     DocClipBase *clip = m_clipManager->getClipById(clipId);
-    if (clip == NULL) {
+    if(clip == NULL) {
         addClip(elem, clipId, false);
     } else {
         QMap <QString, QString> properties;
         QDomNamedNodeMap attributes = elem.attributes();
         QString attrname;
-        for (int i = 0; i < attributes.count(); i++) {
+        for(int i = 0; i < attributes.count(); i++) {
             attrname = attributes.item(i).nodeName();
-            if (attrname != "resource")
+            if(attrname != "resource")
                 properties.insert(attrname, attributes.item(i).nodeValue());
             kDebug() << attrname << " = " << attributes.item(i).nodeValue();
         }
         clip->setProperties(properties);
         emit addProjectClip(clip, false);
     }
-    if (orig != QDomElement()) {
+    if(orig != QDomElement()) {
         QMap<QString, QString> meta;
         QDomNode m = orig.firstChild();
-        while (!m.isNull()) {
+        while(!m.isNull()) {
             QString name = m.toElement().attribute("name");
-            if (name.startsWith("meta.attr")) {
+            if(name.startsWith("meta.attr")) {
                 meta.insert(name.section('.', 2, 3), m.firstChild().nodeValue());
             }
             m = m.nextSibling();
         }
-        if (!meta.isEmpty()) {
-            if (clip == NULL) clip = m_clipManager->getClipById(clipId);
-            if (clip) clip->setMetadata(meta);
+        if(!meta.isEmpty()) {
+            if(clip == NULL) clip = m_clipManager->getClipById(clipId);
+            if(clip) clip->setMetadata(meta);
         }
     }
 }
@@ -1069,7 +1075,7 @@ void KdenliveDoc::slotCreateTextClip(QString group, const QString &groupId, cons
     QString titlesFolder = projectFolder().path(KUrl::AddTrailingSlash) + "titles/";
     KStandardDirs::makeDir(titlesFolder);
     TitleWidget *dia_ui = new TitleWidget(templatePath, m_timecode, titlesFolder, m_render, kapp->activeWindow());
-    if (dia_ui->exec() == QDialog::Accepted) {
+    if(dia_ui->exec() == QDialog::Accepted) {
         m_clipManager->slotAddTextClipFile(i18n("Title clip"), dia_ui->outPoint(), dia_ui->xml().toString(), group, groupId);
         setModified(true);
         emit selectLastAddedClip(QString::number(m_clipManager->lastClipId()));
@@ -1080,11 +1086,11 @@ void KdenliveDoc::slotCreateTextClip(QString group, const QString &groupId, cons
 void KdenliveDoc::slotCreateTextTemplateClip(QString group, const QString &groupId, KUrl path)
 {
     QString titlesFolder = projectFolder().path(KUrl::AddTrailingSlash) + "titles/";
-    if (path.isEmpty()) {
+    if(path.isEmpty()) {
         path = KFileDialog::getOpenUrl(KUrl(titlesFolder), "*.kdenlivetitle", kapp->activeWindow(), i18n("Enter Template Path"));
     }
 
-    if (path.isEmpty()) return;
+    if(path.isEmpty()) return;
 
     //TODO: rewrite with new title system (just set resource)
     m_clipManager->slotAddTextTemplateClip(i18n("Template title clip"), path, group, groupId);
@@ -1124,7 +1130,7 @@ void KdenliveDoc::switchTrackVideo(int ix, bool hide)
 
 void KdenliveDoc::insertTrack(int ix, TrackInfo type)
 {
-    if (ix == -1) m_tracksList << type;
+    if(ix == -1) m_tracksList << type;
     else m_tracksList.insert(ix, type);
 }
 
@@ -1151,8 +1157,8 @@ QPoint KdenliveDoc::getTracksCount() const
 {
     int audio = 0;
     int video = 0;
-    foreach(const TrackInfo &info, m_tracksList) {
-        if (info.type == VIDEOTRACK) video++;
+    foreach(const TrackInfo & info, m_tracksList) {
+        if(info.type == VIDEOTRACK) video++;
         else audio++;
     }
     return QPoint(video, audio);
@@ -1167,7 +1173,7 @@ QString KdenliveDoc::getLadspaFile() const
 {
     int ct = 0;
     QString counter = QString::number(ct).rightJustified(5, '0', false);
-    while (QFile::exists(m_projectFolder.path(KUrl::AddTrailingSlash) + "ladspa/" + counter + ".ladspa")) {
+    while(QFile::exists(m_projectFolder.path(KUrl::AddTrailingSlash) + "ladspa/" + counter + ".ladspa")) {
         ct++;
         counter = QString::number(ct).rightJustified(5, '0', false);
     }
index 7e2f768fdc94b60dec901fa0d1538380a4a5d5c0..1486267c4892a7c7e8b24f7c850a6017a8c3d96f 100644 (file)
@@ -139,6 +139,7 @@ private:
     QString searchFileRecursively(const QDir &dir, const QString &matchSize, const QString &matchHash) const;
     void moveProjectData(KUrl url);
     bool checkDocumentClips(QDomNodeList infoproducers);
+    /** Creates a new project */
     QDomDocument createEmptyDocument(int videotracks, int audiotracks);
     QDomDocument createEmptyDocument(QList <TrackInfo> tracks);
 
index 441d14ce7e4759d608030d6b54423f8a3283cdbd..da05ed9f2ec997a2596cbf9ad1b89a087619a16c 100644 (file)
@@ -61,15 +61,15 @@ const int SHADOWEFFECT = 2;
 const int TYPEWRITEREFFECT = 3;
 
 TitleWidget::TitleWidget(KUrl url, Timecode tc, QString projectTitlePath, Render *render, QWidget *parent) :
-        QDialog(parent),
-        Ui::TitleWidget_UI(),
-        m_startViewport(NULL),
-        m_endViewport(NULL),
-        m_render(render),
-        m_count(0),
-        m_unicodeDialog(new UnicodeDialog(UnicodeDialog::InputHex)),
-        m_projectTitlePath(projectTitlePath),
-        m_tc(tc)
+    QDialog(parent),
+    Ui::TitleWidget_UI(),
+    m_startViewport(NULL),
+    m_endViewport(NULL),
+    m_render(render),
+    m_count(0),
+    m_unicodeDialog(new UnicodeDialog(UnicodeDialog::InputHex)),
+    m_projectTitlePath(projectTitlePath),
+    m_tc(tc)
 {
     setupUi(this);
     setFont(KGlobalSettings::toolBarFont());
@@ -422,7 +422,7 @@ TitleWidget::TitleWidget(KUrl url, Timecode tc, QString projectTitlePath, Render
     m_endViewport->setData(0, m_frameWidth);
     m_endViewport->setData(1, m_frameHeight);
 
-    if (!url.isEmpty()) loadTitle(url);
+    if(!url.isEmpty()) loadTitle(url);
     else {
         slotTextTool();
         QTimer::singleShot(200, this, SLOT(slotAdjustZoom()));
@@ -475,7 +475,7 @@ QStringList TitleWidget::getFreeTitleInfo(const KUrl &projectUrl, bool isClone)
     titlePath.append((isClone == false) ? "title" : "clone");
     int counter = 0;
     QString path;
-    while (path.isEmpty() || QFile::exists(path)) {
+    while(path.isEmpty() || QFile::exists(path)) {
         counter++;
         path = titlePath + QString::number(counter).rightJustified(3, '0', false) + ".png";
     }
@@ -497,12 +497,12 @@ QString TitleWidget::getTitleResourceFromName(const KUrl &projectUrl, const QStr
 QStringList TitleWidget::extractImageList(QString xml)
 {
     QStringList result;
-    if (xml.isEmpty()) return result;
+    if(xml.isEmpty()) return result;
     QDomDocument doc;
     doc.setContent(xml);
     QDomNodeList images = doc.elementsByTagName("content");
-    for (int i = 0; i < images.count(); i++) {
-        if (images.at(i).toElement().hasAttribute("url"))
+    for(int i = 0; i < images.count(); i++) {
+        if(images.at(i).toElement().hasAttribute("url"))
             result.append(images.at(i).toElement().attribute("url"));
     }
     return result;
@@ -512,12 +512,12 @@ QStringList TitleWidget::extractImageList(QString xml)
 QStringList TitleWidget::extractFontList(QString xml)
 {
     QStringList result;
-    if (xml.isEmpty()) return result;
+    if(xml.isEmpty()) return result;
     QDomDocument doc;
     doc.setContent(xml);
     QDomNodeList images = doc.elementsByTagName("content");
-    for (int i = 0; i < images.count(); i++) {
-        if (images.at(i).toElement().hasAttribute("font"))
+    for(int i = 0; i < images.count(); i++) {
+        if(images.at(i).toElement().hasAttribute("font"))
             result.append(images.at(i).toElement().attribute("font"));
     }
     return result;
@@ -531,9 +531,9 @@ void TitleWidget::refreshTitleTemplates()
     filters << "*.kdenlivetitle" ;
     titletemplates.clear();
     QStringList titleTemplates = KGlobal::dirs()->findDirs("appdata", "titles");
-    foreach(const QString &folder, titleTemplates) {
+    foreach(const QString & folder, titleTemplates) {
         QStringList filesnames = QDir(folder).entryList(filters, QDir::Files);
-        foreach(const QString &fname, filesnames) {
+        foreach(const QString & fname, filesnames) {
             //titlenamelist.append(fname);
             //titlefiles.append(KUrl(folder).path(KUrl::AddTrailingSlash) + fname);
             TitleTemplate t;
@@ -548,9 +548,9 @@ void TitleWidget::refreshTitleTemplates()
 void TitleWidget::templateIndexChanged(int index)
 {
     QString item = templateBox->itemData(index).toString();
-    if (item != "") {
-        if (lastDocumentHash != QCryptographicHash::hash(xml().toString().toAscii(), QCryptographicHash::Md5).toHex()) {
-            if (KMessageBox::questionYesNo(this, i18n("Title was changed !\nDo you really want to load a new template?\nAll changes in this document are lost !!")) == KMessageBox::No) return;
+    if(item != "") {
+        if(lastDocumentHash != QCryptographicHash::hash(xml().toString().toAscii(), QCryptographicHash::Md5).toHex()) {
+            if(KMessageBox::questionYesNo(this, i18n("Do you really want to load a new template? Changes in this title will be lost!")) == KMessageBox::No) return;
         }
         loadTitle(item);
         lastDocumentHash = QCryptographicHash::hash(xml().toString().toAscii(), QCryptographicHash::Md5).toHex();
@@ -583,8 +583,8 @@ void TitleWidget::slotSelectTool()
     // Find out which toolbars need to be shown, depending on selected item
     TITLETOOL t = TITLE_SELECT;
     QList<QGraphicsItem *> l = graphicsView->scene()->selectedItems();
-    if (l.size() > 0) {
-        switch (l.at(0)->type()) {
+    if(l.size() > 0) {
+        switch(l.at(0)->type()) {
         case TEXTITEM:
             t = TITLE_TEXT;
             break;
@@ -598,13 +598,13 @@ void TitleWidget::slotSelectTool()
     }
 
     enableToolbars(t);
-    if (t == TITLE_RECTANGLE && (l.at(0) == m_endViewport || l.at(0) == m_startViewport)) {
+    if(t == TITLE_RECTANGLE && (l.at(0) == m_endViewport || l.at(0) == m_startViewport)) {
         //graphicsView->centerOn(l.at(0));
         t = TITLE_SELECT;
     }
     showToolbars(t);
 
-    if (l.size() > 0) {
+    if(l.size() > 0) {
         updateCoordinates(l.at(0));
         updateDimension(l.at(0));
         updateRotZoom(l.at(0));
@@ -618,8 +618,8 @@ void TitleWidget::slotImageTool()
     // TODO: find a way to get a list of all supported image types...
     QString allExtensions = "image/gif image/jpeg image/png image/x-tga image/x-bmp image/svg+xml image/tiff image/x-xcf-gimp image/x-vnd.adobe.photoshop image/x-pcx image/x-exr";
     KUrl url = KFileDialog::getOpenUrl(KUrl(), allExtensions, this, i18n("Load Image")); //"*.svg *.png *.jpg *.jpeg *.gif *.raw"
-    if (!url.isEmpty()) {
-        if (url.path().endsWith(".svg")) {
+    if(!url.isEmpty()) {
+        if(url.path().endsWith(".svg")) {
             QGraphicsSvgItem *svg = new QGraphicsSvgItem(url.toLocalFile());
             svg->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);
             svg->setZValue(m_count++);
@@ -649,7 +649,7 @@ void TitleWidget::enableToolbars(TITLETOOL toolType)
 {
     // TITLETOOL is defined in graphicsscenerectmove.h
     bool enable = false;
-    if (toolType == TITLE_RECTANGLE || toolType == TITLE_IMAGE) enable = true;
+    if(toolType == TITLE_RECTANGLE || toolType == TITLE_IMAGE) enable = true;
     value_w->setEnabled(enable);
     value_h->setEnabled(enable);
 }
@@ -661,7 +661,7 @@ void TitleWidget::checkButton(TITLETOOL toolType)
     bool bRect = false;
     bool bImage = false;
 
-    switch (toolType) {
+    switch(toolType) {
     case TITLE_SELECT:
         bSelect = true;
         break;
@@ -686,7 +686,7 @@ void TitleWidget::checkButton(TITLETOOL toolType)
 
 void TitleWidget::displayBackgroundFrame()
 {
-    if (!displayBg->isChecked()) {
+    if(!displayBg->isChecked()) {
         QPixmap bg(m_frameWidth / 2, m_frameHeight / 2);
         QPixmap pattern(20, 20);
         pattern.fill();
@@ -742,7 +742,7 @@ void TitleWidget::slotUpdateZoom(int pos)
 void TitleWidget::slotZoom(bool up)
 {
     int pos = zoom_slider->value();
-    if (up) pos++;
+    if(up) pos++;
     else pos--;
     zoom_slider->setValue(pos);
 }
@@ -810,7 +810,7 @@ void TitleWidget::slotNewText(QGraphicsTextItem *tt)
 
     tt->setData(101, outlineWidth);
     tt->setData(102, outlineColor);
-    if (outlineWidth > 0.0) cformat.setTextOutline(QPen(outlineColor, outlineWidth));
+    if(outlineWidth > 0.0) cformat.setTextOutline(QPen(outlineColor, outlineWidth));
 
     cformat.setForeground(QBrush(color));
     cur.setCharFormat(cformat);
@@ -823,7 +823,7 @@ void TitleWidget::slotNewText(QGraphicsTextItem *tt)
 void TitleWidget::setFontBoxWeight(int weight)
 {
     int index = font_weight_box->findData(weight);
-    if (index < 0) {
+    if(index < 0) {
         index = font_weight_box->findData(QFont::Normal);
     }
     font_weight_box->setCurrentIndex(index);
@@ -837,14 +837,14 @@ void TitleWidget::setCurrentItem(QGraphicsItem *item)
 void TitleWidget::zIndexChanged(int v)
 {
     QList<QGraphicsItem*> l = graphicsView->scene()->selectedItems();
-    if (l.size() >= 1) {
+    if(l.size() >= 1) {
         l[0]->setZValue(v);
     }
 }
 
 void TitleWidget::selectionChanged()
 {
-    if (m_scene->tool() != TITLE_SELECT) return;
+    if(m_scene->tool() != TITLE_SELECT) return;
     QList<QGraphicsItem*> l = graphicsView->scene()->selectedItems();
     //toolBox->setItemEnabled(2, false);
     //toolBox->setItemEnabled(3, false);
@@ -857,30 +857,30 @@ void TitleWidget::selectionChanged()
     itemrotatex->blockSignals(true);
     itemrotatey->blockSignals(true);
     itemrotatez->blockSignals(true);
-    if (l.size() == 0) {
+    if(l.size() == 0) {
         effect_stack->setHidden(true);
         effect_frame->setEnabled(false);
         effect_list->setCurrentIndex(0);
         bool blockX = !origin_x_left->signalsBlocked();
         bool blockY = !origin_y_top->signalsBlocked();
-        if (blockX) origin_x_left->blockSignals(true);
-        if (blockY) origin_y_top->blockSignals(true);
+        if(blockX) origin_x_left->blockSignals(true);
+        if(blockY) origin_y_top->blockSignals(true);
         origin_x_left->setChecked(false);
         origin_y_top->setChecked(false);
         updateTextOriginX();
         updateTextOriginY();
         enableToolbars(TITLE_SELECT);
-        if (blockX) origin_x_left->blockSignals(false);
-        if (blockY) origin_y_top->blockSignals(false);
+        if(blockX) origin_x_left->blockSignals(false);
+        if(blockY) origin_y_top->blockSignals(false);
         itemzoom->setEnabled(false);
         itemrotatex->setEnabled(false);
         itemrotatey->setEnabled(false);
         itemrotatez->setEnabled(false);
         frame_properties->setEnabled(false);
-    } else if (l.size() == 1) {
+    } else if(l.size() == 1) {
         effect_frame->setEnabled(true);
         frame_properties->setEnabled(true);
-        if (l.at(0) != m_startViewport && l.at(0) != m_endViewport) {
+        if(l.at(0) != m_startViewport && l.at(0) != m_endViewport) {
             itemzoom->setEnabled(true);
             itemrotatex->setEnabled(true);
             itemrotatey->setEnabled(true);
@@ -892,14 +892,14 @@ void TitleWidget::selectionChanged()
             itemrotatez->setEnabled(false);
             updateInfoText();
         }
-        if (l.at(0)->type() == TEXTITEM) {
+        if(l.at(0)->type() == TEXTITEM) {
             showToolbars(TITLE_TEXT);
             QGraphicsTextItem* i = static_cast <QGraphicsTextItem *>(l.at(0));
-            if (!i->data(100).isNull()) {
+            if(!i->data(100).isNull()) {
                 // Item has an effect
                 QStringList effdata = i->data(100).toStringList();
                 QString effectName = effdata.takeFirst();
-                if (effectName == "typewriter") {
+                if(effectName == "typewriter") {
                     QStringList params = effdata.at(0).split(';');
                     typewriter_delay->setValue(params.at(0).toInt());
                     typewriter_start->setValue(params.at(1).toInt());
@@ -908,16 +908,16 @@ void TitleWidget::selectionChanged()
                 }
             } else {
 #if QT_VERSION >= 0x040600
-                if (i->graphicsEffect()) {
+                if(i->graphicsEffect()) {
                     QGraphicsBlurEffect *blur = static_cast <QGraphicsBlurEffect *>(i->graphicsEffect());
-                    if (blur) {
+                    if(blur) {
                         effect_list->setCurrentIndex(effect_list->findData((int) BLUREFFECT));
                         int rad = (int) blur->blurRadius();
                         blur_radius->setValue(rad);
                         effect_stack->setHidden(false);
                     } else {
                         QGraphicsDropShadowEffect *shad = static_cast <QGraphicsDropShadowEffect *>(i->graphicsEffect());
-                        if (shad) {
+                        if(shad) {
                             effect_list->setCurrentIndex(effect_list->findData((int) SHADOWEFFECT));
                             shadow_radius->setValue(shad->blurRadius());
                             shadow_x->setValue(shad->xOffset());
@@ -964,12 +964,12 @@ void TitleWidget::selectionChanged()
             color.setAlpha(255);
             fontColorButton->setColor(color);
 
-            if (!i->data(101).isNull()) {
+            if(!i->data(101).isNull()) {
                 textOutline->blockSignals(true);
-                textOutline->setValue(i->data(101).toDouble()*10);
+                textOutline->setValue(i->data(101).toDouble() * 10);
                 textOutline->blockSignals(false);
             }
-            if (!i->data(102).isNull()) {
+            if(!i->data(102).isNull()) {
                 textOutlineColor->blockSignals(true);
                 textOutlineAlpha->blockSignals(true);
                 color = QColor(i->data(102).toString());
@@ -981,10 +981,10 @@ void TitleWidget::selectionChanged()
             }
             QTextCursor cur = i->textCursor();
             QTextBlockFormat format = cur.blockFormat();
-            if (i->textWidth() == -1) buttonAlignNone->setChecked(true);
-            else if (format.alignment() == Qt::AlignHCenter) buttonAlignCenter->setChecked(true);
-            else if (format.alignment() == Qt::AlignRight) buttonAlignRight->setChecked(true);
-            else if (format.alignment() == Qt::AlignLeft) buttonAlignLeft->setChecked(true);
+            if(i->textWidth() == -1) buttonAlignNone->setChecked(true);
+            else if(format.alignment() == Qt::AlignHCenter) buttonAlignCenter->setChecked(true);
+            else if(format.alignment() == Qt::AlignRight) buttonAlignRight->setChecked(true);
+            else if(format.alignment() == Qt::AlignLeft) buttonAlignLeft->setChecked(true);
 
             font_size->blockSignals(false);
             font_family->blockSignals(false);
@@ -998,16 +998,20 @@ void TitleWidget::selectionChanged()
             buttonAlignNone->blockSignals(false);
             buttonAlignCenter->blockSignals(false);
 
+            // Later
+//      cur.select(QTextCursor::Document);
+//      i->setTextCursor(cur);
+
             updateAxisButtons(i);
             updateCoordinates(i);
             updateDimension(i);
             enableToolbars(TITLE_TEXT);
 
-        } else if ((l.at(0))->type() == RECTITEM) {
+        } else if((l.at(0))->type() == RECTITEM) {
             showToolbars(TITLE_RECTANGLE);
             settingUp = true;
             QGraphicsRectItem *rec = static_cast <QGraphicsRectItem *>(l.at(0));
-            if (rec == m_startViewport || rec == m_endViewport) {
+            if(rec == m_startViewport || rec == m_endViewport) {
                 /*toolBox->setCurrentIndex(3);
                 toolBox->widget(0)->setEnabled(false);
                 toolBox->widget(1)->setEnabled(false);*/
@@ -1035,7 +1039,7 @@ void TitleWidget::selectionChanged()
             updateCoordinates(rec);
             updateDimension(rec);
 
-        } else if (l.at(0)->type() == IMAGEITEM) {
+        } else if(l.at(0)->type() == IMAGEITEM) {
             showToolbars(TITLE_IMAGE);
 
             updateCoordinates(l.at(0));
@@ -1050,7 +1054,7 @@ void TitleWidget::selectionChanged()
             frame_properties->setEnabled(false);
         }
         zValue->setValue((int)l.at(0)->zValue());
-        if (!l.at(0)->data(ZOOMFACTOR).isNull()) itemzoom->setValue(l.at(0)->data(ZOOMFACTOR).toInt());
+        if(!l.at(0)->data(ZOOMFACTOR).isNull()) itemzoom->setValue(l.at(0)->data(ZOOMFACTOR).toInt());
         else itemzoom->setValue((int)(m_transformations.value(l.at(0)).scalex * 100.0 + 0.5));
         itemrotatex->setValue((int)(m_transformations.value(l.at(0)).rotatex));
         itemrotatey->setValue((int)(m_transformations.value(l.at(0)).rotatey));
@@ -1065,17 +1069,17 @@ void TitleWidget::selectionChanged()
         itemrotatez->blockSignals(false);
     }
     // Tools working on more than one element.
-    if (l.size() > 0)
+    if(l.size() > 0)
         effect_list->blockSignals(false);
 }
 
 void TitleWidget::slotValueChanged(int type)
 {
     QList<QGraphicsItem *> l = graphicsView->scene()->selectedItems();
-    if (l.size() > 0 && l.at(0)->type() == IMAGEITEM) {
+    if(l.size() > 0 && l.at(0)->type() == IMAGEITEM) {
 
         int val = 0;
-        switch (type) {
+        switch(type) {
         case ValueWidth:
             val = value_w->value();
             break;
@@ -1098,7 +1102,7 @@ void TitleWidget::slotValueChanged(int type)
         // Scaling factor
         double scale = 1;
 
-        switch (type) {
+        switch(type) {
         case ValueWidth:
             // Add 0.5 because otherwise incrementing by 1 might have no effect
             length = val / (cos(alpha) + 1 / phi * sin(alpha)) + 0.5;
@@ -1128,16 +1132,16 @@ void TitleWidget::slotValueChanged(int type)
 void TitleWidget::slotAdjustSelectedItem()
 {
     QList<QGraphicsItem*> l = graphicsView->scene()->selectedItems();
-    if (l.size() >= 1) {
-        if (l.at(0)->type() == RECTITEM) {
+    if(l.size() >= 1) {
+        if(l.at(0)->type() == RECTITEM) {
             //rect item
             QGraphicsRectItem *rec = static_cast <QGraphicsRectItem *>(l.at(0));
             updatePosition(rec);
             rec->setRect(QRect(0, 0, value_w->value(), value_h->value()));
-        } else if (l.at(0)->type() == TEXTITEM) {
+        } else if(l.at(0)->type() == TEXTITEM) {
             //text item
             updatePosition(l.at(0));
-        } else if (l.at(0)->type() == IMAGEITEM) {
+        } else if(l.at(0)->type() == IMAGEITEM) {
             //image item
             updatePosition(l.at(0));
         }
@@ -1151,7 +1155,7 @@ void TitleWidget::updateDimension(QGraphicsItem *i)
     zValue->blockSignals(true);
 
     zValue->setValue((int) i->zValue());
-    if (i->type() == IMAGEITEM) {
+    if(i->type() == IMAGEITEM) {
         // Get multipliers for rotation/scaling
 
         /*Transform t = m_transformations.value(i);
@@ -1163,11 +1167,11 @@ void TitleWidget::updateDimension(QGraphicsItem *i)
 
         value_w->setValue(i->sceneBoundingRect().width());
         value_h->setValue(i->sceneBoundingRect().height());
-    } else if (i->type() == RECTITEM) {
+    } else if(i->type() == RECTITEM) {
         QGraphicsRectItem *r = static_cast <QGraphicsRectItem *>(i);
         value_w->setValue((int) r->rect().width());
         value_h->setValue((int) r->rect().height());
-    } else if (i->type() == TEXTITEM) {
+    } else if(i->type() == TEXTITEM) {
         QGraphicsTextItem *t = static_cast <QGraphicsTextItem *>(i);
         value_w->setValue((int) t->boundingRect().width());
         value_h->setValue((int) t->boundingRect().height());
@@ -1184,12 +1188,12 @@ void TitleWidget::updateCoordinates(QGraphicsItem *i)
     value_x->blockSignals(true);
     value_y->blockSignals(true);
 
-    if (i->type() == TEXTITEM) {
+    if(i->type() == TEXTITEM) {
 
         QGraphicsTextItem *rec = static_cast <QGraphicsTextItem *>(i);
 
         // Set the correct x coordinate value
-        if (origin_x_left->isChecked()) {
+        if(origin_x_left->isChecked()) {
             // Origin (0 point) is at m_frameWidth, coordinate axis is inverted
             value_x->setValue((int)(m_frameWidth - rec->pos().x() - rec->boundingRect().width()));
         } else {
@@ -1198,17 +1202,17 @@ void TitleWidget::updateCoordinates(QGraphicsItem *i)
         }
 
         // Same for y
-        if (origin_y_top->isChecked()) {
+        if(origin_y_top->isChecked()) {
             value_y->setValue((int)(m_frameHeight - rec->pos().y() - rec->boundingRect().height()));
         } else {
             value_y->setValue((int) rec->pos().y());
         }
 
-    } else if (i->type() == RECTITEM) {
+    } else if(i->type() == RECTITEM) {
 
         QGraphicsRectItem *rec = static_cast <QGraphicsRectItem *>(i);
 
-        if (origin_x_left->isChecked()) {
+        if(origin_x_left->isChecked()) {
             // Origin (0 point) is at m_frameWidth
             value_x->setValue((int)(m_frameWidth - rec->pos().x() - rec->rect().width()));
         } else {
@@ -1216,21 +1220,21 @@ void TitleWidget::updateCoordinates(QGraphicsItem *i)
             value_x->setValue((int) rec->pos().x());
         }
 
-        if (origin_y_top->isChecked()) {
+        if(origin_y_top->isChecked()) {
             value_y->setValue((int)(m_frameHeight - rec->pos().y() - rec->rect().height()));
         } else {
             value_y->setValue((int) rec->pos().y());
         }
 
-    } else if (i->type() == IMAGEITEM) {
+    } else if(i->type() == IMAGEITEM) {
 
-        if (origin_x_left->isChecked()) {
+        if(origin_x_left->isChecked()) {
             value_x->setValue((int)(m_frameWidth - i->pos().x() - i->sceneBoundingRect().width()));
         } else {
             value_x->setValue((int) i->pos().x());
         }
 
-        if (origin_y_top->isChecked()) {
+        if(origin_y_top->isChecked()) {
             value_y->setValue((int)(m_frameHeight - i->pos().y() - i->sceneBoundingRect().height()));
         } else {
             value_y->setValue((int) i->pos().y());
@@ -1252,7 +1256,7 @@ void TitleWidget::updateRotZoom(QGraphicsItem *i)
 
     Transform t = m_transformations.value(i);
 
-    if (!i->data(ZOOMFACTOR).isNull()) itemzoom->setValue(i->data(ZOOMFACTOR).toInt());
+    if(!i->data(ZOOMFACTOR).isNull()) itemzoom->setValue(i->data(ZOOMFACTOR).toInt());
     else itemzoom->setValue((int)(t.scalex * 100.0 + 0.5));
 
     itemrotatex->setValue((int)(t.rotatex));
@@ -1267,11 +1271,11 @@ void TitleWidget::updateRotZoom(QGraphicsItem *i)
 
 void TitleWidget::updatePosition(QGraphicsItem *i)
 {
-    if (i->type() == TEXTITEM) {
+    if(i->type() == TEXTITEM) {
         QGraphicsTextItem *rec = static_cast <QGraphicsTextItem *>(i);
 
         int posX;
-        if (origin_x_left->isChecked()) {
+        if(origin_x_left->isChecked()) {
             /*
              * Origin of the X axis is at m_frameWidth, and distance from right
              * border of the item to the right border of the frame is taken. See
@@ -1283,7 +1287,7 @@ void TitleWidget::updatePosition(QGraphicsItem *i)
         }
 
         int posY;
-        if (origin_y_top->isChecked()) {
+        if(origin_y_top->isChecked()) {
             /* Same for y axis */
             posY = m_frameHeight - value_y->value() - rec->boundingRect().height();
         } else {
@@ -1292,19 +1296,19 @@ void TitleWidget::updatePosition(QGraphicsItem *i)
 
         rec->setPos(posX, posY);
 
-    } else if (i->type() == RECTITEM) {
+    } else if(i->type() == RECTITEM) {
 
         QGraphicsRectItem *rec = static_cast <QGraphicsRectItem *>(i);
 
         int posX;
-        if (origin_x_left->isChecked()) {
+        if(origin_x_left->isChecked()) {
             posX = m_frameWidth - value_x->value() - rec->rect().width();
         } else {
             posX = value_x->value();
         }
 
         int posY;
-        if (origin_y_top->isChecked()) {
+        if(origin_y_top->isChecked()) {
             posY = m_frameHeight - value_y->value() - rec->rect().height();
         } else {
             posY = value_y->value();
@@ -1312,9 +1316,9 @@ void TitleWidget::updatePosition(QGraphicsItem *i)
 
         rec->setPos(posX, posY);
 
-    } else if (i->type() == IMAGEITEM) {
+    } else if(i->type() == IMAGEITEM) {
         int posX;
-        if (origin_x_left->isChecked()) {
+        if(origin_x_left->isChecked()) {
             // Use the sceneBoundingRect because this also regards transformations like zoom
             posX = m_frameWidth - value_x->value() - i->sceneBoundingRect().width();
         } else {
@@ -1322,7 +1326,7 @@ void TitleWidget::updatePosition(QGraphicsItem *i)
         }
 
         int posY;
-        if (origin_y_top->isChecked()) {
+        if(origin_y_top->isChecked()) {
             posY = m_frameHeight - value_y->value() - i->sceneBoundingRect().height();
         } else {
             posY = value_y->value();
@@ -1336,7 +1340,7 @@ void TitleWidget::updatePosition(QGraphicsItem *i)
 
 void TitleWidget::updateTextOriginX()
 {
-    if (origin_x_left->isChecked()) {
+    if(origin_x_left->isChecked()) {
         origin_x_left->setText(i18n("\u2212X"));
     } else {
         origin_x_left->setText(i18n("+X"));
@@ -1349,7 +1353,7 @@ void TitleWidget::slotOriginXClicked()
     updateTextOriginX();
 
     QList<QGraphicsItem*> l = graphicsView->scene()->selectedItems();
-    if (l.size() >= 1) {
+    if(l.size() >= 1) {
         updateCoordinates(l.at(0));
 
         // Remember x axis setting
@@ -1361,7 +1365,7 @@ void TitleWidget::slotOriginXClicked()
 
 void TitleWidget::updateTextOriginY()
 {
-    if (origin_y_top->isChecked()) {
+    if(origin_y_top->isChecked()) {
         origin_y_top->setText(i18n("\u2212Y"));
     } else {
         origin_y_top->setText(i18n("+Y"));
@@ -1374,7 +1378,7 @@ void TitleWidget::slotOriginYClicked()
     updateTextOriginY();
 
     QList<QGraphicsItem*> l = graphicsView->scene()->selectedItems();
-    if (l.size() >= 1) {
+    if(l.size() >= 1) {
         updateCoordinates(l.at(0));
 
         l.at(0)->setData(TitleDocument::OriginYTop, origin_y_top->isChecked() ?
@@ -1391,14 +1395,14 @@ void TitleWidget::updateAxisButtons(QGraphicsItem *i)
     origin_x_left->blockSignals(true);
     origin_y_top->blockSignals(true);
 
-    if (xAxis == TitleDocument::AxisInverted) {
+    if(xAxis == TitleDocument::AxisInverted) {
         origin_x_left->setChecked(true);
     } else {
         origin_x_left->setChecked(false);
     }
     updateTextOriginX();
 
-    if (yAxis == TitleDocument::AxisInverted) {
+    if(yAxis == TitleDocument::AxisInverted) {
         origin_y_top->setChecked(true);
     } else {
         origin_y_top->setChecked(false);
@@ -1419,7 +1423,7 @@ void TitleWidget::slotChangeBackground()
 void TitleWidget::slotChanged()
 {
     QList<QGraphicsItem*> l = graphicsView->scene()->selectedItems();
-    if (l.size() >= 1 && l.at(0)->type() == TEXTITEM) {
+    if(l.size() >= 1 && l.at(0)->type() == TEXTITEM) {
         textChanged(static_cast <QGraphicsTextItem *>(l.at(0)));
     }
 }
@@ -1438,8 +1442,8 @@ void TitleWidget::textChanged(QGraphicsTextItem *i)
      */
     updateDimension(i);
 
-    if (origin_x_left->isChecked() || origin_y_top->isChecked()) {
-        if (!i->toPlainText().isEmpty())
+    if(origin_x_left->isChecked() || origin_y_top->isChecked()) {
+        if(!i->toPlainText().isEmpty())
             updatePosition(i);
         else {
             /*
@@ -1459,8 +1463,8 @@ void TitleWidget::slotInsertUnicode()
 void TitleWidget::slotInsertUnicodeString(QString text)
 {
     QList<QGraphicsItem *> l = graphicsView->scene()->selectedItems();
-    if (l.size() > 0) {
-        if (l.at(0)->type() == TEXTITEM) {
+    if(l.size() > 0) {
+        if(l.at(0)->type() == TEXTITEM) {
             QGraphicsTextItem *t = static_cast <QGraphicsTextItem *>(l.at(0));
             t->textCursor().insertText(text);
         }
@@ -1482,19 +1486,19 @@ void TitleWidget::slotUpdateText()
     double outlineWidth = textOutline->value() / 10.0;
     QGraphicsTextItem* item = NULL;
     QList<QGraphicsItem*> l = graphicsView->scene()->selectedItems();
-    if (l.size() == 1 && l.at(0)->type() == TEXTITEM) {
+    if(l.size() == 1 && l.at(0)->type() == TEXTITEM) {
         item = static_cast <QGraphicsTextItem *>(l.at(0));
     }
-    if (!item) return;
+    if(!item) return;
     //if (item->textCursor().selection ().isEmpty())
     QTextCursor cur(item->document());
     cur.select(QTextCursor::Document);
     QTextBlockFormat format = cur.blockFormat();
-    if (buttonAlignLeft->isChecked() || buttonAlignCenter->isChecked() || buttonAlignRight->isChecked()) {
+    if(buttonAlignLeft->isChecked() || buttonAlignCenter->isChecked() || buttonAlignRight->isChecked()) {
         item->setTextWidth(item->boundingRect().width());
-        if (buttonAlignCenter->isChecked()) format.setAlignment(Qt::AlignHCenter);
-        else if (buttonAlignRight->isChecked()) format.setAlignment(Qt::AlignRight);
-        else if (buttonAlignLeft->isChecked()) format.setAlignment(Qt::AlignLeft);
+        if(buttonAlignCenter->isChecked()) format.setAlignment(Qt::AlignHCenter);
+        else if(buttonAlignRight->isChecked()) format.setAlignment(Qt::AlignRight);
+        else if(buttonAlignLeft->isChecked()) format.setAlignment(Qt::AlignLeft);
     } else {
         format.setAlignment(Qt::AlignLeft);
         item->setTextWidth(-1);
@@ -1505,7 +1509,7 @@ void TitleWidget::slotUpdateText()
 
     item->setData(101, outlineWidth);
     item->setData(102, outlineColor);
-    if (outlineWidth > 0.0) cformat.setTextOutline(QPen(outlineColor, outlineWidth, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
+    if(outlineWidth > 0.0) cformat.setTextOutline(QPen(outlineColor, outlineWidth, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
 
     cformat.setForeground(QBrush(color));
     cur.setCharFormat(cformat);
@@ -1518,7 +1522,7 @@ void TitleWidget::slotUpdateText()
 void TitleWidget::rectChanged()
 {
     QList<QGraphicsItem*> l = graphicsView->scene()->selectedItems();
-    if (l.size() == 1 && l.at(0)->type() == RECTITEM && !settingUp) {
+    if(l.size() == 1 && l.at(0)->type() == RECTITEM && !settingUp) {
         QGraphicsRectItem *rec = static_cast<QGraphicsRectItem *>(l.at(0));
         QColor f = rectFColor->color();
         f.setAlpha(rectFAlpha->value());
@@ -1535,7 +1539,7 @@ void TitleWidget::rectChanged()
 void TitleWidget::itemScaled(int val)
 {
     QList<QGraphicsItem*> l = graphicsView->scene()->selectedItems();
-    if (l.size() == 1) {
+    if(l.size() == 1) {
         Transform x = m_transformations.value(l.at(0));
         x.scalex = (double)val / 100.0;
         x.scaley = (double)val / 100.0;
@@ -1569,9 +1573,9 @@ void TitleWidget::itemRotateZ(qreal val)
 void TitleWidget::itemRotate(qreal val, int axis)
 {
     QList<QGraphicsItem*> l = graphicsView->scene()->selectedItems();
-    if (l.size() == 1) {
+    if(l.size() == 1) {
         Transform x = m_transformations[l.at(0)];
-        switch (axis) {
+        switch(axis) {
         case 0:
             x.rotatex = val;
             break;
@@ -1592,7 +1596,7 @@ void TitleWidget::itemRotate(qreal val, int axis)
         qtrans.rotate(x.rotatez, Qt::ZAxis);
         l[0]->setTransform(qtrans);
         m_transformations[l.at(0)] = x;
-        if (l[0]->data(ZOOMFACTOR).isNull()) l[0]->setData(ZOOMFACTOR, 100);
+        if(l[0]->data(ZOOMFACTOR).isNull()) l[0]->setData(ZOOMFACTOR, 100);
         updateDimension(l.at(0));
     }
 }
@@ -1600,7 +1604,7 @@ void TitleWidget::itemRotate(qreal val, int axis)
 void TitleWidget::itemHCenter()
 {
     QList<QGraphicsItem*> l = graphicsView->scene()->selectedItems();
-    if (l.size() == 1) {
+    if(l.size() == 1) {
         QGraphicsItem *item = l.at(0);
         QRectF br = item->sceneBoundingRect();
         int width = (int)br.width();
@@ -1614,7 +1618,7 @@ void TitleWidget::itemHCenter()
 void TitleWidget::itemVCenter()
 {
     QList<QGraphicsItem*> l = graphicsView->scene()->selectedItems();
-    if (l.size() == 1) {
+    if(l.size() == 1) {
         QGraphicsItem *item = l.at(0);
         QRectF br = item->sceneBoundingRect();
         int height = (int)br.height();
@@ -1628,11 +1632,11 @@ void TitleWidget::itemVCenter()
 void TitleWidget::itemTop()
 {
     QList<QGraphicsItem*> l = graphicsView->scene()->selectedItems();
-    if (l.size() == 1) {
+    if(l.size() == 1) {
         QGraphicsItem *item = l.at(0);
         QRectF br = item->sceneBoundingRect();
         double diff;
-        if (br.top() > 0) diff = -br.top();
+        if(br.top() > 0) diff = -br.top();
         else diff = -br.bottom();
         item->moveBy(0, diff);
         updateCoordinates(item);
@@ -1642,11 +1646,11 @@ void TitleWidget::itemTop()
 void TitleWidget::itemBottom()
 {
     QList<QGraphicsItem*> l = graphicsView->scene()->selectedItems();
-    if (l.size() == 1) {
+    if(l.size() == 1) {
         QGraphicsItem *item = l.at(0);
         QRectF br = item->sceneBoundingRect();
         double diff;
-        if (br.bottom() > m_frameHeight) diff = m_frameHeight - br.top();
+        if(br.bottom() > m_frameHeight) diff = m_frameHeight - br.top();
         else diff = m_frameHeight - br.bottom();
         item->moveBy(0, diff);
         updateCoordinates(item);
@@ -1656,11 +1660,11 @@ void TitleWidget::itemBottom()
 void TitleWidget::itemLeft()
 {
     QList<QGraphicsItem*> l = graphicsView->scene()->selectedItems();
-    if (l.size() == 1) {
+    if(l.size() == 1) {
         QGraphicsItem *item = l.at(0);
         QRectF br = item->sceneBoundingRect();
         double diff;
-        if (br.left() > 0) diff = -br.left();
+        if(br.left() > 0) diff = -br.left();
         else diff = -br.right();
         item->moveBy(diff, 0);
         updateCoordinates(item);
@@ -1670,11 +1674,11 @@ void TitleWidget::itemLeft()
 void TitleWidget::itemRight()
 {
     QList<QGraphicsItem*> l = graphicsView->scene()->selectedItems();
-    if (l.size() == 1) {
+    if(l.size() == 1) {
         QGraphicsItem *item = l.at(0);
         QRectF br = item->sceneBoundingRect();
         double diff;
-        if (br.right() < m_frameWidth) diff = m_frameWidth - br.right();
+        if(br.right() < m_frameWidth) diff = m_frameWidth - br.right();
         else diff = m_frameWidth - br.left();
         item->moveBy(diff, 0);
         updateCoordinates(item);
@@ -1707,19 +1711,19 @@ void TitleWidget::setupViewports()
 
 void TitleWidget::loadTitle(KUrl url)
 {
-    if (url.isEmpty()) url = KFileDialog::getOpenUrl(KUrl(m_projectTitlePath), "application/x-kdenlivetitle", this, i18n("Load Title"));
-    if (!url.isEmpty()) {
+    if(url.isEmpty()) url = KFileDialog::getOpenUrl(KUrl(m_projectTitlePath), "application/x-kdenlivetitle", this, i18n("Load Title"));
+    if(!url.isEmpty()) {
         QList<QGraphicsItem *> items = m_scene->items();
-        for (int i = 0; i < items.size(); i++) {
-            if (items.at(i)->zValue() > -1000) delete items.at(i);
+        for(int i = 0; i < items.size(); i++) {
+            if(items.at(i)->zValue() > -1000) delete items.at(i);
         }
         m_scene->clearTextSelection();
         QDomDocument doc;
         QString tmpfile;
 
-        if (KIO::NetAccess::download(url, tmpfile, 0)) {
+        if(KIO::NetAccess::download(url, tmpfile, 0)) {
             QFile file(tmpfile);
-            if (file.open(QIODevice::ReadOnly)) {
+            if(file.open(QIODevice::ReadOnly)) {
                 doc.setContent(&file, false);
                 file.close();
             } else return;
@@ -1747,9 +1751,9 @@ void TitleWidget::loadTitle(KUrl url)
 
 void TitleWidget::saveTitle(KUrl url)
 {
-    if (anim_start->isChecked()) slotAnimStart(false);
-    if (anim_end->isChecked()) slotAnimEnd(false);
-    if (url.isEmpty()) {
+    if(anim_start->isChecked()) slotAnimStart(false);
+    if(anim_end->isChecked()) slotAnimEnd(false);
+    if(url.isEmpty()) {
         KFileDialog *fs = new KFileDialog(KUrl(m_projectTitlePath), "application/x-kdenlivetitle", this);
         fs->setOperationMode(KFileDialog::Saving);
         fs->setMode(KFile::File);
@@ -1761,8 +1765,8 @@ void TitleWidget::saveTitle(KUrl url)
         url = fs->selectedUrl();
         delete fs;
     }
-    if (!url.isEmpty()) {
-        if (m_titledocument.saveDocument(url, m_startViewport, m_endViewport, m_tc.getFrameCount(title_duration->text()) - 1) == false)
+    if(!url.isEmpty()) {
+        if(m_titledocument.saveDocument(url, m_startViewport, m_endViewport, m_tc.getFrameCount(title_duration->text()) - 1) == false)
             KMessageBox::error(this, i18n("Cannot write to file %1", url.path()));
     }
 }
@@ -1795,14 +1799,14 @@ void TitleWidget::setXml(QDomDocument doc)
     m_transformations.clear();
     QList <QGraphicsItem *> items = graphicsView->scene()->items();
     const double PI = 4.0 * atan(1.0);
-    for (int i = 0; i < items.count(); i++) {
+    for(int i = 0; i < items.count(); i++) {
         QTransform t = items.at(i)->transform();
         Transform x;
         x.scalex = t.m11();
         x.scaley = t.m22();
-        if (!items.at(i)->data(ROTATEFACTOR).isNull()) {
+        if(!items.at(i)->data(ROTATEFACTOR).isNull()) {
             QList<QVariant> rotlist = items.at(i)->data(ROTATEFACTOR).toList();
-            if (rotlist.count() >= 3) {
+            if(rotlist.count() >= 3) {
                 x.rotatex = rotlist[0].toDouble();
                 x.rotatey = rotlist[1].toDouble();
                 x.rotatez = rotlist[2].toDouble();
@@ -1849,8 +1853,8 @@ void TitleWidget::setXml(QDomDocument doc)
 
 void TitleWidget::slotAccepted()
 {
-    if (anim_start->isChecked()) slotAnimStart(false);
-    if (anim_end->isChecked()) slotAnimEnd(false);
+    if(anim_start->isChecked()) slotAnimStart(false);
+    if(anim_end->isChecked()) slotAnimEnd(false);
     writeChoices();
 }
 
@@ -1903,7 +1907,7 @@ void TitleWidget::readChoices()
     textOutline->setValue(titleConfig.readEntry("font_outline", textOutline->value()));
 
     int weight;
-    if (titleConfig.readEntry("font_bold", false)) weight = QFont::Bold;
+    if(titleConfig.readEntry("font_bold", false)) weight = QFont::Bold;
     else weight = titleConfig.readEntry("font_weight", font_weight_box->itemData(font_weight_box->currentIndex()).toInt());
     setFontBoxWeight(weight);
     buttonItalic->setChecked(titleConfig.readEntry("font_italic", buttonItalic->isChecked()));
@@ -1929,15 +1933,15 @@ void TitleWidget::adjustFrameSize()
 
 void TitleWidget::slotAnimStart(bool anim)
 {
-    if (anim && anim_end->isChecked()) {
+    if(anim && anim_end->isChecked()) {
         anim_end->setChecked(false);
         m_endViewport->setZValue(-1000);
         m_endViewport->setBrush(QBrush());
     }
     slotSelectTool();
     QList<QGraphicsItem *> list = m_scene->items();
-    for (int i = 0; i < list.count(); i++) {
-        if (list.at(i)->zValue() > -1000) {
+    for(int i = 0; i < list.count(); i++) {
+        if(list.at(i)->zValue() > -1000) {
             list.at(i)->setFlag(QGraphicsItem::ItemIsMovable, !anim);
             list.at(i)->setFlag(QGraphicsItem::ItemIsSelectable, !anim);
         }
@@ -1949,7 +1953,7 @@ void TitleWidget::slotAnimStart(bool anim)
     itemrotatez->setEnabled(!anim);
     frame_toolbar->setEnabled(!anim);
     toolbar_stack->setEnabled(!anim);
-    if (anim) {
+    if(anim) {
         keep_aspect->setChecked(!m_startViewport->data(0).isNull());
         m_startViewport->setZValue(1100);
         QColor col = m_startViewport->pen().color();
@@ -1959,27 +1963,27 @@ void TitleWidget::slotAnimStart(bool anim)
         m_startViewport->setSelected(true);
         selectionChanged();
         slotSelectTool();
-        if (m_startViewport->childItems().isEmpty()) addAnimInfoText();
+        if(m_startViewport->childItems().isEmpty()) addAnimInfoText();
     } else {
         m_startViewport->setZValue(-1000);
         m_startViewport->setBrush(QBrush());
         m_startViewport->setFlags(0);
-        if (!anim_end->isChecked()) deleteAnimInfoText();
+        if(!anim_end->isChecked()) deleteAnimInfoText();
     }
 
 }
 
 void TitleWidget::slotAnimEnd(bool anim)
 {
-    if (anim && anim_start->isChecked()) {
+    if(anim && anim_start->isChecked()) {
         anim_start->setChecked(false);
         m_startViewport->setZValue(-1000);
         m_startViewport->setBrush(QBrush());
     }
     slotSelectTool();
     QList<QGraphicsItem *> list = m_scene->items();
-    for (int i = 0; i < list.count(); i++) {
-        if (list.at(i)->zValue() > -1000) {
+    for(int i = 0; i < list.count(); i++) {
+        if(list.at(i)->zValue() > -1000) {
             list.at(i)->setFlag(QGraphicsItem::ItemIsMovable, !anim);
             list.at(i)->setFlag(QGraphicsItem::ItemIsSelectable, !anim);
         }
@@ -1991,7 +1995,7 @@ void TitleWidget::slotAnimEnd(bool anim)
     itemrotatez->setEnabled(!anim);
     frame_toolbar->setEnabled(!anim);
     toolbar_stack->setEnabled(!anim);
-    if (anim) {
+    if(anim) {
         keep_aspect->setChecked(!m_endViewport->data(0).isNull());
         m_endViewport->setZValue(1100);
         QColor col = m_endViewport->pen().color();
@@ -2001,12 +2005,12 @@ void TitleWidget::slotAnimEnd(bool anim)
         m_endViewport->setSelected(true);
         selectionChanged();
         slotSelectTool();
-        if (m_endViewport->childItems().isEmpty()) addAnimInfoText();
+        if(m_endViewport->childItems().isEmpty()) addAnimInfoText();
     } else {
         m_endViewport->setZValue(-1000);
         m_endViewport->setBrush(QBrush());
         m_endViewport->setFlags(0);
-        if (!anim_start->isChecked()) deleteAnimInfoText();
+        if(!anim_start->isChecked()) deleteAnimInfoText();
     }
 }
 
@@ -2031,17 +2035,17 @@ void TitleWidget::addAnimInfoText()
 void TitleWidget::updateInfoText()
 {
     // update info text font
-    if (!m_startViewport->childItems().isEmpty()) {
+    if(!m_startViewport->childItems().isEmpty()) {
         QGraphicsTextItem *item = static_cast <QGraphicsTextItem *>(m_startViewport->childItems().at(0));
-        if (item) {
+        if(item) {
             QFont font = item->font();
             font.setPixelSize(m_startViewport->rect().width() / 10);
             item->setFont(font);
         }
     }
-    if (!m_endViewport->childItems().isEmpty()) {
+    if(!m_endViewport->childItems().isEmpty()) {
         QGraphicsTextItem *item = static_cast <QGraphicsTextItem *>(m_endViewport->childItems().at(0));
-        if (item) {
+        if(item) {
             QFont font = item->font();
             font.setPixelSize(m_endViewport->rect().width() / 10);
             item->setFont(font);
@@ -2052,12 +2056,12 @@ void TitleWidget::updateInfoText()
 void TitleWidget::deleteAnimInfoText()
 {
     // end animation editing, remove info text
-    while (!m_startViewport->childItems().isEmpty()) {
+    while(!m_startViewport->childItems().isEmpty()) {
         QGraphicsItem *item = m_startViewport->childItems().at(0);
         m_scene->removeItem(item);
         delete item;
     }
-    while (!m_endViewport->childItems().isEmpty()) {
+    while(!m_endViewport->childItems().isEmpty()) {
         QGraphicsItem *item = m_endViewport->childItems().at(0);
         m_scene->removeItem(item);
         delete item;
@@ -2066,7 +2070,7 @@ void TitleWidget::deleteAnimInfoText()
 
 void TitleWidget::slotKeepAspect(bool keep)
 {
-    if (m_endViewport->zValue() == 1100) {
+    if(m_endViewport->zValue() == 1100) {
         m_endViewport->setData(0, keep == true ? m_frameWidth : QVariant());
         m_endViewport->setData(1, keep == true ? m_frameHeight : QVariant());
     } else {
@@ -2077,21 +2081,21 @@ void TitleWidget::slotKeepAspect(bool keep)
 
 void TitleWidget::slotResize50()
 {
-    if (m_endViewport->zValue() == 1100) {
+    if(m_endViewport->zValue() == 1100) {
         m_endViewport->setRect(0, 0, m_frameWidth / 2, m_frameHeight / 2);
     } else m_startViewport->setRect(0, 0, m_frameWidth / 2, m_frameHeight / 2);
 }
 
 void TitleWidget::slotResize100()
 {
-    if (m_endViewport->zValue() == 1100) {
+    if(m_endViewport->zValue() == 1100) {
         m_endViewport->setRect(0, 0, m_frameWidth, m_frameHeight);
     } else m_startViewport->setRect(0, 0, m_frameWidth, m_frameHeight);
 }
 
 void TitleWidget::slotResize200()
 {
-    if (m_endViewport->zValue() == 1100) {
+    if(m_endViewport->zValue() == 1100) {
         m_endViewport->setRect(0, 0, m_frameWidth * 2, m_frameHeight * 2);
     } else m_startViewport->setRect(0, 0, m_frameWidth * 2, m_frameHeight * 2);
 }
@@ -2101,8 +2105,8 @@ void TitleWidget::slotAddEffect(int ix)
     QList<QGraphicsItem *> list = graphicsView->scene()->selectedItems();
     int effect = effect_list->itemData(ix).toInt();
 
-    if (list.size() == 1) {
-        if (effect == NOEFFECT)
+    if(list.size() == 1) {
+        if(effect == NOEFFECT)
             effect_stack->setHidden(true);
         else {
             effect_stack->setCurrentIndex(effect - 1);
@@ -2111,8 +2115,8 @@ void TitleWidget::slotAddEffect(int ix)
     } else // Hide the effects stack when more than one element is selected.
         effect_stack->setHidden(true);
 
-    foreach(QGraphicsItem *item, list) {
-        switch (effect) {
+    foreach(QGraphicsItem * item, list) {
+        switch(effect) {
         case NOEFFECT:
             item->setData(100, QVariant());
 #if QT_VERSION >= 0x040600
@@ -2124,7 +2128,7 @@ void TitleWidget::slotAddEffect(int ix)
              * Allow the user to set the typewriter effect to more than one
              * element, but do not add it to non-text elements.
              */
-            if (item->type() == TEXTITEM) {
+            if(item->type() == TEXTITEM) {
                 QStringList effdata = QStringList() << "typewriter" << QString::number(typewriter_delay->value()) + ";" + QString::number(typewriter_start->value());
                 item->setData(100, effdata);
             }
@@ -2145,19 +2149,19 @@ void TitleWidget::slotAddEffect(int ix)
 void TitleWidget::slotFontText(const QString& s)
 {
     const QFont f(s);
-    if (f.exactMatch()) {
+    if(f.exactMatch()) {
         // Font really exists (could also just be a «d» if the user
         // starts typing «dejavu» for example).
         font_family->setCurrentFont(f);
     }
     // Note: Typing dejavu serif does not recognize the font (takes sans)
-    // in older Qt versions.
+    // in older Qt versions. Case must match there (except for first letter)
 }
 
 void TitleWidget::slotEditTypewriter(int /*ix*/)
 {
     QList<QGraphicsItem*> l = graphicsView->scene()->selectedItems();
-    if (l.size() == 1) {
+    if(l.size() == 1) {
         QStringList effdata = QStringList() << "typewriter" << QString::number(typewriter_delay->value()) + ";" + QString::number(typewriter_start->value());
         l[0]->setData(100, effdata);
     }
@@ -2169,10 +2173,10 @@ void TitleWidget::slotEditBlur(int ix)
     return;
 #else
     QList<QGraphicsItem*> l = graphicsView->scene()->selectedItems();
-    if (l.size() == 1) {
+    if(l.size() == 1) {
         QGraphicsEffect *eff = l[0]->graphicsEffect();
         QGraphicsBlurEffect *blur = static_cast <QGraphicsBlurEffect *>(eff);
-        if (blur) blur->setBlurRadius(ix);
+        if(blur) blur->setBlurRadius(ix);
     }
 #endif
 }
@@ -2183,10 +2187,10 @@ void TitleWidget::slotEditShadow()
     return;
 #else
     QList<QGraphicsItem*> l = graphicsView->scene()->selectedItems();
-    if (l.size() == 1) {
+    if(l.size() == 1) {
         QGraphicsEffect *eff = l[0]->graphicsEffect();
         QGraphicsDropShadowEffect *shadow = static_cast <QGraphicsDropShadowEffect *>(eff);
-        if (shadow) {
+        if(shadow) {
             shadow->setBlurRadius(shadow_radius->value());
             shadow->setOffset(shadow_x->value(), shadow_y->value());
         }
@@ -2198,29 +2202,29 @@ qreal TitleWidget::zIndexBounds(bool maxBound, bool intersectingOnly)
 {
     qreal bound = maxBound ? -99 : 99;
     QList<QGraphicsItem*> l = graphicsView->scene()->selectedItems();
-    if (l.size() > 0) {
+    if(l.size() > 0) {
         QList<QGraphicsItem*> lItems;
         // Get items (all or intersecting only)
-        if (intersectingOnly) {
+        if(intersectingOnly) {
             lItems = graphicsView->scene()->items(l[0]->sceneBoundingRect(), Qt::IntersectsItemShape);
         } else {
             lItems = graphicsView->scene()->items();
         }
-        if (lItems.size() > 0) {
+        if(lItems.size() > 0) {
             int n = lItems.size();
             qreal z;
-            if (maxBound) {
-                for (int i = 0; i < n; i++) {
+            if(maxBound) {
+                for(int i = 0; i < n; i++) {
                     z = lItems[i]->zValue();
-                    if (z > bound && !lItems[i]->isSelected()) {
+                    if(z > bound && !lItems[i]->isSelected()) {
                         bound = z;
                     }
                 }
             } else {
                 // Get minimum z index.
-                for (int i = 0; i < n; i++) {
+                for(int i = 0; i < n; i++) {
                     z = lItems[i]->zValue();
-                    if (z < bound && !lItems[i]->isSelected() && z > -999) {
+                    if(z < bound && !lItems[i]->isSelected() && z > -999) {
                         // There are items at the very bottom (background e.g.) with z-index < -1000.
                         bound = z;
                     }
@@ -2234,10 +2238,10 @@ qreal TitleWidget::zIndexBounds(bool maxBound, bool intersectingOnly)
 void TitleWidget::slotZIndexUp()
 {
     QList<QGraphicsItem*> l = graphicsView->scene()->selectedItems();
-    if (l.size() >= 1) {
+    if(l.size() >= 1) {
         qreal currentZ = l[0]->zValue();
         qreal max = zIndexBounds(true, true);
-        if (currentZ <= max) {
+        if(currentZ <= max) {
             l[0]->setZValue(currentZ + 1);
             updateDimension(l[0]);
         }
@@ -2247,10 +2251,10 @@ void TitleWidget::slotZIndexUp()
 void TitleWidget::slotZIndexTop()
 {
     QList<QGraphicsItem*> l = graphicsView->scene()->selectedItems();
-    if (l.size() >= 1) {
+    if(l.size() >= 1) {
         qreal currentZ = l[0]->zValue();
         qreal max = zIndexBounds(true, false);
-        if (currentZ <= max) {
+        if(currentZ <= max) {
             l[0]->setZValue(max + 1);
             updateDimension(l[0]);
         }
@@ -2260,10 +2264,10 @@ void TitleWidget::slotZIndexTop()
 void TitleWidget::slotZIndexDown()
 {
     QList<QGraphicsItem*> l = graphicsView->scene()->selectedItems();
-    if (l.size() >= 1) {
+    if(l.size() >= 1) {
         qreal currentZ = l[0]->zValue();
         qreal min = zIndexBounds(false, true);
-        if (currentZ >= min) {
+        if(currentZ >= min) {
             l[0]->setZValue(currentZ - 1);
             updateDimension(l[0]);
         }
@@ -2273,10 +2277,10 @@ void TitleWidget::slotZIndexDown()
 void TitleWidget::slotZIndexBottom()
 {
     QList<QGraphicsItem*> l = graphicsView->scene()->selectedItems();
-    if (l.size() >= 1) {
+    if(l.size() >= 1) {
         qreal currentZ = l[0]->zValue();
         qreal min = zIndexBounds(false, false);
-        if (currentZ >= min) {
+        if(currentZ >= min) {
             l[0]->setZValue(min - 1);
             updateDimension(l[0]);
         }
index ea2b025e8f560f1f5f8d0109b7d414e5cf83c5f9..884958e603d6a1364fa798598c29c4c894949819 100644 (file)
@@ -100,7 +100,7 @@ public:
     /** @brief Returns clip out position. */
     int outPoint() const;
 
-    /** @brief Loads title templates. */
+    /** @brief Retrieves a list of all available title templates. */
     static void refreshTitleTemplates();
 
 protected:
@@ -216,7 +216,7 @@ public slots:
     void slotNewRect(QGraphicsRectItem *rect);
     void slotChangeBackground();
 
-    /** @brief Sets up the tools according to the selected item. */
+    /** @brief Sets up the tools (toolbars etc.) according to the selected item. */
     void selectionChanged();
     void rectChanged();
     void setupViewports();
@@ -282,6 +282,7 @@ private slots:
     void slotAdjustZoom();
     void slotZoomOneToOne();
 
+    /** Called whenever text properties change (font e.g.) */
     void slotUpdateText();
     void slotInsertUnicode();
     void slotInsertUnicodeString(QString);
@@ -332,6 +333,7 @@ private slots:
     void slotZIndexDown();
     void slotZIndexTop();
     void slotZIndexBottom();
+    /** Called when the user wants to apply a different template to the title */
     void templateIndexChanged(int);
 };
 
index 4a2b5170b4c7c479ca8387c5fdc7bc55ffebc266..f8cd82a362646c15424e1ea4915b1b0a284f39a5 100644 (file)
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>986</width>
-    <height>621</height>
+    <width>1100</width>
+    <height>679</height>
    </rect>
   </property>
   <property name="sizePolicy">
@@ -20,7 +20,7 @@
    <string>Title Clip</string>
   </property>
   <layout class="QGridLayout" name="gridLayout_9">
-   <item row="0" column="0" colspan="5">
+   <item row="0" column="0" colspan="7">
     <widget class="QFrame" name="frame_toolbar">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
@@ -36,7 +36,7 @@
      </property>
     </widget>
    </item>
-   <item row="0" column="5" colspan="6">
+   <item row="0" column="7" colspan="7">
     <widget class="QFrame" name="frame_properties">
      <property name="sizePolicy">
       <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
      </layout>
     </widget>
    </item>
-   <item row="2" column="0" colspan="10">
+   <item row="2" column="0" colspan="13">
     <widget class="QSplitter" name="splitter">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding">
      </property>
     </widget>
    </item>
-   <item row="3" column="2">
+   <item row="3" column="3">
     <widget class="QSlider" name="zoom_slider">
      <property name="minimumSize">
       <size>
      </property>
     </widget>
    </item>
-   <item row="3" column="3">
+   <item row="3" column="4">
     <widget class="QLabel" name="zoom_label">
      <property name="text">
       <string>x1</string>
      </property>
     </widget>
    </item>
-   <item row="3" column="4" colspan="2">
+   <item row="3" column="6" colspan="2">
     <widget class="QCheckBox" name="displayBg">
      <property name="text">
       <string>Show background</string>
      </property>
     </widget>
    </item>
-   <item row="1" column="0" colspan="11">
+   <item row="1" column="0" colspan="14">
     <widget class="QStackedWidget" name="toolbar_stack">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Preferred" vsizetype="Maximum">
      </widget>
     </widget>
    </item>
-   <item row="3" column="8">
+   <item row="3" column="11">
     <widget class="QDialogButtonBox" name="buttonBox">
      <property name="orientation">
       <enum>Qt::Horizontal</enum>
      </property>
     </widget>
    </item>
-   <item row="3" column="7">
+   <item row="3" column="10">
     <widget class="QComboBox" name="templateBox"/>
    </item>
-   <item row="3" column="6">
+   <item row="3" column="9">
     <widget class="QLabel" name="label_22">
      <property name="text">
       <string>Template:</string>
      </property>
     </widget>
    </item>
+   <item row="3" column="8">
+    <widget class="Line" name="line_6">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+    </widget>
+   </item>
+   <item row="3" column="5">
+    <widget class="Line" name="line_7">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+    </widget>
+   </item>
+   <item row="3" column="2">
+    <widget class="Line" name="line_8">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+    </widget>
+   </item>
   </layout>
  </widget>
  <customwidgets>