#include "kdenlivesettings.h"
#include "renderer.h"
#include "clipmanager.h"
-#include "titlewidget.h"
+#include "widgets/titlewidget.h"
#include "mainwindow.h"
#include "documentchecker.h"
#include "documentvalidator.h"
#include <KStandardDirs>
#include <KMessageBox>
#include <KProgressDialog>
-#include <KLocale>
+#include <KLocalizedString>
#include <KFileDialog>
#include <KIO/NetAccess>
#include <KIO/CopyJob>
if (e.tagName() == "trackinfo") {
TrackInfo projectTrack;
if (e.attribute("type") == "audio")
- projectTrack.type = AUDIOTRACK;
+ projectTrack.type = AudioTrack;
else
- projectTrack.type = VIDEOTRACK;
+ projectTrack.type = VideoTrack;
projectTrack.isMute = e.attribute("mute").toInt();
projectTrack.isBlind = e.attribute("blind").toInt();
projectTrack.isLocked = e.attribute("locked").toInt();
// Better default names for tracks: Audio 1 etc. instead of blank numbers
for (int i = 0; i < audiotracks; ++i) {
TrackInfo audioTrack;
- audioTrack.type = AUDIOTRACK;
+ audioTrack.type = AudioTrack;
audioTrack.isMute = false;
audioTrack.isBlind = true;
audioTrack.isLocked = false;
}
for (int i = 0; i < videotracks; ++i) {
TrackInfo videoTrack;
- videoTrack.type = VIDEOTRACK;
+ videoTrack.type = VideoTrack;
videoTrack.isMute = false;
videoTrack.isBlind = false;
videoTrack.isLocked = false;
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)
track.setAttribute("hide", "video");
QDomElement tracksinfo = sceneList.createElement("tracksinfo");
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);
KStandardDirs::makeDir(url.path());
KStandardDirs::makeDir(url.path(KUrl::AddTrailingSlash) + "titles/");
KStandardDirs::makeDir(url.path(KUrl::AddTrailingSlash) + "thumbs/");
+ KStandardDirs::makeDir(url.path(KUrl::AddTrailingSlash) + "proxy/");
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?", m_projectFolder.path(), url.path())) == KMessageBox::Yes) moveProjectData(url);
m_projectFolder = url;
KUrl::List cacheUrls;
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());
}
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)) {
cacheUrls << oldVideoThumbUrl;
}
+ KUrl oldAudioThumbUrl = KUrl(m_projectFolder.path(KUrl::AddTrailingSlash) + "thumbs/" + hash + ".thumb");
if (KIO::NetAccess::exists(oldAudioThumbUrl, KIO::NetAccess::SourceSide, 0)) {
cacheUrls << oldAudioThumbUrl;
}
+ KUrl oldVideoProxyUrl = KUrl(m_projectFolder.path(KUrl::AddTrailingSlash) + "proxy/" + hash + '.' + KdenliveSettings::proxyextension());
+ if (KIO::NetAccess::exists(oldVideoProxyUrl, KIO::NetAccess::SourceSide, 0)) {
+ cacheUrls << oldVideoProxyUrl;
+ }
}
if (!cacheUrls.isEmpty()) {
KIO::Job *job = KIO::copy(cacheUrls, KUrl(url.path(KUrl::AddTrailingSlash) + "thumbs/"));
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 (elem.hasAttribute("_missingsource")) {
// Clip has proxy but missing original source
}
- else if (path.isEmpty() == false && QFile::exists(path) == false && elem.attribute("type").toInt() != TEXT && !elem.hasAttribute("placeholder")) {
+ else 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");
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)
newpath = KFileDialog::getExistingDirectory(KUrl("kfiledialog:///clipfolder"), kapp->activeWindow(), i18n("Looking for %1", path));
elem.setAttribute("placeholder", '1');
}
if (!newpath.isEmpty()) {
- if (elem.attribute("type").toInt() == SLIDESHOW)
+ kDebug() << "// NEW CLIP PATH FOR CLIP " << clipId << " : " << newpath;
+ if (elem.attribute("type").toInt() == SlideShow)
newpath.append('/' + extension);
elem.setAttribute("resource", newpath);
setNewClipResource(clipId, newpath);
fileHash = QCryptographicHash::hash(fileData, QCryptographicHash::Md5);
if (QString(fileHash.toHex()) == matchHash)
return file.fileName();
+ else
+ kDebug() << filesAndDirs.at(i) << "size match but not hash";
}
}
- kDebug() << filesAndDirs.at(i) << file.size() << fileHash.toHex();
+ //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) {
int audio = 0;
int video = 0;
foreach(const TrackInfo & info, m_tracksList) {
- if (info.type == VIDEOTRACK) video++;
+ if (info.type == VideoTrack) video++;
else audio++;
}
return QPoint(video, audio);