void ClipManager::slotGetThumbs()
{
QMap<QString, int>::iterator i = m_requestedThumbs.begin();
+ int max;
+ int done = 0;
while (i != m_requestedThumbs.end() && !m_abortThumb) {
QString producerId = i.key();
m_thumbsMutex.lock();
QList<int> values = m_requestedThumbs.values(producerId);
- i = m_requestedThumbs.erase(i);
+ m_requestedThumbs.remove(producerId);
+ i = m_requestedThumbs.begin();
m_thumbsMutex.unlock();
qSort(values);
DocClipBase *clip = getClipById(producerId);
if (!clip) continue;
+ max = m_requestedThumbs.size() + values.count();
while (!values.isEmpty() && clip->thumbProducer() && !m_abortThumb) {
clip->thumbProducer()->getThumb(values.takeFirst());
+ done++;
+ if (max > 3) emit displayMessage(i18n("Loading thumbnails"), 100 * done / max);
}
}
+ emit displayMessage(QString(), -1);
}
void ClipManager::checkAudioThumbs()
void missingClip(const QString &);
void availableClip(const QString &);
void checkAllClips(bool displayRatioChanged, bool fpsChanged, QStringList brokenClips);
+ void displayMessage(const QString &, int);
};
#endif
QToolButton *button = new QToolButton(this);
button->setIcon(KIcon("color-picker"));
- // TODO: make translatable after 0.8.2 release
- button->setToolTip(i18n("Pick a color on the screen") + QString("\nBy pressing the mouse button and then moving your mouse you can select a section of the screen from which to get an average color."));
+ button->setToolTip("<p>" + i18n("Pick a color on the screen. By pressing the mouse button and then moving your mouse you can select a section of the screen from which to get an average color.") + "</p>");
button->setAutoRaise(true);
connect(button, SIGNAL(clicked()), this, SLOT(slotSetupEventFilter()));
if (pos < GenTime()) {
// Add track effect
if (effect.attribute("id") == "speed") {
- // TODO: uncomment after 0.8.2 release
- // emit displayMessage(i18n("Cannot add speed effect to track"));
+ emit displayMessage(i18n("Cannot add speed effect to track"), ErrorMessage);
return;
}
clearSelection();
m_commandStack->push(deleteSelected);
}
-void CustomTrackView::changeClipSpeed()
-{
- // TODO: remove after string freeze
- QList<QGraphicsItem *> itemList = scene()->selectedItems();
- if (itemList.count() == 0) {
- emit displayMessage(i18n("Select clip to change speed"), ErrorMessage);
- return;
- }
- QUndoCommand *changeSelected = new QUndoCommand();
- changeSelected->setText("Edit clip speed");
- int count = 0;
- int percent = -1;
- bool ok;
- for (int i = 0; i < itemList.count(); i++) {
- if (itemList.at(i)->type() == AVWIDGET) {
- ClipItem *item = static_cast <ClipItem *>(itemList.at(i));
- if (percent == -1) percent = QInputDialog::getInteger(this, i18n("Edit Clip Speed"), i18n("New speed (percents)"), item->speed() * 100, 1, 10000, 1, &ok);
- if (!ok) break;
- double speed = (double) percent / 100.0;
- if (item->speed() != speed && (item->clipType() == VIDEO || item->clipType() == AV)) {
- count++;
- //new ChangeSpeedCommand(this, info, item->speed(), speed, item->clipProducer(), changeSelected);
- }
- }
- }
- if (count > 0) m_commandStack->push(changeSelected);
- else delete changeSelected;
-}
void CustomTrackView::doChangeClipSpeed(ItemInfo info, ItemInfo speedIndependantInfo, const double speed, const double oldspeed, int strobe, const QString &id)
{
QList<ItemInfo> findId(const QString &clipId);
void clipStart();
void clipEnd();
- void changeClipSpeed();
void doChangeClipSpeed(ItemInfo info, ItemInfo speedIndependantInfo, const double speed, const double oldspeed, int strobe, const QString &id);
/** @brief Sets the document as modified. */
void setDocumentModified();
initEffects::parseEffectFiles();
}
- // TODO: remove after string freeze
- if (0)
- KMessageBox::sorry(kapp->activeWindow(), i18n("The document you are opening uses a different locale (%1) than your system. You can only open and render it, no editing is supported unless you change your system's locale.", mlt.attribute("LC_NUMERIC")), i18n("Read only project"));
-
// Upgrade the document to the latest version
if (!upgrade(documentLocale.toDouble(kdenliveDoc.attribute("version")), currentVersion))
return false;
renderbg.start(KdenliveSettings::rendererpath(), args);
if (renderbg.waitForFinished()) {
if (renderbg.exitStatus() == QProcess::CrashExit) {
- //TODO: inform user via the m_isoMessage widget after string freeze
kDebug() << "/// RENDERING MENU vob crashed";
+ errorMessage(i18n("Rendering menu crashed"));
QByteArray result = renderbg.readAllStandardError();
vobitem->setIcon(KIcon("dialog-close"));
m_status.error_log->append(result);
}
} else {
kDebug() << "/// RENDERING MENU vob timed out";
-#if KDE_IS_VERSION(4,7,0)
- m_isoMessage->setText(i18n("Rendering job timed out"));
- m_isoMessage->setMessageType(KMessageWidget::Error);
- m_isoMessage->animatedShow();
-#endif
+ errorMessage(i18n("Rendering job timed out"));
vobitem->setIcon(KIcon("dialog-close"));
m_status.error_log->append("<a name=\"result\" /><br /><strong>" + i18n("Rendering job timed out"));
m_status.error_log->scrollToAnchor("result");
}
} else {
kDebug() << "/// RENDERING SPUMUX MENU timed out";
-#if KDE_IS_VERSION(4,7,0)
- m_isoMessage->setText(i18n("Rendering job timed out"));
- m_isoMessage->setMessageType(KMessageWidget::Error);
- m_isoMessage->animatedShow();
-#endif
+ errorMessage(i18n("Rendering job timed out"));
spuitem->setIcon(KIcon("dialog-close"));
m_status.error_log->append("<a name=\"result\" /><br /><strong>" + i18n("Menu job timed out"));
m_status.error_log->scrollToAnchor("result");
m_status.error_box->setHidden(false);
}
+void DvdWizard::errorMessage(const QString &text) {
+#if KDE_IS_VERSION(4,7,0)
+ m_isoMessage->setText(text);
+ m_isoMessage->setMessageType(KMessageWidget::Error);
+ m_isoMessage->animatedShow();
+#endif
+}
+
+void DvdWizard::infoMessage(const QString &text) {
+#if KDE_IS_VERSION(4,7,0)
+ m_isoMessage->setText(text);
+ m_isoMessage->setMessageType(KMessageWidget::Positive);
+ m_isoMessage->animatedShow();
+#endif
+}
+
void DvdWizard::slotRenderFinished(int exitCode, QProcess::ExitStatus status)
{
QListWidgetItem *authitem = m_status.job_progress->item(3);
if (status == QProcess::CrashExit || exitCode != 0) {
-#if KDE_IS_VERSION(4,7,0)
- //TODO: Clean up message string after string freeze
- QString message = i18n("DVDAuthor process crashed.</strong><br />");
- message.remove(QRegExp("<[^>]*>"));
- m_isoMessage->setText(message);
- m_isoMessage->setMessageType(KMessageWidget::Error);
- m_isoMessage->animatedShow();
-#endif
+ errorMessage(i18n("DVDAuthor process crashed"));
QString result(m_dvdauthor->readAllStandardError());
result.append("<a name=\"result\" /><br /><strong>");
result.append(i18n("DVDAuthor process crashed.</strong><br />"));
// Check if DVD structure has the necessary infos
if (!QFile::exists(m_status.tmp_folder->url().path() + "/DVD/VIDEO_TS/VIDEO_TS.IFO")) {
-#if KDE_IS_VERSION(4,7,0)
- m_isoMessage->setText(i18n("DVD structure broken"));
- m_isoMessage->setMessageType(KMessageWidget::Error);
- m_isoMessage->animatedShow();
-#endif
+ errorMessage(i18n("DVD structure broken"));
m_status.error_log->append(m_creationLog + "<a name=\"result\" /><br /><strong>" + i18n("DVD structure broken"));
m_status.error_log->scrollToAnchor("result");
m_status.error_box->setHidden(false);
button(QWizard::FinishButton)->setEnabled(true);
QListWidgetItem *isoitem = m_status.job_progress->item(4);
if (status == QProcess::CrashExit || exitCode != 0) {
-#if KDE_IS_VERSION(4,7,0)
- m_isoMessage->setText(i18n("ISO creation process crashed."));
- m_isoMessage->setMessageType(KMessageWidget::Error);
- m_isoMessage->animatedShow();
-#endif
+ errorMessage(i18n("ISO creation process crashed."));
QString result(m_mkiso->readAllStandardError());
result.append("<a name=\"result\" /><br /><strong>");
result.append(i18n("ISO creation process crashed."));
if (iso.exists()) {
KIO::NetAccess::del(m_status.iso_image->url(), this);
}
-#if KDE_IS_VERSION(4,7,0)
- m_isoMessage->setText(i18n("DVD ISO is broken"));
- m_isoMessage->setMessageType(KMessageWidget::Error);
- m_isoMessage->animatedShow();
-#endif
+ errorMessage(i18n("DVD ISO is broken"));
m_status.error_log->append(m_creationLog + "<br /><a name=\"result\" /><strong>" + i18n("DVD ISO is broken") + "</strong>");
m_status.error_log->scrollToAnchor("result");
m_status.error_box->setHidden(false);
kDebug() << "ISO IMAGE " << m_status.iso_image->url().path() << " Successfully created";
cleanup();
kDebug() << m_creationLog;
-#if KDE_IS_VERSION(4,7,0)
- m_isoMessage->setText(i18n("DVD ISO image %1 successfully created.", m_status.iso_image->url().path()));
- m_isoMessage->setMessageType(KMessageWidget::Positive);
- m_isoMessage->animatedShow();
-#endif
+ infoMessage(i18n("DVD ISO image %1 successfully created.", m_status.iso_image->url().path()));
m_status.error_log->append("<a name=\"result\" /><strong>" + i18n("DVD ISO image %1 successfully created.", m_status.iso_image->url().path()) + "</strong>");
m_status.error_log->scrollToAnchor("result");
QString m_creationLog;
void cleanup();
QMenu *m_burnMenu;
+ void errorMessage(const QString &text);
+ void infoMessage(const QString &text);
private slots:
void slotPageChanged(int page);
Name[nl]=Weergave uitwerken beëindigd
Name[pt]=A geração terminou
Name[pt_BR]=A renderização terminou
-Name[sv]=Framställning klar
+Name[sv]=Återgivning klar
Name[uk]=Обробку завершено
Name[x-test]=xxRendering finishedxx
Name[zh_CN]=渲染结束
Comment[nl]=Weergave uitwerken is gereed
Comment[pt]=A geração terminou
Comment[pt_BR]=A renderização foi terminada
-Comment[sv]=Framställning är gjord
+Comment[sv]=Återgivningen är gjord
Comment[uk]=Виконання обробки завершено
Comment[x-test]=xxRendering is overxx
Comment[zh_CN]=渲染结束
Name[nl]=Weergave uitwerken begonnen
Name[pt]=A geração foi iniciada
Name[pt_BR]=A renderização iniciou
-Name[sv]=Framställning startad
+Name[sv]=Återgivning startad
Name[uk]=Обробку розпочато
Name[x-test]=xxRendering startedxx
Name[zh_CN]=渲染开始
Comment[nl]=Weergave uitwerken is begonnen
Comment[pt]=A geração foi iniciada
Comment[pt_BR]=A renderização foi iniciada
-Comment[sv]=Framställning har startats
+Comment[sv]=Återgivningen har startats
Comment[uk]=Було розпочато обробку
Comment[x-test]=xxRendering was startedxx
Comment[zh_CN]=渲染开始
m_clipManager = new ClipManager(this);
m_autoSaveTimer = new QTimer(this);
m_autoSaveTimer->setSingleShot(true);
+ connect(m_clipManager, SIGNAL(displayMessage(QString, int)), parent, SLOT(slotGotProgressInfo(QString,int)));
bool success = false;
// init default document properties