[kde-doc-english] [kdepimlibs] kioslave: Remove kioslave mbox
Montel Laurent
montel at kde.org
Sat Apr 2 17:25:22 UTC 2016
Git commit ccfcefbdd8dad8e43f722174db604e326a57e1dc by Montel Laurent.
Committed on 02/04/2016 at 17:25.
Pushed by mlaurent into branch 'master'.
Remove kioslave mbox
M +0 -1 kioslave/docs/CMakeLists.txt
D +0 -3 kioslave/docs/mbox/CMakeLists.txt
D +0 -28 kioslave/docs/mbox/index.docbook
M +0 -1 kioslave/src/CMakeLists.txt
D +0 -1 kioslave/src/mbox/AUTHORS
D +0 -24 kioslave/src/mbox/CMakeLists.txt
D +0 -1 kioslave/src/mbox/Mainpage.dox
D +0 -2 kioslave/src/mbox/Messages.sh
D +0 -7 kioslave/src/mbox/README
D +0 -158 kioslave/src/mbox/mbox.cpp
D +0 -79 kioslave/src/mbox/mbox.h
D +0 -14 kioslave/src/mbox/mbox.protocol
D +0 -43 kioslave/src/mbox/mboxfile.cpp
D +0 -74 kioslave/src/mbox/mboxfile.h
D +0 -207 kioslave/src/mbox/readmbox.cpp
D +0 -135 kioslave/src/mbox/readmbox.h
D +0 -95 kioslave/src/mbox/stat.cpp
D +0 -66 kioslave/src/mbox/stat.h
D +0 -135 kioslave/src/mbox/urlinfo.cpp
D +0 -93 kioslave/src/mbox/urlinfo.h
http://commits.kde.org/kdepimlibs/ccfcefbdd8dad8e43f722174db604e326a57e1dc
diff --git a/kioslave/docs/CMakeLists.txt b/kioslave/docs/CMakeLists.txt
index 61a43d4..87b341a 100644
--- a/kioslave/docs/CMakeLists.txt
+++ b/kioslave/docs/CMakeLists.txt
@@ -3,5 +3,4 @@ add_subdirectory(ldap)
add_subdirectory(nntp)
add_subdirectory(pop3)
add_subdirectory(smtp)
-add_subdirectory(mbox)
add_subdirectory(sieve)
diff --git a/kioslave/docs/mbox/CMakeLists.txt b/kioslave/docs/mbox/CMakeLists.txt
deleted file mode 100644
index 4285df8..0000000
--- a/kioslave/docs/mbox/CMakeLists.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-########### install files ###############
-kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${KDE_INSTALL_DOCBUNDLEDIR}/en SUBDIR kioslave5/mbox)
-
diff --git a/kioslave/docs/mbox/index.docbook b/kioslave/docs/mbox/index.docbook
deleted file mode 100644
index 3b0647f..0000000
--- a/kioslave/docs/mbox/index.docbook
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN"
-"dtd/kdedbx45.dtd" [
-<!ENTITY % addindex "IGNORE">
-<!ENTITY % English "INCLUDE" > <!-- change language only here -->
-]>
-
-<article lang="&language;" id="mbox">
-<title>mbox</title>
-<articleinfo>
-
-<authorgroup>
-<author><personname><firstname>Bertjan</firstname><surname>Broeksema</surname></personname>
-<email>broeksema at kde.org</email></author>
-<!-- TRANS:ROLES_OF_TRANSLATORS -->
-</authorgroup>
-
-<date>2009-11-05</date>
-
-
-</articleinfo>
-
-<para>The mbox file format is an simple but rather inefficient way to store email
-messages. All messages are appended after each other in the same file
-separated by a special separator line. This gets especially expensive when
-you have many emails in the same file.</para>
-
-</article>
diff --git a/kioslave/src/CMakeLists.txt b/kioslave/src/CMakeLists.txt
index 70a4695..de3ea2c 100644
--- a/kioslave/src/CMakeLists.txt
+++ b/kioslave/src/CMakeLists.txt
@@ -1,7 +1,6 @@
#remove it
remove_definitions(-DQT_NO_CAST_FROM_BYTEARRAY)
add_subdirectory(ldap)
-add_subdirectory(mbox)
add_subdirectory(nntp)
add_subdirectory(sieve)
add_subdirectory(smtp)
diff --git a/kioslave/src/mbox/AUTHORS b/kioslave/src/mbox/AUTHORS
deleted file mode 100644
index 333010f..0000000
--- a/kioslave/src/mbox/AUTHORS
+++ /dev/null
@@ -1 +0,0 @@
-Mart Kelder <mart.kde at hccnet.nl>
diff --git a/kioslave/src/mbox/CMakeLists.txt b/kioslave/src/mbox/CMakeLists.txt
deleted file mode 100644
index dff1884..0000000
--- a/kioslave/src/mbox/CMakeLists.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-
-########### next target ###############
-
-set(kio_mbox_PART_SRCS
- mbox.cpp
- mboxfile.cpp
- readmbox.cpp
- stat.cpp
- urlinfo.cpp )
-
-
-add_library(kio_mbox MODULE ${kio_mbox_PART_SRCS})
-
-target_link_libraries(kio_mbox KF5::KIOCore KF5::I18n)
-set_target_properties(kio_mbox PROPERTIES OUTPUT_NAME "mbox")
-
-install(TARGETS kio_mbox DESTINATION ${KDE_INSTALL_PLUGINDIR}/kf5/kio/)
-
-
-########### install files ###############
-
-install( FILES mbox.protocol DESTINATION ${KDE_INSTALL_KSERVICES5DIR})
-
-
diff --git a/kioslave/src/mbox/Mainpage.dox b/kioslave/src/mbox/Mainpage.dox
deleted file mode 100644
index 57b7f27..0000000
--- a/kioslave/src/mbox/Mainpage.dox
+++ /dev/null
@@ -1 +0,0 @@
-// DOXYGEN_REFERENCES = kdecore kdeui kio
diff --git a/kioslave/src/mbox/Messages.sh b/kioslave/src/mbox/Messages.sh
deleted file mode 100755
index 3f6d40a..0000000
--- a/kioslave/src/mbox/Messages.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#! /bin/sh
-$XGETTEXT *.cpp -o $podir/kio_mbox.pot
diff --git a/kioslave/src/mbox/README b/kioslave/src/mbox/README
deleted file mode 100644
index f044166..0000000
--- a/kioslave/src/mbox/README
+++ /dev/null
@@ -1,7 +0,0 @@
-This is a simple kioslave for accessing mbox-files with kio.
-
-At the moment, it doesn't support locking or writing, it is just reading and listing messages.
-
-Usage:
- mbox:/path/to/mbox/file For listing the files in a mbox-file
- mbox:/path/to/mbox/file/id For getting an id out of a mbox-file.
diff --git a/kioslave/src/mbox/mbox.cpp b/kioslave/src/mbox/mbox.cpp
deleted file mode 100644
index a64ce8a..0000000
--- a/kioslave/src/mbox/mbox.cpp
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * This is a simple kioslave to handle mbox-files.
- * Copyright (C) 2004 Mart Kelder (mart.kde at hccnet.nl)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-#include "mbox.h"
-
-#include "readmbox.h"
-#include "stat.h"
-#include "urlinfo.h"
-
-#include <QString>
-
-#include <qdebug.h>
-#include <KLocalizedString>
-#include <QCoreApplication>
-
-#include <kio/global.h>
-#include <QUrl>
-
-#include <stdlib.h>
-
-extern "C" {
- Q_DECL_EXPORT int kdemain(int argc, char *argv[]);
-}
-
-int kdemain(int argc, char *argv[])
-{
- QCoreApplication app(argc, argv);
- app.setApplicationName(QStringLiteral("kio_mbox"));
-
- if (argc != 4) {
- fprintf(stderr, "Usage: kio_mbox protocol "
- "domain-socket1 domain-socket2\n");
- exit(-1);
- }
-
- MBoxProtocol slave(argv[2], argv[3]);
- slave.dispatchLoop();
-
- return 0;
-}
-
-MBoxProtocol::MBoxProtocol(const QByteArray &arg1, const QByteArray &arg2)
- : KIO::SlaveBase("mbox2", arg1, arg2)
- , m_errorState(true)
-{
-}
-
-MBoxProtocol::~MBoxProtocol()
-{
-}
-
-void MBoxProtocol::get(const QUrl &url)
-{
- m_errorState = false;
-
- UrlInfo info(url, UrlInfo::message);
- QString line;
- QByteArray ba_line;
-
- if (info.type() == UrlInfo::invalid && !m_errorState) {
- error(KIO::ERR_DOES_NOT_EXIST, info.url());
- return;
- }
-
- ReadMBox mbox(&info, this);
-
- while (!mbox.atEnd() && !m_errorState) {
- line = mbox.currentLine();
- line += QLatin1Char('\n');
- ba_line = QByteArray(line.toUtf8());
- ba_line.truncate(ba_line.size() - 1); //Removing training '\0'
- data(ba_line);
- mbox.nextLine();
- };
-
- if (!m_errorState) {
- data(QByteArray());
- finished();
- }
-}
-
-void MBoxProtocol::listDir(const QUrl &url)
-{
- m_errorState = false;
-
- KIO::UDSEntry entry;
- UrlInfo info(url, UrlInfo::directory);
- ReadMBox mbox(&info, this, hasMetaData(QStringLiteral("onlynew")), hasMetaData(QStringLiteral("savetime")));
-
- if (m_errorState) {
- return;
- }
-
- if (info.type() != UrlInfo::directory) {
- error(KIO::ERR_DOES_NOT_EXIST, info.url());
- return;
- }
-
- while (!mbox.atEnd() && !m_errorState) {
- entry = Stat::stat(mbox, info);
- if (mbox.inListing()) {
- listEntry(entry);
- }
- }
-
- finished();
-}
-
-void MBoxProtocol::stat(const QUrl &url)
-{
- UrlInfo info(url);
- if (info.type() == UrlInfo::invalid) {
- error(KIO::ERR_DOES_NOT_EXIST, url.path());
- return;
- } else {
- statEntry(Stat::stat(info));
- }
- finished();
-}
-
-void MBoxProtocol::mimetype(const QUrl &url)
-{
- m_errorState = false;
-
- UrlInfo info(url);
-
- if (m_errorState) {
- return;
- }
-
- if (info.type() == UrlInfo::invalid) {
- error(KIO::ERR_DOES_NOT_EXIST, i18n("Invalid URL"));
- } else {
- mimeType(info.mimetype());
- }
- finished();
-}
-
-void MBoxProtocol::emitError(int _errno, const QString &arg)
-{
- m_errorState = true;
- error(_errno, arg);
-}
diff --git a/kioslave/src/mbox/mbox.h b/kioslave/src/mbox/mbox.h
deleted file mode 100644
index 48e2bf4..0000000
--- a/kioslave/src/mbox/mbox.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * This is a simple kioslave to handle mbox-files.
- * Copyright (C) 2004 Mart Kelder (mart.kde at hccnet.nl)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-#ifndef MBOX_H
-#define MBOX_H
-
-#include <kio/slavebase.h>
-
-class QByteArray;
-
-/**
- * This class is the main class and implements all function
- * which can be called through the user.
- */
-class MBoxProtocol : public KIO::SlaveBase
-{
-public:
- /**
- * Constructor, for the parameters, See KIO::SlaveBase
- */
- MBoxProtocol(const QByteArray &arg1, const QByteArray &arg2);
- /**
- * Empty destructor
- */
- virtual ~MBoxProtocol();
-
- /**
- * This functions is used when an user or a program wants to
- * get a file from a mbox-file
- * @param url The url which points to the virtual file to get
- */
- void get(const QUrl &url) Q_DECL_OVERRIDE;
-
- /**
- * This functions gives a listing back.
- * @param url The url to the mbox-file.
- */
- void listDir(const QUrl &url) Q_DECL_OVERRIDE;
-
- /**
- * This functions gives general properties about a mbox-file,
- * or mbox-email back.
- */
- void stat(const QUrl &url) Q_DECL_OVERRIDE;
-
- /**
- * This functions determinate the mimetype of a given mbox-file or mbox-email.
- * @param url The url to get the mimetype from
- */
- void mimetype(const QUrl &url) Q_DECL_OVERRIDE;
-
- /**
- * Through this functions, other class which have an instance to this
- * class (classes which are part of kio_mbox) can emit an error with
- * this function
- * @param errno The error number to be thrown
- * @param arg The argument of the error message of the error number.
- */
- void emitError(int _errno, const QString &arg);
-private:
- bool m_errorState;
-};
-
-#endif
diff --git a/kioslave/src/mbox/mbox.protocol b/kioslave/src/mbox/mbox.protocol
deleted file mode 100644
index 30217d9..0000000
--- a/kioslave/src/mbox/mbox.protocol
+++ /dev/null
@@ -1,14 +0,0 @@
-[Protocol]
-exec=kf5/kio/mbox
-protocol=mbox
-input=none
-output=filesystem
-listing=Name,Type,Size
-reading=true
-writing=false
-makedir=false
-deleting=false
-Icon=mail-folder-inbox
-maxInstances=2
-X-DocPath=kioslave5/mbox/index.html
-Class=:local
diff --git a/kioslave/src/mbox/mboxfile.cpp b/kioslave/src/mbox/mboxfile.cpp
deleted file mode 100644
index c4af311..0000000
--- a/kioslave/src/mbox/mboxfile.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * This is a simple kioslave to handle mbox-files.
- * Copyright (C) 2004 Mart Kelder (mart.kde at hccnet.nl)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-#include "mboxfile.h"
-
-#include <assert.h>
-
-MBoxFile::MBoxFile(const UrlInfo *info, MBoxProtocol *parent)
- : m_info(info)
- , m_mbox(parent)
-{
- assert(m_info);
-}
-
-MBoxFile::~MBoxFile()
-{
-}
-
-bool MBoxFile::lock()
-{
- //Not implemented
- return true;
-}
-
-void MBoxFile::unlock()
-{
- //Not implemented
-}
diff --git a/kioslave/src/mbox/mboxfile.h b/kioslave/src/mbox/mboxfile.h
deleted file mode 100644
index 61896dd..0000000
--- a/kioslave/src/mbox/mboxfile.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * This is a simple kioslave to handle mbox-files.
- * Copyright (C) 2004 Mart Kelder (mart.kde at hccnet.nl)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-#ifndef MBOXFILE_H
-#define MBOXFILE_H
-
-#include <qglobal.h>
-
-class MBoxProtocol;
-class UrlInfo;
-
-/**
- * This class can be used to lock files when implemented.
- * It is a base class for all classes that needs locking and/ir
- * an UrlInfo*.
- */
-class MBoxFile
-{
-public:
- /**
- * Constructor
- * @param info The urlinfo which must be used
- * @param parent The MBoxProtocol parent instance, used to throw errors.
- */
- MBoxFile(const UrlInfo *info, MBoxProtocol *parent);
-
- /**
- * Empty destructor
- */
- ~MBoxFile();
-
-protected:
- /**
- * When implemented, this function handles the locking of the file.
- * @return true if the locking was done successfully.
- */
- bool lock();
-
- /**
- * When implemented, this function unlocks the file.
- */
- void unlock();
-
-protected:
- /**
- * This can be used to get information about the file.
- * The file specified here is the file that must be used.
- */
- const UrlInfo *const m_info;
-
- /**
- * A instance of the parent protocol, meant to throw errors if neccesairy.
- */
- MBoxProtocol *const m_mbox;
-private:
- Q_DISABLE_COPY(MBoxFile)
-};
-
-#endif
diff --git a/kioslave/src/mbox/readmbox.cpp b/kioslave/src/mbox/readmbox.cpp
deleted file mode 100644
index 3b9f7a9..0000000
--- a/kioslave/src/mbox/readmbox.cpp
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
- * This is a simple kioslave to handle mbox-files.
- * Copyright (C) 2004 Mart Kelder (mart.kde at hccnet.nl)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-#include "readmbox.h"
-#include "mbox.h"
-#include "urlinfo.h"
-
-#include <qdebug.h>
-#include <kio/global.h>
-
-#include <QDateTime>
-#include <QFile>
-#include <QFileInfo>
-#include <QString>
-#include <QTextStream>
-
-#include <utime.h>
-
-ReadMBox::ReadMBox(const UrlInfo *info, MBoxProtocol *parent, bool onlynew, bool savetime)
- : MBoxFile(info, parent)
- , m_file(0)
- , m_stream(0)
- , m_atend(true)
- , m_prev_time(0)
- , m_only_new(onlynew)
- , m_savetime(savetime)
- , m_status(false)
- , m_prev_status(false)
- , m_header(true)
-{
- if (m_info->type() == UrlInfo::invalid) {
- m_mbox->emitError(KIO::ERR_DOES_NOT_EXIST, info->url());
- }
-
- if (!open(savetime)) {
- m_mbox->emitError(KIO::ERR_CANNOT_OPEN_FOR_READING, info->url());
- }
-
- if (m_info->type() == UrlInfo::message) {
- if (!searchMessage(m_info->id())) {
- m_mbox->emitError(KIO::ERR_DOES_NOT_EXIST, info->url());
- }
- }
-}
-
-ReadMBox::~ReadMBox()
-{
- close();
-}
-
-QString ReadMBox::currentLine() const
-{
- return m_current_line;
-}
-
-QString ReadMBox::currentID() const
-{
- return m_current_id;
-}
-
-bool ReadMBox::nextLine()
-{
- if (!m_stream) {
- return true;
- }
-
- m_current_line = m_stream->readLine();
- m_atend = m_current_line.isNull();
- if (m_atend) { // Cursor was at EOF
- m_current_id.clear();
- m_prev_status = m_status;
- return true;
- }
-
- //New message
- if (m_current_line.left(5) == QLatin1String("From ")) {
- m_current_id = m_current_line;
- m_prev_status = m_status;
- m_status = true;
- m_header = true;
- return true;
- } else if (m_only_new) {
- if (m_header && m_current_line.left(7) == QLatin1String("Status:") &&
- ! m_current_line.contains(QLatin1String("U")) && ! m_current_line.contains(QLatin1String("N"))) {
- m_status = false;
- }
- }
-
- if (m_current_line.trimmed().isEmpty()) {
- m_header = false;
- }
-
- return false;
-}
-
-bool ReadMBox::searchMessage(const QString &id)
-{
- if (!m_stream) {
- return false;
- }
-
- while (!m_atend && m_current_id != id) {
- nextLine();
- }
-
- return m_current_id == id;
-}
-
-unsigned int ReadMBox::skipMessage()
-{
- unsigned int result = m_current_line.length();
-
- if (!m_stream) {
- return 0;
- }
-
- while (!nextLine()) {
- result += m_current_line.length();
- }
-
- return result;
-}
-
-void ReadMBox::rewind()
-{
- if (!m_stream) {
- return;
- }
-
- m_stream->device()->reset();
- m_atend = m_stream->atEnd();
-}
-
-bool ReadMBox::atEnd() const
-{
- if (!m_stream) {
- return true;
- }
-
- return m_atend || (m_info->type() == UrlInfo::message && m_current_id != m_info->id());
-}
-
-bool ReadMBox::inListing() const
-{
- return !m_only_new || m_prev_status;
-}
-
-bool ReadMBox::open(bool savetime)
-{
- if (savetime) {
- QFileInfo info(m_info->filename());
-
- m_prev_time = new utimbuf;
- m_prev_time->actime = info.lastRead().toTime_t();
- m_prev_time->modtime = info.lastModified().toTime_t();
- }
-
- if (m_file) {
- return false; //File already open
- }
-
- m_file = new QFile(m_info->filename());
- if (!m_file->open(QIODevice::ReadOnly)) {
- delete m_file;
- m_file = 0;
- return false;
- }
- m_stream = new QTextStream(m_file);
- skipMessage();
-
- return true;
-}
-
-void ReadMBox::close()
-{
- if (!m_stream) {
- return;
- }
-
- delete m_stream;
- m_stream = 0;
- m_file->close();
- delete m_file;
- m_file = 0;
-
- if (m_prev_time) {
- const QByteArray ba = QFile::encodeName(m_info->filename());
- utime(ba.constData(), m_prev_time);
- delete m_prev_time;
- m_prev_time = 0;
- }
-}
diff --git a/kioslave/src/mbox/readmbox.h b/kioslave/src/mbox/readmbox.h
deleted file mode 100644
index b6181cf..0000000
--- a/kioslave/src/mbox/readmbox.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * This is a simple kioslave to handle mbox-files.
- * Copyright (C) 2004 Mart Kelder (mart.kde at hccnet.nl)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-#ifndef READMBOX_H
-#define READMBOX_H
-
-#include "mboxfile.h"
-//Added by qt3to4:
-#include <QTextStream>
-
-class UrlInfo;
-class MBox;
-
-class QFile;
-class QString;
-class QTextStream;
-
-struct utimbuf;
-
-/**
- * This class handels reading from a mbox-file.
- */
-class ReadMBox : public MBoxFile
-{
-public:
- /**
- * Constructor
- *
- * @param info The information of the file to read
- * @param parent The instance of the parent MBoxProtocol.
- * @param onlynew Only read new messages from the MBox file.
- * @param savetime If true, the atime of the mbox-file is preserved (note that this touch the ctime).
- */
- ReadMBox(const UrlInfo *info, MBoxProtocol *parent, bool onlynew = false, bool savetime = false);
-
- /**
- * Destructor
- */
- ~ReadMBox();
-
- /**
- * This functions return the current line
- * @return The line last read, or QString() if there wasn't such last line
- */
- QString currentLine() const;
-
- /**
- * This function returns the current id. The id is the first line of an email,
- * and is used in filenaming. The id normally starts with "From ".
- * @return The current ID, or QString() if no id was found yet.
- */
- QString currentID() const;
-
- /**
- * This function reads the next line. The next line can be read by the currentLine()
- * function call.
- *
- * @return true if succesfull, otherwise false.
- */
- bool nextLine();
-
- /**
- * This function search the file for a certain id.
- * If not found, the position is EOF.
- * @param id The id of the message to be found.
- * @return true if the message was found, false otherwise.
- */
- bool searchMessage(const QString &id);
-
- /**
- * Skips all lines which belongs to the current message. The cursor is on the first line
- * of a new message message at the end of this function, or at EOF if the cursor was already
- * on the last message.
- * @return The number of bytes read while skipping the message.
- */
- unsigned int skipMessage();
-
- /**
- * Sets the cursor back to the beginning of the file
- */
- void rewind();
-
- /**
- * Returns true if the cursor is at EOF.
- * @return true if and only if the cursor is at EOF.
- */
- bool atEnd() const;
-
- /**
- * Return true if the message is a new message, or all messages are listed
- * @return true if it must be listed
- */
- bool inListing() const;
-private:
- /**
- * Opens a file
- * @return true Returns true if opening was successful.
- */
- bool open(bool savetime);
-
- /**
- * Closes a file.
- */
- void close();
-
-private:
- Q_DISABLE_COPY(ReadMBox)
- QFile *m_file;
- QTextStream *m_stream;
- QString m_current_line;
- QString m_current_id;
- bool m_atend;
-
- struct utimbuf *m_prev_time;
-
- bool m_only_new, m_savetime;
-
- bool m_status, m_prev_status, m_header;
-};
-#endif
diff --git a/kioslave/src/mbox/stat.cpp b/kioslave/src/mbox/stat.cpp
deleted file mode 100644
index 78b4b7f..0000000
--- a/kioslave/src/mbox/stat.cpp
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * This is a simple kioslave to handle mbox-files.
- * Copyright (C) 2004 Mart Kelder (mart.kde at hccnet.nl)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-#include "stat.h"
-
-#include "readmbox.h"
-#include "urlinfo.h"
-
-#include <qdebug.h>
-#include <kio/global.h>
-
-#include <sys/stat.h>
-
-KIO::UDSEntry Stat::stat(const UrlInfo &info)
-{
- if (info.type() == UrlInfo::message) {
- return Stat::statMessage(info);
- } else if (info.type() == UrlInfo::directory) {
- return Stat::statDirectory(info);
- } else {
- return KIO::UDSEntry();
- }
-}
-
-KIO::UDSEntry Stat::stat(ReadMBox &mbox, const UrlInfo &info)
-{
- qDebug() << "Stat::stat()";
- KIO::UDSEntry entry;
- QString url;
-
- if (info.type() == UrlInfo::invalid) {
- return entry;
- } else if (info.type() == UrlInfo::message) {
- mbox.searchMessage(info.id());
- }
-
- entry.insert(KIO::UDSEntry::UDS_FILE_TYPE, S_IFREG);
- entry.insert(KIO::UDSEntry::UDS_MIME_TYPE, QStringLiteral("message/rfc822"));
-
- url = QStringLiteral("mbox:%1/%2").arg(info.filename(), mbox.currentID());
- entry.insert(KIO::UDSEntry::UDS_URL, url);
- if (mbox.currentID().isEmpty()) {
- entry.insert(KIO::UDSEntry::UDS_NAME, QLatin1String(""));
- } else {
- entry.insert(KIO::UDSEntry::UDS_NAME, mbox.currentID());
- }
-
- entry.insert(KIO::UDSEntry::UDS_SIZE, mbox.skipMessage());
-
- return entry;
-}
-
-KIO::UDSEntry Stat::statDirectory(const UrlInfo &info)
-{
- qDebug() << "statDirectory()";
- KIO::UDSEntry entry;
-
- //Specific things for a directory
- entry.insert(KIO::UDSEntry::UDS_FILE_TYPE, S_IFDIR);
- entry.insert(KIO::UDSEntry::UDS_NAME, info.filename());
-
- return entry;
-}
-
-KIO::UDSEntry Stat::statMessage(const UrlInfo &info)
-{
- qDebug() << "statMessage(" << info.url() << " )";
- KIO::UDSEntry entry;
- QString url = QStringLiteral("mbox:%1").arg(info.url());
-
- //Specific things for a message
- entry.insert(KIO::UDSEntry::UDS_FILE_TYPE, S_IFREG);
- entry.insert(KIO::UDSEntry::UDS_MIME_TYPE, QStringLiteral("message/rfc822"));
-
- entry.insert(KIO::UDSEntry::UDS_URL, url);
- url = url.right(url.length() - url.lastIndexOf(QLatin1Char('/')) - 1);
- entry.insert(KIO::UDSEntry::UDS_NAME, url);
-
- return entry;
-}
diff --git a/kioslave/src/mbox/stat.h b/kioslave/src/mbox/stat.h
deleted file mode 100644
index 3265054..0000000
--- a/kioslave/src/mbox/stat.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * This is a simple kioslave to handle mbox-files.
- * Copyright (C) 2004 Mart Kelder (mart.kde at hccnet.nl)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-#ifndef STAT_H
-#define STAT_H
-
-#include <kio/global.h>
-#include <kio/udsentry.h>
-
-class ReadMBox;
-class UrlInfo;
-
-/**
- * This class is used to get the stats of a mbox-email or mbox-file.
- * This class only uses static members.
- */
-class Stat
-{
-public:
- /**
- * This functions gives information with a given UrlInfo.
- * @param info The file information
- * @return The information of the file as destribed in UrlInfo.
- */
- static KIO::UDSEntry stat(const UrlInfo &info);
- /**
- * This function gives information with a given ReadMBox and UrlInfo.
- * Through this, it is possible to ask the stats of the next message,
- * without reopening the mbox-file.
- * @param mbox The ReadMBox instance, used to search the mbox-email in.
- * @param info The url information.
- * @return The requesteds information.
- */
- static KIO::UDSEntry stat(ReadMBox &mbox, const UrlInfo &info);
-
- /**
- * This function gets the stats of a given mbox-file in an UDSEntry.
- * @param info The location of the mbox-file.
- * @return A list of Atoms.
- */
- static KIO::UDSEntry statDirectory(const UrlInfo &info);
-
- /**
- * This function gets the stats of a geven mbox-message in a UDSEntry.
- * @param info The url of the mbox-message.
- * @return Information shipped in an UDSEntry.
- */
- static KIO::UDSEntry statMessage(const UrlInfo &info);
-};
-
-#endif
diff --git a/kioslave/src/mbox/urlinfo.cpp b/kioslave/src/mbox/urlinfo.cpp
deleted file mode 100644
index 5e9cbb6..0000000
--- a/kioslave/src/mbox/urlinfo.cpp
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * This is a simple kioslave to handle mbox-files.
- * Copyright (C) 2004 Mart Kelder (mart.kde at hccnet.nl)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-#include "urlinfo.h"
-
-#include <qdebug.h>
-#include <qurl.h>
-
-#include <QFileInfo>
-#include <QString>
-
-UrlInfo::UrlInfo(const QUrl &url, const UrlType type)
- : m_type(invalid)
- , m_filename(new QString)
- , m_id(new QString)
-{
- calculateInfo(url, type);
-}
-
-UrlInfo::~UrlInfo()
-{
- delete m_filename;
- delete m_id;
-}
-
-QString UrlInfo::mimetype() const
-{
- switch (m_type) {
- case message:
- return QStringLiteral("message/rfc822");
- case directory:
- return QStringLiteral("inode/directory");
- case invalid:
- default:
- return QStringLiteral("invalid");
- }
-}
-
-QString UrlInfo::filename() const
-{
- return *m_filename;
-}
-
-QString UrlInfo::id() const
-{
- return *m_id;
-}
-
-QString UrlInfo::url() const
-{
- return *m_filename + QLatin1Char('/') + *m_id;
-}
-
-void UrlInfo::calculateInfo(const QUrl &url, const UrlType type)
-{
- bool found = false;
-
- if (!found && type & UrlInfo::message) {
- found = isMessage(url);
- }
- if (!found && type & UrlInfo::directory) {
- found = isDirectory(url);
- }
- if (!found) {
- m_type = invalid;
- *m_filename = QLatin1String("");
- *m_id = QLatin1String("");
- }
-}
-
-bool UrlInfo::isDirectory(const QUrl &url)
-{
- //Check is url is in the form mbox://{filename}
- QString filename = url.path();
- QFileInfo info;
-
- //Remove ending /
- while (filename.length() > 1 && filename.right(1) == QLatin1String("/")) {
- filename.remove(filename.length() - 2, 1);
- }
-
- //Is this a directory?
- info.setFile(filename);
- if (!info.isFile()) {
- return false;
- }
-
- //Setting parameters
- *m_filename = filename;
- (*m_id).clear();
- m_type = directory;
- qDebug() << "urlInfo::isDirectory(" << url << " )";
- return true;
-}
-
-bool UrlInfo::isMessage(const QUrl &url)
-{
- QString path = url.path();
- QFileInfo info;
- int cutindex = path.lastIndexOf(QLatin1Char('/'));
-
- //Does it contain at least one /?
- if (cutindex < 0) {
- return false;
- }
-
- //Does the mbox-file exists?
- info.setFile(path.left(cutindex));
- if (!info.isFile()) {
- return false;
- }
-
- //Settings parameters
- qDebug() << "urlInfo::isMessage(" << url << " )";
- m_type = message;
- *m_id = path.right(path.length() - cutindex - 1);
- *m_filename = path.left(cutindex);
-
- return true;
-}
diff --git a/kioslave/src/mbox/urlinfo.h b/kioslave/src/mbox/urlinfo.h
deleted file mode 100644
index 78787b0..0000000
--- a/kioslave/src/mbox/urlinfo.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * This is a simple kioslave to handle mbox-files.
- * Copyright (C) 2004 Mart Kelder (mart.kde at hccnet.nl)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-#ifndef URLINFO_H
-#define URLINFO_H
-
-#include <qglobal.h>
-
-class QUrl;
-class QString;
-
-class UrlInfo
-{
-public:
- /**
- * This enum is used to determe the url type.
- */
- enum UrlType {
- invalid = 0,
- message = 1,
- directory = 2
- };
-
- /**
- * Constructor
- *
- * @param url The url: this url is used to split the location data off.
- * @param type The possible types of the url
- */
- explicit UrlInfo(const QUrl &url, const UrlType type = (UrlType)(message | directory));
-
- /**
- * Destructor
- */
- ~UrlInfo();
-
- /**
- * Returns the type of the url
- * @return the type of the url
- */
- UrlType type() const
- {
- return m_type;
- }
-
- /**
- * @return the mimetype of the url
- */
- QString mimetype() const;
-
- /**
- * @return The location of the mbox-file
- */
- QString filename() const;
- /**
- * @return The id given in the url.
- */
- QString id() const;
-
- /**
- * @return the while url as QString
- */
- QString url() const;
-
-private:
- void calculateInfo(const QUrl &url, const UrlType type);
-
- bool isDirectory(const QUrl &url);
- bool isMessage(const QUrl &url);
-
-private:
- Q_DISABLE_COPY(UrlInfo)
- UrlType m_type;
- QString *m_filename;
- QString *m_id;
-};
-
-#endif
More information about the kde-doc-english
mailing list