Source Code (Use browser search to find items of interest.)

Class Index

kmail'KMAcctLocal (./kdenetwork/kmail/kmacctlocal.h:11)

class KMAcctLocal: public KMAccount
{
protected:
  friend class KMAcctMgr;

  KMAcctLocal(KMAcctMgr* owner, const char* accountName);

public:
  virtual ~KMAcctLocal();
  virtual void init(void);

  /** Access to location of local mail file (usually something like
   "/var/spool/mail/joe"). */
  const QString& location(void) const { return mLocation; }
  virtual void setLocation(const QString&);

  virtual const char* type(void) const;
  virtual void processNewMail(bool);
  virtual void readConfig(KConfig&);
  virtual void writeConfig(KConfig&);

protected:
  QString mLocation;
  bool hasNewMail;
};

kmail'KMAcctLocal::KMAcctLocal() (./kdenetwork/kmail/kmacctlocal.cpp:34)

KMAcctLocal::KMAcctLocal(KMAcctMgr* aOwner, const char* aAccountName):
  KMAcctLocalInherited(aOwner, aAccountName)
{
  initMetaObject();
}


//-----------------------------------------------------------------------------

kmail'KMAcctLocal::~KMAcctLocal() (./kdenetwork/kmail/kmacctlocal.cpp:42)

KMAcctLocal::~KMAcctLocal()
{
  mLocation = "";
}


//-----------------------------------------------------------------------------

kmail'KMAcctLocal::type() (./kdenetwork/kmail/kmacctlocal.cpp:49)

const char* KMAcctLocal::type(void) const
{
  return "local";
}


//-----------------------------------------------------------------------------

kmail'KMAcctLocal::init() (./kdenetwork/kmail/kmacctlocal.cpp:56)

void KMAcctLocal::init(void)
{
  mLocation = _PATH_MAILDIR;
  
  mLocation += "/";
  mLocation += getenv("USER");
}


//-----------------------------------------------------------------------------

kmail'KMAcctLocal::processNewMail() (./kdenetwork/kmail/kmacctlocal.cpp:66)

void KMAcctLocal::processNewMail(bool)
{
  QTime t; 
  KMFolder mailFolder(NULL, location());
  long num = 0;
  long i;
  int rc;
  KMMessage* msg;
  bool addedOk;

  hasNewMail = false;
  if (mFolder==NULL) {
    emit finishedCheck(hasNewMail);
    return;
  }

  KMBroadcastStatus::instance()->reset();
  KMBroadcastStatus::instance()->setStatusMsg( 
                     i18n( "Preparing transmission..." ));

  kapp->processEvents();
  mailFolder.setAutoCreateIndex(FALSE);

  rc = mailFolder.open();
  if (rc)
  {
    QString aStr;
    aStr = i18n("Cannot open file:");
    aStr += mailFolder.path()+"/"+mailFolder.name();
    KMessageBox::sorry(0, aStr);
    perror("cannot open file "+mailFolder.path()+"/"+mailFolder.name());
    emit finishedCheck(hasNewMail); 
    return;
  }

  mFolder->quiet(TRUE);
  mFolder->open();
		       

  num = mailFolder.count();

  addedOk = true;
  t.start(); 

  KMBroadcastStatus::instance()->setStatusProgressEnable( true );
  for (i=0; i<num; i++)
  {

    if (!addedOk) break;
    if (KMBroadcastStatus::instance()->abortRequested()) break;

    KMBroadcastStatus::instance()->setStatusMsg( i18n("Message ") +
			                QString("%1/%2").arg(i).arg(num) );
    KMBroadcastStatus::instance()->setStatusProgressPercent( (i*100) / num );

    msg = mailFolder.take(0);
    if (msg)
    {
      msg->setStatus(msg->headerField("Status"), msg->headerField("X-Status"));
      addedOk = processNewMsg(msg);
      if (addedOk)
	hasNewMail = true;
    }

    if (t.elapsed() >= 200) { //hardwired constant
      kapp->processEvents();
      t.start();
    }
    
  }
  KMBroadcastStatus::instance()->setStatusProgressEnable( false );
  KMBroadcastStatus::instance()->reset();

  if (addedOk)
  {
  rc = mailFolder.expunge();
  if (rc)
    KMessageBox::information( 0, i18n("Cannot remove mail from\nmailbox `%1':\n%2").arg(mailFolder.location().arg(strerror(rc))));
  KMBroadcastStatus::instance()->setStatusMsg( 
		     i18n( "Transmission completed..." ));
  }
  // else warning is written already

  mailFolder.close();
  mFolder->close();
  mFolder->quiet(FALSE);

  emit finishedCheck(hasNewMail);
 
  return;
}


//-----------------------------------------------------------------------------

kmail'KMAcctLocal::readConfig() (./kdenetwork/kmail/kmacctlocal.cpp:160)

void KMAcctLocal::readConfig(KConfig& config)
{
  QString defaultPath(_PATH_MAILDIR);
  defaultPath += "/";
  defaultPath += getenv("USER");

  KMAcctLocalInherited::readConfig(config);
  mLocation = config.readEntry("Location", defaultPath);
}


//-----------------------------------------------------------------------------

kmail'KMAcctLocal::writeConfig() (./kdenetwork/kmail/kmacctlocal.cpp:172)

void KMAcctLocal::writeConfig(KConfig& config)
{
  KMAcctLocalInherited::writeConfig(config);

  config.writeEntry("Location", mLocation);
}


//-----------------------------------------------------------------------------

kmail'KMAcctLocal::setLocation() (./kdenetwork/kmail/kmacctlocal.cpp:181)

void KMAcctLocal::setLocation(const QString& aLocation)
{
  mLocation = aLocation;
}