You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdepim/korn/dcopdrop.h

191 lines
5.1 KiB

/*
* Copyright (C) 2004, Mart Kelder (mart.kde@hccnet.nl)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef DCOPDROP_H
#define DCOPDROP_H
#include "maildrop.h"
#include <dcopobject.h>
class DCOPDropInterface;
//class KDropCfgDialog;
class KornMailId;
class KornMailSubject;
class KConfigBase;
template<class A, class B> class QMap;
class QString;
/**
* This class implements a KMailDrop for DCOP-objects.
* This class handles all new messages which are comming in through DCOP.
*/
class DCOPDrop : public KMailDrop
{ Q_OBJECT
public:
/**
* Constructor: no parameters
*/
DCOPDrop();
/**
* Destructor
*/
virtual ~DCOPDrop();
/**
* A DCOPDrop cannot produce error messages, so it always returns true.
*
* @return true is the box is valid
*/
virtual bool valid() { return true; }
/**
* This forces the drop to recheck. It is inpossible to recheck dcop,
* so this function does nothing.
*/
virtual void recheck();
/**
* This function starts the monitor, however, this drop is always running,
* and doesn't need to be started.
* The return value is always true.
*
* @return true
*/
virtual bool startMonitor();
/**
* This function starts the monitor, however, this drop is always running,
* and doesn't need to be started.
* The return value is always true.
*
* @return true
*/
virtual bool stopMonitor();
/**
* Return true is the monitor has been started before.
* @return true is it is 'running'.
*/
virtual bool running() { return _isRunning; }
//virtual void addConfigPage( KDropCfgDialog* ) ;
/**
* This function gives a new instance of a DCOPDrop.
*
* @return A new instance of a DCOPDrop.
*/
virtual KMailDrop* clone() const { return new DCOPDrop; }
/**
* This function reeds the config which are shipped which the group.
*
* @param config The configuration group which contains the info for this account.
* @return The same value as KMailDrop::readConfigGroup( config ) returns.
*/
virtual bool readConfigGroup( const KConfigGroup& config );
/**
* This function also reeds the configurion, but from a mapping.
*
* @param map The mapping containing the configuration.
* @param protocol The protocol which comes with the mapping.
*
* @return true is all information is retrieved succesfully.
*/
virtual bool readConfigGroup( const QMap< QString, QString > & map, const Protocol * protocol );
/**
* This function writes the information to a config group.
*
* @param config The configuration to write true
* @return true if no error occured.
*/
virtual bool writeConfigGroup( KConfigBase& config ) const;
/**
* This returns the type of the box, in this case allways "dcop".
*
* @return "dcop"
*/
virtual QString type() const;
/**
* This function should return true if it uses a synchrone comminucation.
* It doens't, so it returns false.
*
* @return false
*/
virtual bool synchrone() const { return false; }
/**
* Return true if it is possible to read the subjects of new email.
*
* @return true
*/
virtual bool canReadSubjects() { return true; }
/**
* This function does reads the subjects.
* @param stop A variable which isn't used: only used for synchrone actions
* @return A QValueVector which KornMailSubject* instance for every new mail.
*/
virtual QValueVector< KornMailSubject >* doReadSubjects( bool *stop );
/**
* This function should return true if it is possible to delete emails.
* This is possible, so it always return true.
*
* @return true
*/
virtual bool canDeleteMails() { return true; }
/**
* This function deletes the email.
*
* @param ids The id's of the email which must be deleted.
* @param stop Not used: only for synchrone opererations.
* @return true if deleting was succesfull
*/
virtual bool deleteMails( QPtrList<const KornMailId> * ids, bool * stop );
/**
* This function returns true if it is possible to read emails.
* The emails are only given at once as a whole, so reading is impossible.
*
* @return false
*/
virtual bool canReadMail() { return false; }
private:
bool _isRunning;
QMap< int, KornMailSubject* > *_msgList;
QString *_name;
int _counter;
DCOPDropInterface *_interface;
void eraseList( void );
private slots:
void doReadSubjectsASync( void );
public: //accessed by DCOPDropInterface
int addMessage( const QString& subject, const QString& message );
bool removeMessage( int id );
//accessed by DCOPDropCfg
QString DCOPName() const;
void setDCOPName( const QString& );
};
#endif