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
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 ) {