]> git.sesse.net Git - kdenlive/commitdiff
Workaround crash caused by KMessageWidget bug
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Thu, 3 Jan 2013 23:32:18 +0000 (00:32 +0100)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Thu, 3 Jan 2013 23:32:18 +0000 (00:32 +0100)
src/recmonitor.cpp
src/renderwidget.cpp

index b0a72c94238366cc7b7ad89cd893dd6b35bfe09b..b0ff2eacd793e084e7c3c659ab828f57771be26a 100644 (file)
@@ -234,7 +234,11 @@ void RecMonitor::slotVideoDeviceChanged(int ix)
     QString capturefile;
     QString capturename;
 #if KDE_IS_VERSION(4,7,0)
+#if KDE_IS_VERSION(4,10,0)
     m_infoMessage->animatedHide();
+#else    
+    QTimer::singleShot(0, m_infoMessage, SLOT(animatedHide()));
+#endif
 #endif
     m_previewSettings->setEnabled(ix == VIDEO4LINUX || ix == BLACKMAGIC);
     control_frame->setVisible(ix == VIDEO4LINUX);
@@ -794,7 +798,11 @@ void RecMonitor::showMessage(const QString &text, const QString &icon, bool logA
        connect(manualAction, SIGNAL(triggered()), this, SLOT(slotShowLog()));
        m_infoMessage->addAction(manualAction);
     }
+#if KDE_IS_VERSION(4,10,0)
     m_infoMessage->animatedShow();
+#else
+    QTimer::singleShot(0, m_infoMessage, SLOT(animatedShow()));
+#endif
 #else
     if (!logAction) {
        video_frame->setPixmap(mergeSideBySide(KIcon(icon).pixmap(QSize(50, 50)), text));
index bdb822adbcb2aaa0b02bb62fe4831f81ea59a387..d0d486e580acfc20c0cdee13bc05a9af494d8e0c 100644 (file)
@@ -2149,15 +2149,16 @@ void RenderWidget::missingClips(bool hasMissing)
 
 void RenderWidget::errorMessage(const QString &message)
 {
-#if KDE_VERSION == KDE_MAKE_VERSION(4,9,4)
-    // Workaround crash in KDE: #311336
-    show();
-#endif
     if (!message.isEmpty()) {
 #if KDE_IS_VERSION(4,7,0)
         m_infoMessage->setMessageType(KMessageWidget::Warning);
         m_infoMessage->setText(message);
+#if KDE_IS_VERSION(4,10,0)
         m_infoMessage->animatedShow();
+#else
+       // Workaround KDE bug in KMessageWidget
+       QTimer::singleShot(0, m_infoMessage, SLOT(animatedShow()));
+#endif
 #else
         m_view.errorLabel->setText(message);
         m_view.errorBox->setHidden(false);
@@ -2165,7 +2166,11 @@ void RenderWidget::errorMessage(const QString &message)
     }
     else {
 #if KDE_IS_VERSION(4,7,0)
+#if KDE_IS_VERSION(4,10,0)
         m_infoMessage->animatedHide();
+#else
+       QTimer::singleShot(0, m_infoMessage, SLOT(animatedHide()));
+#endif
 #else
         m_view.errorBox->setHidden(true);
         m_view.errorLabel->setText(QString());