[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdevplatform/vcs/widgets
From:       Andreas Pakulat <apaku () gmx ! de>
Date:       2008-03-15 0:37:24
Message-ID: 1205541444.849461.9752.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 785807 by apaku:

Wasn't there a reason I pushed for a setAutoDelete( false ) member on KJob? Right, \
make it possible to view diffs between revisions directly from KDevelop's History \
view!

 M  +21 -8     vcseventwidget.cpp  


--- trunk/KDE/kdevplatform/vcs/widgets/vcseventwidget.cpp #785806:785807
@@ -29,8 +29,9 @@
 
 #include "ui_vcseventwidget.h"
 
+#include <interfaces/iplugin.h>
+
 #include "../vcsjob.h"
-#include <interfaces/iplugin.h>
 #include "../interfaces/ibasicversioncontrol.h"
 #include "../vcsrevision.h"
 #include "../vcsevent.h"
@@ -39,6 +40,7 @@
 #include "../models/vcsitemeventmodel.h"
 #include "../models/vcseventmodel.h"
 
+#include "vcsdiffwidget.h"
 
 namespace KDevelop
 {
@@ -132,10 +134,13 @@
 
             KDevelop::VcsJob* job = iface->diff( loc, loc, prev, ev.revision() );
 
-
-//             SvnDiffDialog* dlg = new SvnDiffDialog( job );
-//             connect( dlg, SIGNAL( destroyed( QObject* ) ), job, SLOT( \
                deleteLater() ) );
-//             dlg->show();
+            VcsDiffWidget* widget = new VcsDiffWidget( job );
+            widget->setRevisions( prev, ev.revision() );
+            KDialog* dlg = new KDialog( q );
+            dlg->setCaption( i18n("Difference To Previous") );
+            dlg->setButtons( KDialog::Ok );
+            dlg->setMainWidget( widget );
+            dlg->show();
         }
     }
 }
@@ -154,9 +159,13 @@
             KDevelop::VcsLocation loc( m_url );
             KDevelop::VcsJob* job = iface->diff( loc, loc, ev1.revision(), \
ev2.revision() );  
-//             SvnDiffDialog* dlg = new SvnDiffDialog( job );
-//             connect( dlg, SIGNAL( destroyed( QObject* ) ), job, SLOT( \
                deleteLater() ) );
-//             dlg->show();
+            VcsDiffWidget* widget = new VcsDiffWidget( job );
+            widget->setRevisions( ev1.revision(), ev2.revision() );
+            KDialog* dlg = new KDialog( q );
+            dlg->setCaption( i18n("Difference between Revisions") );
+            dlg->setButtons( KDialog::Ok );
+            dlg->setMainWidget( widget );
+            dlg->show();
         }
     }
 }
@@ -166,6 +175,9 @@
 {
 
     d->m_job = job;
+    //Don't autodelete this job, its metadata will be used later on
+    d->m_job->setAutoDelete( false );
+    
     d->m_url = url;
     d->m_ui = new Ui::VcsEventWidget();
     d->m_ui->setupUi(this);
@@ -203,6 +215,7 @@
     delete d->m_logModel;
     delete d->m_detailModel;
     delete d->m_ui;
+    d->m_job->deleteLater();
     delete d;
 }
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic