[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-core-devel
Subject: KNode patch
From: Christian Gebauer <gebauer () bigfoot ! com>
Date: 2000-09-29 1:34:00
[Download RAW message or body]
Hi,
huge patch, but 95% a trivial changes. During the XML-GUI port
I made the decision to move the KActions into the manager classes
to ease the process of (de)activating them. I used a separate
action collection for every manager class and merged them into
the main action collection before calling createGUI(). This was a bad
idea because this breaks the keyboard configuration dialog (#11794),
now all actions are inserted into the global action collection.
The patch also fixes some crashes that happen when the user
chooses to expire or unsubscribe from a group while downloading
articles in the same group.
Christian
--
>><< Christian Gebauer >><< gebauer@bigfoot.com >><< ICQ 14916141 >><<
["knode.diff" (text/plain)]
Index: knaccountmanager.cpp
===================================================================
RCS file: /home/kde/kdenetwork/knode/knaccountmanager.cpp,v
retrieving revision 1.14
diff -u -3 -p -r1.14 knaccountmanager.cpp
--- knaccountmanager.cpp 2000/09/23 22:02:43 1.14
+++ knaccountmanager.cpp 2000/09/29 01:20:04
@@ -41,8 +41,8 @@
#include "knaccountmanager.h"
-KNAccountManager::KNAccountManager(KNGroupManager *gm, KNListView *v, QObject * \
parent, const char * name)
- : QObject(parent, name), gManager(gm), view(v)
+KNAccountManager::KNAccountManager(KNGroupManager *gm, KNListView *v, \
KActionCollection* actColl, QObject * parent, const char * name) + : QObject(parent, \
name), gManager(gm), view(v), actionCollection(actColl) {
accList=new QList<KNNntpAccount>;
accList->setAutoDelete(true);
@@ -53,15 +53,15 @@ KNAccountManager::KNAccountManager(KNGro
loadAccounts();
actProperties = new KAction(i18n("&Properties..."), 0, this, \
SLOT(slotProperties()),
- &actionCollection, "account_properties");
+ actionCollection, "account_properties");
actSubscribe = new KAction(i18n("&Subscribe to Newsgroups..."),"news_subscribe", \
0, this, SLOT(slotSubscribe()),
- &actionCollection, "account_subscribe");
+ actionCollection, "account_subscribe");
actLoadHdrs = new KAction(i18n("&Get New Articles"), "mail_get", 0, this, \
SLOT(slotLoadHdrs()),
- &actionCollection, "account_dnlHeaders");
+ actionCollection, "account_dnlHeaders");
actDelete = new KAction(i18n("&Delete"), 0, this, SLOT(slotDelete()),
- &actionCollection, "account_delete");
+ actionCollection, "account_delete");
actPostNewArticle = new KAction(i18n("&Post new article"), "filenew", Key_P , \
this, SLOT(slotPostNewArticle()),
- &actionCollection, "article_postNew");
+ actionCollection, "article_postNew");
setCurrentAccount(0);
}
Index: knaccountmanager.h
===================================================================
RCS file: /home/kde/kdenetwork/knode/knaccountmanager.h,v
retrieving revision 1.7
diff -u -3 -p -r1.7 knaccountmanager.h
--- knaccountmanager.h 2000/09/23 22:02:43 1.7
+++ knaccountmanager.h 2000/09/29 01:20:04
@@ -33,11 +33,9 @@ class KNAccountManager : public QObject
Q_OBJECT
public:
- KNAccountManager(KNGroupManager *gm, KNListView *v, QObject * parent=0, const \
char * name=0); + KNAccountManager(KNGroupManager *gm, KNListView *v, \
KActionCollection* actColl, QObject * parent=0, const char * name=0); \
~KNAccountManager();
- const KActionCollection& actions() { return actionCollection; }
-
void readConfig();
void saveYourself();
void setCurrentAccount(KNNntpAccount *a);
@@ -67,7 +65,7 @@ class KNAccountManager : public QObject
KNListView *view;
KAction *actProperties, *actSubscribe, *actLoadHdrs, *actDelete, \
*actPostNewArticle;
- KActionCollection actionCollection;
+ KActionCollection *actionCollection;
protected slots:
void slotProperties();
Index: knarticlewidget.cpp
===================================================================
RCS file: /home/kde/kdenetwork/knode/knarticlewidget.cpp,v
retrieving revision 1.34
diff -u -3 -p -r1.34 knarticlewidget.cpp
--- knarticlewidget.cpp 2000/09/18 01:02:00 1.34
+++ knarticlewidget.cpp 2000/09/29 01:20:04
@@ -199,8 +199,8 @@ bool KNArticleWidget::fullHeaders()
-KNArticleWidget::KNArticleWidget(QWidget *parent, const char *name )
- : QTextBrowser(parent, name), a_rticle(0), c_oll(0), att(0), h_tmlDone(false)
+KNArticleWidget::KNArticleWidget(KActionCollection* actColl, QWidget *parent, const \
char *name ) + : QTextBrowser(parent, name), a_rticle(0), c_oll(0), att(0), \
h_tmlDone(false), actionCollection(actColl) {
instances.append(this);
@@ -225,13 +225,13 @@ KNArticleWidget::KNArticleWidget(QWidget
attPopup->insertItem(i18n("Save"), PUP_SAVE);
//actions
- actSave = KStdAction::save(this, SLOT(slotSave()), &actionCollection);
+ actSave = KStdAction::save(this, SLOT(slotSave()), actionCollection);
actSave->setEnabled(false);
- actPrint = KStdAction::print(this, SLOT(slotPrint()), &actionCollection);
+ actPrint = KStdAction::print(this, SLOT(slotPrint()), actionCollection);
actPrint->setEnabled(false);
- actSelAll = KStdAction::selectAll(this, SLOT(slotSelectAll()), \
&actionCollection); + actSelAll = KStdAction::selectAll(this, \
SLOT(slotSelectAll()), actionCollection); actSelAll->setEnabled(false);
- actCopy = KStdAction::copy(this, SLOT(copy()), &actionCollection);
+ actCopy = KStdAction::copy(this, SLOT(copy()), actionCollection);
actCopy->setEnabled(false);
applyConfig();
Index: knarticlewidget.h
===================================================================
RCS file: /home/kde/kdenetwork/knode/knarticlewidget.h,v
retrieving revision 1.12
diff -u -3 -p -r1.12 knarticlewidget.h
--- knarticlewidget.h 2000/08/13 16:13:23 1.12
+++ knarticlewidget.h 2000/09/29 01:20:04
@@ -44,7 +44,7 @@ class KNArticleWidget : public QTextBrow
enum browserType { BTkonqueror=0 , BTnetscape=1 };
enum anchorType { ATurl, ATauthor, ATreference, ATattachment, ATunknown };
- KNArticleWidget(QWidget *parent=0, const char *name=0 );
+ KNArticleWidget(KActionCollection* actColl, QWidget *parent=0, const char \
*name=0 ); ~KNArticleWidget();
//=======================================
@@ -59,8 +59,6 @@ class KNArticleWidget : public QTextBrow
static bool fullHeaders();
//=======================================
- const KActionCollection& actions() { return actionCollection; }
-
bool scrollingDownPossible(); // needed for "read-through"
void scrollDown();
@@ -98,7 +96,7 @@ class KNArticleWidget : public QTextBrow
KPopupMenu *urlPopup, *attPopup;
KAction *actSave, *actPrint, *actSelAll, *actCopy;
- KActionCollection actionCollection;
+ KActionCollection *actionCollection;
static bool showSig, fullHdrs, inlineAtt, openAtt, altAsAtt;
static QString hexColors[4];
@@ -106,7 +104,6 @@ class KNArticleWidget : public QTextBrow
static QFont htmlFont;
static browserType browser;
static QList<KNArticleWidget> instances;
-
protected slots:
void slotSave();
Index: knarticlewindow.cpp
===================================================================
RCS file: /home/kde/kdenetwork/knode/knarticlewindow.cpp,v
retrieving revision 1.21
diff -u -3 -p -r1.21 knarticlewindow.cpp
--- knarticlewindow.cpp 2000/09/20 00:04:19 1.21
+++ knarticlewindow.cpp 2000/09/29 01:20:04
@@ -54,12 +54,10 @@ KNArticleWindow::KNArticleWindow(KNArtic
setCaption(art->subject());
//setIcon(UserIcon("posting"));
- artW=new KNArticleWidget(this);
+ artW=new KNArticleWidget(actionCollection(),this);
artW->setData(art, col);
setCentralWidget(artW);
connect(artW, SIGNAL(articleLoaded()), SLOT(slotArticleLoaded()));
-
- *actionCollection() += artW->actions(); // include the actions of the \
article widget
// file menu
KStdAction::close(this, SLOT(slotFileClose()),actionCollection());
Index: knfetcharticle.cpp
===================================================================
RCS file: /home/kde/kdenetwork/knode/knfetcharticle.cpp,v
retrieving revision 1.11
diff -u -3 -p -r1.11 knfetcharticle.cpp
--- knfetcharticle.cpp 2000/09/19 12:53:34 1.11
+++ knfetcharticle.cpp 2000/09/29 01:20:04
@@ -19,7 +19,8 @@
#include "knfetcharticle.h"
-KNFetchArticle::KNFetchArticle() : t_hreaded(true), i_dRef(-1), l_ines(-1), \
thrLevel(0), s_core(50), newFups(0), unrFups(0) \
+KNFetchArticle::KNFetchArticle(KNGroup *grp) + : g_roup(grp), t_hreaded(true), \
i_dRef(-1), l_ines(-1), thrLevel(0), s_core(50), newFups(0), unrFups(0) {
flags.fill(false,8);
}
Index: knfetcharticle.h
===================================================================
RCS file: /home/kde/kdenetwork/knode/knfetcharticle.h,v
retrieving revision 1.6
diff -u -3 -p -r1.6 knfetcharticle.h
--- knfetcharticle.h 2000/08/09 15:50:38 1.6
+++ knfetcharticle.h 2000/09/29 01:20:04
@@ -22,11 +22,13 @@
#include <qbitarray.h>
#include "knarticle.h"
+class KNGroup;
+
class KNFetchArticle : public KNArticle {
public:
- KNFetchArticle();
+ KNFetchArticle(KNGroup *grp);
~KNFetchArticle();
void parse();
@@ -39,6 +41,7 @@ class KNFetchArticle : public KNArticle
void updateListItem();
//get
+ KNGroup* group() { return g_roup; }
articleStatus status() { return AStemp; }
articleType type() { return ATfetch; }
virtual const QCString& messageId() { return m_Id; }
@@ -90,6 +93,7 @@ class KNFetchArticle : public KNArticle
protected:
+ KNGroup *g_roup;
bool t_hreaded;
QCString m_Id, f_rom, e_mail;
int i_dRef, l_ines;
Index: knfetcharticlemanager.cpp
===================================================================
RCS file: /home/kde/kdenetwork/knode/knfetcharticlemanager.cpp,v
retrieving revision 1.28
diff -u -3 -p -r1.28 knfetcharticlemanager.cpp
--- knfetcharticlemanager.cpp 2000/09/17 02:49:18 1.28
+++ knfetcharticlemanager.cpp 2000/09/29 01:20:04
@@ -48,8 +48,8 @@
#include "knglobals.h"
-KNFetchArticleManager::KNFetchArticleManager(KNListView *v, KNFilterManager* \
fiManager, QObject * parent, const char * name)
- : QObject(parent, name), KNArticleManager(v), g_roup(0), c_urrent(0), n_ext(0), \
tOut(3000), sDlg(0) +KNFetchArticleManager::KNFetchArticleManager(KNListView *v, \
KNFilterManager* fiManager, KActionCollection* actColl, QObject * parent, const char \
* name) + : QObject(parent, name), KNArticleManager(v), g_roup(0), c_urrent(0), \
n_ext(0), tOut(3000), sDlg(0), actionCollection(actColl) {
connect(fiManager, SIGNAL(filterChanged(KNArticleFilter*)), this, \
SLOT(slotFilterChanged(KNArticleFilter*))); f_ilter = fiManager->currentFilter();
@@ -61,60 +61,60 @@ KNFetchArticleManager::KNFetchArticleMan
readOptions();
actShowThreads = new KToggleAction(i18n("Show T&hreads"), 0 , this, \
SLOT(slotToggleShowThreads()),
- &actionCollection, "view_showThreads");
+ actionCollection, "view_showThreads");
actShowThreads->setChecked(t_hreaded);
actShowThreads->setEnabled(false);
actExpandAll = new KAction(i18n("&Expand all threads"), 0 , this, \
SLOT(slotThreadsExpand()),
- &actionCollection, "view_ExpandAll");
+ actionCollection, "view_ExpandAll");
actExpandAll->setEnabled(false);
actCollapseAll = new KAction(i18n("&Collapse all threads"), 0 , this, \
SLOT(slotThreadsCollapse()),
- &actionCollection, "view_CollapseAll");
+ actionCollection, "view_CollapseAll");
actCollapseAll->setEnabled(false);
actRefresh = new KAction(i18n("&Refresh List"),"reload", \
KStdAccel::key(KStdAccel::Reload), this, SLOT(slotRefresh()),
- &actionCollection, "view_Refresh");
+ actionCollection, "view_Refresh");
actRefresh->setEnabled(false);
actAllRead = new KAction(i18n("Mark all as &read"), "goto", 0, this, \
SLOT(slotAllRead()),
- &actionCollection, "group_allRead");
+ actionCollection, "group_allRead");
actAllRead->setEnabled(false);
actAllUnread = new KAction(i18n("Mark all as u&nread"), 0, this, \
SLOT(slotAllUnread()),
- &actionCollection, "group_allUnread");
+ actionCollection, "group_allUnread");
actAllUnread->setEnabled(false);
actPostReply = new KAction(i18n("Post &reply"),"message_reply", Key_R , this, \
SLOT(slotReply()),
- &actionCollection, "article_postReply");
+ actionCollection, "article_postReply");
actPostReply->setEnabled(false);
actMailReply = new KAction(i18n("&Mail reply"),"mail_reply", Key_A , this, \
SLOT(slotRemail()),
- &actionCollection, "article_mailReply");
+ actionCollection, "article_mailReply");
actMailReply->setEnabled(false);
actForward = new KAction(i18n("&Forward"),"mail_forward", Key_F , this, \
SLOT(slotForward()),
- &actionCollection, "article_forward");
+ actionCollection, "article_forward");
actForward->setEnabled(false);
actMarkRead = new KAction(i18n("M&ark as read"), Key_D , this, \
SLOT(slotMarkRead()),
- &actionCollection, "article_read");
+ actionCollection, "article_read");
actMarkRead->setEnabled(false);
actMarkUnread = new KAction(i18n("Mar&k as unread"), Key_U , this, \
SLOT(slotMarkUnread()),
- &actionCollection, "article_unread");
+ actionCollection, "article_unread");
actMarkUnread->setEnabled(false);
actThreadRead = new KAction(i18n("Mark thread as r&ead"), CTRL+Key_D , this, \
SLOT(slotThreadRead()),
- &actionCollection, "thread_read");
+ actionCollection, "thread_read");
actThreadRead->setEnabled(false);
actThreadUnread = new KAction(i18n("Mark thread as u&nread"), CTRL+Key_U , this, \
SLOT(slotThreadUnread()),
- &actionCollection, "thread_unread");
+ actionCollection, "thread_unread");
actThreadUnread->setEnabled(false);
actThreadSetScore = new KAction(i18n("Set &Score..."), "rotate", Key_S , this, \
SLOT(slotThreadScore()),
- &actionCollection, "thread_setScore");
+ actionCollection, "thread_setScore");
actThreadSetScore->setEnabled(false);
actThreadWatch = new KAction(i18n("&Watch"), "top", Key_W , this, \
SLOT(slotThreadWatch()),
- &actionCollection, "thread_watch");
+ actionCollection, "thread_watch");
actThreadWatch->setEnabled(false);
actThreadIgnore = new KAction(i18n("&Ignore"), "bottom", Key_I , this, \
SLOT(slotThreadIgnore()),
- &actionCollection, "thread_ignore");
+ actionCollection, "thread_ignore");
actThreadIgnore->setEnabled(false);
actOwnWindow = new KAction(i18n("&Open in own window"), "viewmag+", Key_O , this, \
SLOT(slotOwnWindow()),
- &actionCollection, "article_ownWindow");
+ actionCollection, "article_ownWindow");
actOwnWindow->setEnabled(false);
actSearch = new KAction(i18n("&Search..."),"find" , Key_F4 , this, \
SLOT(slotSearch()),
- &actionCollection, "article_search");
+ actionCollection, "article_search");
actSearch->setEnabled(false);
}
Index: knfetcharticlemanager.h
===================================================================
RCS file: /home/kde/kdenetwork/knode/knfetcharticlemanager.h,v
retrieving revision 1.8
diff -u -3 -p -r1.8 knfetcharticlemanager.h
--- knfetcharticlemanager.h 2000/09/08 01:19:46 1.8
+++ knfetcharticlemanager.h 2000/09/29 01:20:04
@@ -39,11 +39,9 @@ class KNFetchArticleManager : public QOb
Q_OBJECT
public:
- KNFetchArticleManager(KNListView *v, KNFilterManager* fiManager, QObject * \
parent=0, const char * name=0); + KNFetchArticleManager(KNListView *v, \
KNFilterManager* fiManager, KActionCollection* actColl, QObject * parent=0, const \
char * name=0); ~KNFetchArticleManager();
- const KActionCollection& actions() { return actionCollection; }
-
void readOptions();
void saveOptions();
@@ -95,7 +93,7 @@ class KNFetchArticleManager : public QOb
*actMarkRead, *actMarkUnread, *actOwnWindow, *actSearch, \
*actThreadRead,
*actThreadUnread, *actThreadSetScore, *actThreadWatch,*actThreadIgnore;
KToggleAction *actShowThreads;
- KActionCollection actionCollection;
+ KActionCollection *actionCollection;
public slots:
void slotFilterChanged(KNArticleFilter *f);
Index: knfiltermanager.cpp
===================================================================
RCS file: /home/kde/kdenetwork/knode/knfiltermanager.cpp,v
retrieving revision 1.14
diff -u -3 -p -r1.14 knfiltermanager.cpp
--- knfiltermanager.cpp 2000/09/17 00:10:56 1.14
+++ knfiltermanager.cpp 2000/09/29 01:20:04
@@ -128,12 +128,12 @@ void KNFilterSelectAction::slotMenuActiv
-KNFilterManager::KNFilterManager( QObject * parent, const char * name)
- : QObject(parent,name), fset(0), currFilter(0), isAGroup(false)
+KNFilterManager::KNFilterManager(KActionCollection* actColl, QObject * parent, const \
char * name) + : QObject(parent,name), fset(0), currFilter(0), \
actionCollection(actColl), isAGroup(false) {
fList.setAutoDelete(true);
- actFilter = new KNFilterSelectAction(i18n("&Filter"), "filter", 0 , \
&actionCollection, "view_Filter"); + actFilter = new \
KNFilterSelectAction(i18n("&Filter"), "filter", 0 , actionCollection, "view_Filter"); \
connect(actFilter, SIGNAL(activated(int)), this, SLOT(slotMenuActivated(int))); \
actFilter->setEnabled(false);
Index: knfiltermanager.h
===================================================================
RCS file: /home/kde/kdenetwork/knode/knfiltermanager.h,v
retrieving revision 1.12
diff -u -3 -p -r1.12 knfiltermanager.h
--- knfiltermanager.h 2000/09/17 00:10:56 1.12
+++ knfiltermanager.h 2000/09/29 01:20:04
@@ -64,11 +64,9 @@ class KNFilterManager : public QObject
Q_OBJECT
public:
- KNFilterManager(QObject * parent=0, const char * name=0);
+ KNFilterManager(KActionCollection* actColl, QObject * parent=0, const char * \
name=0); ~KNFilterManager();
- const KActionCollection& actions() { return actionCollection; }
-
void readOptions();
void saveOptions();
@@ -98,7 +96,7 @@ class KNFilterManager : public QObject
KNArticleFilter *currFilter;
KNFilterSelectAction *actFilter;
QValueList<int> menuOrder;
- KActionCollection actionCollection;
+ KActionCollection *actionCollection;
bool isAGroup, commitNeeded;
protected slots:
Index: knfoldermanager.cpp
===================================================================
RCS file: /home/kde/kdenetwork/knode/knfoldermanager.cpp,v
retrieving revision 1.11
diff -u -3 -p -r1.11 knfoldermanager.cpp
--- knfoldermanager.cpp 2000/09/20 00:04:19 1.11
+++ knfoldermanager.cpp 2000/09/29 01:20:04
@@ -40,8 +40,8 @@
#include "knfoldermanager.h"
-KNFolderManager::KNFolderManager(KNSavedArticleManager *a, KNListView *v, QObject * \
parent, const char * name)
- : QObject(parent, name), view(v), aManager(a), lastId(3), c_ount(3)
+KNFolderManager::KNFolderManager(KNSavedArticleManager *a, KNListView *v, \
KActionCollection* actColl, QObject * parent, const char * name) + : QObject(parent, \
name), view(v), aManager(a), lastId(3), c_ount(3), actionCollection(actColl) {
fList=new QList<KNFolder>;
fList->setAutoDelete(true);
@@ -50,9 +50,9 @@ KNFolderManager::KNFolderManager(KNSaved
showListItems();
actCompactFolder = new KAction(i18n("&Compact Folder"), "wizard", 0, this, \
SLOT(slotCompactFolder()),
- &actionCollection, "folder_compact");
+ actionCollection, "folder_compact");
actEmptyFolder = new KAction(i18n("&Empty Folder"), 0, this, \
SLOT(slotEmptyFolder()),
- &actionCollection, "folder_empty");
+ actionCollection, "folder_empty");
setCurrentFolder(0);
}
Index: knfoldermanager.h
===================================================================
RCS file: /home/kde/kdenetwork/knode/knfoldermanager.h,v
retrieving revision 1.4
diff -u -3 -p -r1.4 knfoldermanager.h
--- knfoldermanager.h 2000/07/27 19:44:04 1.4
+++ knfoldermanager.h 2000/09/29 01:20:04
@@ -34,11 +34,9 @@ class KNFolderManager : public QObject
public:
enum stFolder { SFdrafts=0, SFoutbox=1, SFsent=2 };
- KNFolderManager(KNSavedArticleManager *a, KNListView *v, QObject * parent=0, \
const char * name=0); + KNFolderManager(KNSavedArticleManager *a, KNListView *v, \
KActionCollection* actColl, QObject * parent=0, const char * name=0); \
~KNFolderManager();
-
- const KActionCollection& actions() { return actionCollection; }
-
+
int count() { return c_ount; }
KNFolder* currentFolder() { return c_urrentFolder; }
bool hasCurrentFolder() { return (c_urrentFolder!=0); }
@@ -67,7 +65,7 @@ class KNFolderManager : public QObject
KNSavedArticleManager *aManager;
int lastId, c_ount;
KAction *actCompactFolder, *actEmptyFolder;
- KActionCollection actionCollection;
+ KActionCollection *actionCollection;
protected slots:
void slotCompactFolder() { compactFolder(); }
Index: kngroup.cpp
===================================================================
RCS file: /home/kde/kdenetwork/knode/kngroup.cpp,v
retrieving revision 1.15
diff -u -3 -p -r1.15 kngroup.cpp
--- kngroup.cpp 2000/09/28 21:42:30 1.15
+++ kngroup.cpp 2000/09/29 01:20:05
@@ -39,7 +39,7 @@
KNGroup::KNGroup(KNCollection *p)
: KNArticleCollection(p), n_ewCount(0), r_eadCount(0),
- l_astNr(0), m_axFetch(0), u_ser(0), l_ocked(false)
+ l_astNr(0), m_axFetch(0), u_ser(0), l_ocked(false), l_oading(0)
{
}
@@ -193,7 +193,7 @@ bool KNGroup::loadHdrs()
}
split.init(buff, "\t");
- art=new KNFetchArticle();
+ art=new KNFetchArticle(this);
split.first();
art->setMessageId(split.string());
@@ -330,7 +330,7 @@ void KNGroup::insortNewHeaders(QStrList
split.init(line, "\t");
//new Header-Object
- art=new KNFetchArticle();
+ art=new KNFetchArticle(this);
art->setNew(true);
//art->setFetchTime(fTimeT);
Index: kngroup.h
===================================================================
RCS file: /home/kde/kdenetwork/knode/kngroup.h,v
retrieving revision 1.6
diff -u -3 -p -r1.6 kngroup.h
--- kngroup.h 2000/07/27 19:44:04 1.6
+++ kngroup.h 2000/09/29 01:20:05
@@ -67,6 +67,7 @@ class KNGroup : public KNArticleCollecti
int statThrWithNew();
int statThrWithUnread();
bool locked() { return l_ocked; }
+ int loading() { return l_oading; }
//set
void setGroupname(const QCString &s) { g_roupname=s; }
@@ -81,6 +82,7 @@ class KNGroup : public KNArticleCollecti
void setMaxFetch(int i) { m_axFetch=i; }
void setUser(KNUserEntry *u) { u_ser=u; }
void setLocked(bool l) { l_ocked=l; }
+ void setLoading(int i) { l_oading=i; }
protected:
void sortHdrs(int cnt);
@@ -90,7 +92,7 @@ class KNGroup : public KNArticleCollecti
QCString g_roupname, d_escription;
KNUserEntry *u_ser;
bool l_ocked;
-
+ int l_oading;
class dynData {
Index: kngroupmanager.cpp
===================================================================
RCS file: /home/kde/kdenetwork/knode/kngroupmanager.cpp,v
retrieving revision 1.25
diff -u -3 -p -r1.25 kngroupmanager.cpp
--- kngroupmanager.cpp 2000/09/20 00:04:19 1.25
+++ kngroupmanager.cpp 2000/09/29 01:20:05
@@ -191,8 +191,8 @@ QSortedList<KNGroupInfo>* KNGroupListDat
//===============================================================================
-KNGroupManager::KNGroupManager(KNFetchArticleManager *a, QObject * parent, const \
char * name)
- : QObject(parent,name), aManager(a)
+KNGroupManager::KNGroupManager(KNFetchArticleManager *a, KActionCollection* actColl, \
QObject * parent, const char * name) + : QObject(parent,name), aManager(a), \
actionCollection(actColl) {
gList=new QList<KNGroup>;
gList->setAutoDelete(true);
@@ -200,15 +200,15 @@ KNGroupManager::KNGroupManager(KNFetchAr
readConfig();
actProperties = new KAction(i18n("&Properties..."), 0, this, \
SLOT(slotProperties()),
- &actionCollection, "group_properties");
+ actionCollection, "group_properties");
actLoadHdrs = new KAction(i18n("&Get New Articles"), "mail_get" , 0, this, \
SLOT(slotLoadHdrs()),
- &actionCollection, "group_dnlHeaders");
+ actionCollection, "group_dnlHeaders");
actExpire = new KAction(i18n("E&xpire Now"), "wizard", 0, this, \
SLOT(slotExpire()),
- &actionCollection, "group_expire");
+ actionCollection, "group_expire");
actResort = new KAction(i18n("Res&ort"), 0, this, SLOT(slotResort()),
- &actionCollection, "group_resort");
+ actionCollection, "group_resort");
actUnsubscribe = new KAction(i18n("&Unsubscribe"), 0, this, \
SLOT(slotUnsubscribe()),
- &actionCollection, "group_unsubscribe");
+ actionCollection, "group_unsubscribe");
setCurrentGroup(0);
}
@@ -334,6 +334,8 @@ void KNGroupManager::expireAll(KNPurgePr
}
for(KNGroup *var=gList->first(); var; var=gList->next()) {
+ if((var->locked()) || (var->loading()>0))
+ continue;
if(dlg) {
dlg->setInfo(var->groupname());
kapp->processEvents();
@@ -415,7 +417,7 @@ void KNGroupManager::unsubscribeGroup(KN
if(!g) g=c_urrentGroup;
if(!g) return;
- if(g->locked()) {
+ if((g->locked()) || (g->loading()>0)) {
KMessageBox::sorry(knGlobals.topWidget, QString(i18n("The group \"%1\" is being \
updated currently.\nIt is not possible to unsubscribe it at the \
moment.")).arg(g->groupname())); return;
}
@@ -472,6 +474,11 @@ void KNGroupManager::expireGroupNow(KNGr
{
if(!g) g=c_urrentGroup;
if(!g) return;
+
+ if((g->locked()) || (g->loading()>0)) {
+ // add error message after 2.0!!!!!!!!!
+ return;
+ }
KNArticleWindow::closeAllWindowsForCollection(g);
Index: kngroupmanager.h
===================================================================
RCS file: /home/kde/kdenetwork/knode/kngroupmanager.h,v
retrieving revision 1.8
diff -u -3 -p -r1.8 kngroupmanager.h
--- kngroupmanager.h 2000/08/03 03:37:30 1.8
+++ kngroupmanager.h 2000/09/29 01:20:05
@@ -82,12 +82,10 @@ class KNGroupManager : public QObject {
Q_OBJECT
public:
- KNGroupManager(KNFetchArticleManager *a, QObject * parent=0, const char * \
name=0); + KNGroupManager(KNFetchArticleManager *a, KActionCollection* actColl, \
QObject * parent=0, const char * name=0); ~KNGroupManager();
-
- const KActionCollection& actions() { return actionCollection; }
-
- void readConfig();
+
+ void readConfig();
void loadGroups(KNNntpAccount *a);
void getSubscribed(KNNntpAccount *a, QStrList* l);
void getGroupsOfAccount(KNNntpAccount *a, QList<KNGroup> *l);
@@ -125,7 +123,7 @@ class KNGroupManager : public QObject {
int defaultMaxFetch;
bool a_utoCheck;
KAction *actProperties, *actLoadHdrs, *actExpire, *actResort, *actUnsubscribe;
- KActionCollection actionCollection;
+ KActionCollection *actionCollection;
protected slots:
void slotProperties() { showGroupProperties(); }
Index: knjobdata.cpp
===================================================================
RCS file: /home/kde/kdenetwork/knode/knjobdata.cpp,v
retrieving revision 1.4
diff -u -3 -p -r1.4 knjobdata.cpp
--- knjobdata.cpp 2000/07/27 19:44:04 1.4
+++ knjobdata.cpp 2000/09/29 01:20:05
@@ -28,8 +28,11 @@ KNJobData::KNJobData(jobType t, KNServer
: t_ype(t), d_ata(d), a_ccount(a), c_anceled(false)
{
if(t_ype==JTfetchNewHeaders) ((KNGroup*)d_ata)->setLocked(true);
- else if(t_ype==JTfetchArticle) ((KNFetchArticle*)d_ata)->setLocked(true);
- else if(t_ype==JTpostArticle || t_ype==JTmail) \
((KNSavedArticle*)d_ata)->setLocked(true); + else if(t_ype==JTfetchArticle) {
+ KNFetchArticle *art =(KNFetchArticle*)d_ata;
+ art->setLocked(true);
+ art->group()->setLoading(art->group()->loading()+1);
+ } else if(t_ype==JTpostArticle || t_ype==JTmail) \
((KNSavedArticle*)d_ata)->setLocked(true); }
@@ -37,6 +40,10 @@ KNJobData::KNJobData(jobType t, KNServer
KNJobData::~KNJobData()
{
if(t_ype==JTfetchNewHeaders) ((KNGroup*)d_ata)->setLocked(false);
- else if(t_ype==JTfetchArticle) ((KNFetchArticle*)d_ata)->setLocked(false);
- else if(t_ype==JTpostArticle || t_ype==JTmail) \
((KNSavedArticle*)d_ata)->setLocked(false); + else if(t_ype==JTfetchArticle) {
+ KNFetchArticle *art =(KNFetchArticle*)d_ata;
+ art->setLocked(false);
+ if (art->group()->loading()>0)
+ art->group()->setLoading(art->group()->loading()-1);
+ } else if(t_ype==JTpostArticle || t_ype==JTmail) \
((KNSavedArticle*)d_ata)->setLocked(false); }
Index: knnetaccess.cpp
===================================================================
RCS file: /home/kde/kdenetwork/knode/knnetaccess.cpp,v
retrieving revision 1.11
diff -u -3 -p -r1.11 knnetaccess.cpp
--- knnetaccess.cpp 2000/09/16 20:47:05 1.11
+++ knnetaccess.cpp 2000/09/29 01:20:05
@@ -35,8 +35,8 @@
#include "knnetaccess.h"
-KNNetAccess::KNNetAccess(QObject *parent, const char *name )
-: QObject(parent,name), currentNntpJob(0L), currentSmtpJob(0L)
+KNNetAccess::KNNetAccess(KActionCollection* actColl, QObject *parent, const char \
*name ) +: QObject(parent,name), currentNntpJob(0L), currentSmtpJob(0L), \
actionCollection(actColl) {
if((pipe(nntpInPipe)==-1)||
(pipe(nntpOutPipe)==-1)||
@@ -78,7 +78,7 @@ KNNetAccess::KNNetAccess(QObject *parent
smtpJobQueue.setAutoDelete(false);
actNetStop = new KAction(i18n("Stop &Network"),"stop",0, this, \
SLOT(slotCancelAllJobs()),
- &actionCollection, "net_stop");
+ actionCollection, "net_stop");
actNetStop->setEnabled(false);
}
Index: knnetaccess.h
===================================================================
RCS file: /home/kde/kdenetwork/knode/knnetaccess.h,v
retrieving revision 1.6
diff -u -3 -p -r1.6 knnetaccess.h
--- knnetaccess.h 2000/09/16 20:47:05 1.6
+++ knnetaccess.h 2000/09/29 01:20:05
@@ -39,11 +39,9 @@ class KNNetAccess : public QObject {
public:
- KNNetAccess(QObject *parent=0, const char *name=0);
+ KNNetAccess(KActionCollection* actColl, QObject *parent=0, const char *name=0);
~KNNetAccess();
-
- const KActionCollection& actions() { return actionCollection; }
-
+
void addJob(KNJobData *job);
void stopJobsNntp(int type); // type==0 => all jobs
void stopJobsSmtp(int type); // type==0 => all jobs
@@ -69,7 +67,7 @@ class KNNetAccess : public QObject {
int nntpInPipe[2], nntpOutPipe[2], smtpInPipe[2], smtpOutPipe[2];
QSocketNotifier *nntpNotifier,*smtpNotifier;
KAction* actNetStop;
- KActionCollection actionCollection;
+ KActionCollection *actionCollection;
protected slots:
void slotThreadSignal(int i);
Index: knode.cpp
===================================================================
RCS file: /home/kde/kdenetwork/knode/knode.cpp,v
retrieving revision 1.47
diff -u -3 -p -r1.47 knode.cpp
--- knode.cpp 2000/09/23 22:11:12 1.47
+++ knode.cpp 2000/09/29 01:20:05
@@ -166,31 +166,31 @@ KNodeApp::KNodeApp()
initStatusBar();
//init Net
- NAcc=new KNNetAccess();
+ NAcc=new KNNetAccess(actionCollection());
knGlobals.netAccess = NAcc;
//init filter manager
- FiManager=new KNFilterManager();
+ FiManager=new KNFilterManager(actionCollection());
knGlobals.fiManager = FiManager;
//init Fetch-Article Manager
- FAManager=new KNFetchArticleManager(view->hdrView, FiManager);
+ FAManager=new KNFetchArticleManager(view->hdrView, FiManager, actionCollection());
knGlobals.fArtManager = FAManager;
//init Group Manager
- GManager=new KNGroupManager(FAManager);
+ GManager=new KNGroupManager(FAManager, actionCollection());
knGlobals.gManager = GManager;
//init Account Manager
- AManager=new KNAccountManager(GManager, view->collectionView);
+ AManager=new KNAccountManager(GManager, view->collectionView, actionCollection());
knGlobals.accManager = AManager;
//init Saved-Article Manager
- SAManager=new KNSavedArticleManager(view->hdrView, AManager);
+ SAManager=new KNSavedArticleManager(view->hdrView, AManager, actionCollection());
knGlobals.sArtManager = SAManager;
//init Folder Manager
- FoManager=new KNFolderManager(SAManager, view->collectionView);
+ FoManager=new KNFolderManager(SAManager, view->collectionView, \
actionCollection()); knGlobals.foManager = FoManager;
// all components that provide actions are created, now
@@ -373,7 +373,7 @@ void KNodeApp::initView()
{
KNArticleWidget::readOptions();
KNViewHeader::loadAll();
- view = new KNodeView(this,"knodeView");
+ view = new KNodeView(actionCollection(),this,"knodeView");
setCentralWidget(view);
connect(view->collectionView, SIGNAL(clicked(QListViewItem *)),
@@ -439,16 +439,6 @@ void KNodeApp::initActions()
KStdAction::keyBindings(this, SLOT(slotConfKeys()), actionCollection());
KStdAction::configureToolbars(this, SLOT(slotConfToolbar()), actionCollection());
KStdAction::preferences(this, SLOT(slotSettings()), actionCollection());
-
- // add all external actions...
- *actionCollection() += AManager->actions();
- *actionCollection() += FoManager->actions();
- *actionCollection() += GManager->actions();
- *actionCollection() += FAManager->actions();
- *actionCollection() += SAManager->actions();
- *actionCollection() += FiManager->actions();
- *actionCollection() += NAcc->actions();
- *actionCollection() += view->actions();
createGUI("knodeui.rc");
}
Index: knodeview.cpp
===================================================================
RCS file: /home/kde/kdenetwork/knode/knodeview.cpp,v
retrieving revision 1.14
diff -u -3 -p -r1.14 knodeview.cpp
--- knodeview.cpp 2000/09/17 02:49:18 1.14
+++ knodeview.cpp 2000/09/29 01:20:05
@@ -35,8 +35,8 @@
#include "knodeview.h"
-KNodeView::KNodeView(QWidget *parent, const char * name)
- : QSplitter(parent,name), longView(true), notAFolder(true)
+KNodeView::KNodeView(KActionCollection* actColl, QWidget *parent, const char * name)
+ : QSplitter(parent,name), longView(true), actionCollection(actColl), \
notAFolder(true) {
setOpaqueResize(true);
colFocus=new KNFocusWidget(this,"colFocus");
@@ -53,7 +53,7 @@ KNodeView::KNodeView(QWidget *parent, co
secSplitter->setResizeMode(hdrFocus, QSplitter::KeepSize);
artFocus=new KNFocusWidget(secSplitter,"artFocus");
- artView=new KNArticleWidget(artFocus,"artView");
+ artView=new KNArticleWidget(actionCollection, artFocus,"artView");
artFocus->setWidget(artView);
initCollectionView();
@@ -62,7 +62,7 @@ KNodeView::KNodeView(QWidget *parent, co
setTabOrder(hdrView, artView);
setTabOrder(artView, collectionView);
- actSortSelect = new KSelectAction(i18n("&Sort"), 0, &actionCollection, \
"view_Sort"); + actSortSelect = new KSelectAction(i18n("&Sort"), 0, \
actionCollection, "view_Sort"); connect(actSortSelect, SIGNAL(activated(int)), this, \
SLOT(slotSortMenuSelect(int))); connect(hdrView, SIGNAL(sortingChanged(int)), this, \
SLOT(slotSortHdrSelect(int))); QStringList items;
@@ -73,24 +73,22 @@ KNodeView::KNodeView(QWidget *parent, co
actSortSelect->setItems(items);
actNextArt = new KAction(i18n("&Next article"), "next", Key_N , this, \
SLOT(slotNextArticle()),
- &actionCollection, "go_nextArticle");
+ actionCollection, "go_nextArticle");
actPrevArt = new KAction(i18n("&Previous article"), "previous", Key_B , this, \
SLOT(slotPrevArticle()),
- &actionCollection, "go_prevArticle");
+ actionCollection, "go_prevArticle");
actNextUnreadArt = new KAction(i18n("Next unread &article"), "1rightarrow", \
ALT+Key_Space , this, SLOT(slotNextUnreadArticle()),
- &actionCollection, "go_nextUnreadArticle");
+ actionCollection, "go_nextUnreadArticle");
actReadThrough = new KAction(i18n("Read &through articles"), Key_Space , this, \
SLOT(slotReadThrough()),
- &actionCollection, "go_readThrough");
+ actionCollection, "go_readThrough");
actNextUnreadThread = new KAction(i18n("Next unread &thread"),"2rightarrow", \
CTRL+Key_Space , this, SLOT(slotNextUnreadThread()),
- &actionCollection, "go_nextUnreadThread");
+ actionCollection, "go_nextUnreadThread");
actNextGroup = new KAction(i18n("Ne&xt group"), "down", Key_Plus , this, \
SLOT(slotNextGroup()),
- &actionCollection, "go_nextGroup");
+ actionCollection, "go_nextGroup");
actPrevGroup = new KAction(i18n("Pre&vious group"), "up", Key_Minus , this, \
SLOT(slotPrevGroup()),
- &actionCollection, "go_prevGroup");
+ actionCollection, "go_prevGroup");
actToggleThread = new KAction(i18n("&Toggle Subthread"), Key_T, this, \
SLOT(slotToggleThread()),
- &actionCollection, "thread_toggle");
+ actionCollection, "thread_toggle");
actToggleThread->setEnabled(false);
-
- actionCollection += artView->actions();
readOptions();
Index: knodeview.h
===================================================================
RCS file: /home/kde/kdenetwork/knode/knodeview.h,v
retrieving revision 1.9
diff -u -3 -p -r1.9 knodeview.h
--- knodeview.h 2000/08/13 16:13:23 1.9
+++ knodeview.h 2000/09/29 01:20:05
@@ -36,11 +36,9 @@ class KNodeView : public QSplitter
public:
- KNodeView(QWidget *parent=0,const char * name=0);
+ KNodeView(KActionCollection* actColl, QWidget *parent=0,const char * name=0);
~KNodeView();
-
- const KActionCollection& actions() { return actionCollection; }
-
+
void readOptions();
void saveOptions();
@@ -66,7 +64,7 @@ class KNodeView : public QSplitter
KSelectAction *actSortSelect;
KAction *actNextArt, *actPrevArt, *actNextUnreadArt, *actReadThrough, \
*actNextUnreadThread,
*actNextGroup, *actPrevGroup, *actToggleThread;
- KActionCollection actionCollection;
+ KActionCollection *actionCollection;
bool notAFolder;
protected slots:
Index: knsavedarticlemanager.cpp
===================================================================
RCS file: /home/kde/kdenetwork/knode/knsavedarticlemanager.cpp,v
retrieving revision 1.36
diff -u -3 -p -r1.36 knsavedarticlemanager.cpp
--- knsavedarticlemanager.cpp 2000/09/20 00:04:19 1.36
+++ knsavedarticlemanager.cpp 2000/09/29 01:20:06
@@ -48,8 +48,8 @@
#include "knsavedarticlemanager.h"
-KNSavedArticleManager::KNSavedArticleManager(KNListView *v, KNAccountManager *am, \
QObject * parent, const char * name) :
- QObject(parent,name), KNArticleManager(v), f_older(0), sedlg(0), sDlg(0), accM(am)
+KNSavedArticleManager::KNSavedArticleManager(KNListView *v, KNAccountManager *am, \
KActionCollection* actColl, QObject * parent, const char * name) : + \
QObject(parent,name), KNArticleManager(v), f_older(0), sedlg(0), sDlg(0), accM(am), \
actionCollection(actColl) {
//f_ilter=0;
@@ -58,19 +58,19 @@ KNSavedArticleManager::KNSavedArticleMan
readConfig();
actSendOutbox = new KAction(i18n("Sen&d pending messages"), "mail_send", 0, this, \
SLOT(slotSendOutbox()),
- &actionCollection, "net_sendPending");
+ actionCollection, "net_sendPending");
actSendOutbox->setEnabled(false);
actEdit = new KAction(i18n("edit article","&Edit"), "signature", Key_E , this, \
SLOT(slotEdit()),
- &actionCollection, "article_edit");
+ actionCollection, "article_edit");
actEdit->setEnabled(false);
actDelete = new KAction(i18n("&Delete"), "editdelete", Key_Delete, this, \
SLOT(slotDelete()),
- &actionCollection, "article_delete");
+ actionCollection, "article_delete");
actDelete->setEnabled(false);
actSendNow = new KAction(i18n("Send &now"),"mail_send", 0 , this, \
SLOT(slotSendNow()),
- &actionCollection, "article_sendNow");
+ actionCollection, "article_sendNow");
actSendNow->setEnabled(false);
actSendLater = new KAction(i18n("Send &later"), "queue", 0 , this, \
SLOT(slotSendLater()),
- &actionCollection, "article_sendLater");
+ actionCollection, "article_sendLater");
actSendLater->setEnabled(false);
}
Index: knsavedarticlemanager.h
===================================================================
RCS file: /home/kde/kdenetwork/knode/knsavedarticlemanager.h,v
retrieving revision 1.14
diff -u -3 -p -r1.14 knsavedarticlemanager.h
--- knsavedarticlemanager.h 2000/09/20 00:04:19 1.14
+++ knsavedarticlemanager.h 2000/09/29 01:20:06
@@ -45,11 +45,9 @@ class KNSavedArticleManager : public QOb
Q_OBJECT
public:
- KNSavedArticleManager(KNListView *v, KNAccountManager *am, QObject * parent=0, \
const char * name=0); + KNSavedArticleManager(KNListView *v, KNAccountManager *am, \
KActionCollection* actColl, QObject * parent=0, const char * name=0); \
~KNSavedArticleManager();
-
- const KActionCollection& actions() { return actionCollection; }
-
+
void readConfig();
void setStandardFolders(KNFolder *d, KNFolder *o, KNFolder *s);
void setFolder(KNFolder *f);
@@ -112,7 +110,7 @@ class KNSavedArticleManager : public QOb
KNAccountManager *accM;
QList<KNComposer> *comList;
KAction *actSendOutbox, *actEdit, *actDelete, *actSendNow, *actSendLater;
- KActionCollection actionCollection;
+ KActionCollection *actionCollection;
protected slots:
void slotComposerDone(KNComposer *com);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic