Bug 85590 - unable to delete articles
Summary: unable to delete articles
Status: RESOLVED FIXED
Alias: None
Product: akregator
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: unspecified Linux
: NOR wishlist
Target Milestone: ---
Assignee: kdepim bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-07-20 23:54 UTC by sharon63
Modified: 2004-12-02 18:34 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description sharon63 2004-07-20 23:54:18 UTC
Version:           1.0-beta5 "Pierre" (using KDE 3.2.3-1.0.2.kde, Fedora Core release 2 (Tettnang))
Compiler:          gcc version 3.3.3 20040412 (Red Hat Linux 3.3.3-7)
OS:                Linux (i686) release 2.6.6-1.435.2.3

if you have duplicate articles or you just wish to delete an article, it is impossible to do
Comment 1 Frank Osterfeld 2004-12-02 18:34:02 UTC
CVS commit by osterfeld: 

added possibility to delete articles
FEATURE: 85590


  M +3 -0      akregator_part.cpp   1.110
  M +3 -1      akregator_part.rc   1.32
  M +24 -0     akregator_view.cpp   1.176
  M +3 -0      akregator_view.h   1.72
  M +1 -1      feed.cpp   1.61
  M +6 -6      myarticle.cpp   1.26


--- kdenonbeta/akregator/src/akregator_part.cpp  #1.109:1.110
@@ -122,4 +122,7 @@ void aKregatorPart::setupActions()
     tkf->setChecked(false);
 
+    new KAction(i18n("&Delete Article"), QString::null, "Delete", m_view, SLOT(slotArticleDelete()), actionCollection(), "article_delete");
+    
+
     KActionMenu* statusMenu = new KActionMenu ( i18n( "&Mark Article" ),
                                     actionCollection(), "article_set_status" );

--- kdenonbeta/akregator/src/akregator_part.rc  #1.31:1.32
@@ -1,4 +1,4 @@
 <!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
-<kpartgui name="akregator_part" version="38">
+<kpartgui name="akregator_part" version="39">
 <MenuBar>
   <Menu name="file">
@@ -31,4 +31,5 @@
   <Action name="article_set_status"/>
   <Action name="article_toggle_keep"/>
+  <Action name="article_delete"/>
   </Menu>
   
@@ -117,4 +118,5 @@
   <Action name="article_set_status"/>
   <Action name="article_toggle_keep"/>
+  <Action name="article_delete"/>
 </Menu>
 

--- kdenonbeta/akregator/src/akregator_view.cpp  #1.175:1.176
@@ -65,4 +65,5 @@
 #include <qmultilineedit.h>
 #include <qpopupmenu.h>
+#include <qstylesheet.h>
 #include <qtextstream.h>
 #include <qtimer.h>
@@ -1493,4 +1494,27 @@ void aKregatorView::slotToggleShowQuickF
 }
 
+void aKregatorView::slotArticleDelete()
+{
+
+    if ( m_viewMode == CombinedView )
+        return;
+    
+    ArticleListItem* ali = static_cast<ArticleListItem*>(m_articles->selectedItem());
+
+    if (!ali)
+        return;
+
+    QString msg = QString(i18n("<qt>Are you sure you want to delete article <b>%1</b>?</qt>")).arg(QStyleSheet::escape(ali->article().title()));
+                
+    if (KMessageBox::warningContinueCancel(0, msg, i18n("Delete Article"), KGuiItem(i18n("&Delete"), "articledelete")) == KMessageBox::Continue)
+    {
+        ali->article().setDeleted();
+        m_articles->slotUpdate();
+        m_articleViewer->slotClear();
+        Archive::save(ali->article().feed());
+    }
+}
+
+    
 void aKregatorView::slotArticleToggleKeepFlag()
 {

--- kdenonbeta/akregator/src/akregator_view.h  #1.71:1.72
@@ -131,4 +131,7 @@ namespace Akregator
             void slotArticleToggleKeepFlag();
 
+            /** deletes the currently selected article */
+            void slotArticleDelete(); 
+            
             void slotSetSelectedArticleUnread();
             void slotSetSelectedArticleNew();

--- kdenonbeta/akregator/src/feed.cpp  #1.60:1.61
@@ -290,5 +290,5 @@ void Feed::appendArticle(const MyArticle
 {
     
-    if ( a.keep() || (!(usesExpiryByAge() && isExpired(a))) ) // if not expired
+    if ( a.keep() || ( !usesExpiryByAge() || !isExpired(a) ) ) // if not expired
     {
         if (a.status() != MyArticle::Read)

--- kdenonbeta/akregator/src/myarticle.cpp  #1.25:1.26
@@ -201,10 +201,4 @@ void MyArticle::dumpXmlData( QDomElement
     }
 
-    QDomElement metanode = doc.createElement( "metaInfo:meta" );
-    metanode.setAttribute("type","status");
-    QDomText stat=doc.createTextNode(QString::number(d->status));
-    metanode.appendChild(stat);
-    parent.appendChild(metanode);
-
     if ( isDeleted() )
     {
@@ -257,4 +251,10 @@ void MyArticle::dumpXmlData( QDomElement
         }
     
+        QDomElement metanode = doc.createElement( "metaInfo:meta" );
+        metanode.setAttribute("type","status");
+        QDomText stat=doc.createTextNode(QString::number(d->status));
+        metanode.appendChild(stat);
+        parent.appendChild(metanode);
+    
         if ( d->keep )
         {