Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
PIM
KDE PIM Runtime
Commits
311611c5
Commit
311611c5
authored
Aug 08, 2022
by
Nicolas Fella
Browse files
Port kio_akonadi to WorkerBase
parent
88b0b638
Pipeline
#243028
passed with stage
in 14 minutes and 15 seconds
Changes
7
Pipelines
2
Hide whitespace changes
Inline
Side-by-side
CMakeLists.txt
View file @
311611c5
...
...
@@ -179,7 +179,7 @@ endif()
add_subdirectory
(
resources
)
add_subdirectory
(
agents
)
add_subdirectory
(
defaultsetup
)
add_subdirectory
(
kio
slave
)
add_subdirectory
(
kio
worker
)
add_subdirectory
(
migration
)
add_subdirectory
(
kcms
)
...
...
kio
slave
/CMakeLists.txt
→
kio
worker
/CMakeLists.txt
View file @
311611c5
File moved
kio
slave
/akonadi/CMakeLists.txt
→
kio
worker
/akonadi/CMakeLists.txt
View file @
311611c5
add_library
(
kio_akonadi MODULE akonadi
slave
.cpp akonadi
slave
.h
)
add_library
(
kio_akonadi MODULE akonadi
worker
.cpp akonadi
worker
.h
)
ecm_qt_declare_logging_category
(
kio_akonadi HEADER akonadi
slave
_debug.h IDENTIFIER AKONADI
SLAVE
_LOG CATEGORY_NAME org.kde.pim.akonadi
slave
DESCRIPTION
"kio
slave
(akonadi)"
OLD_CATEGORY_NAMES log_akonadislave
ecm_qt_declare_logging_category
(
kio_akonadi HEADER akonadi
worker
_debug.h IDENTIFIER AKONADI
WORKER
_LOG CATEGORY_NAME org.kde.pim.akonadi
worker
DESCRIPTION
"kio
worker
(akonadi)"
OLD_CATEGORY_NAMES log_akonadislave
org.kde.pim.akonadislave
EXPORT KDEPIMRUNTIME
)
...
...
kio
slave
/akonadi/Messages.sh
→
kio
worker
/akonadi/Messages.sh
View file @
311611c5
File moved
kio
slave
/akonadi/akonadi.json
→
kio
worker
/akonadi/akonadi.json
View file @
311611c5
File moved
kio
slave
/akonadi/akonadi
slave
.cpp
→
kio
worker
/akonadi/akonadi
worker
.cpp
View file @
311611c5
...
...
@@ -4,7 +4,7 @@
SPDX-License-Identifier: LGPL-2.0-or-later
*/
#include
"akonadi
slave
.h"
#include
"akonadi
worker
.h"
#include
<Akonadi/Collection>
#include
<Akonadi/CollectionDeleteJob>
...
...
@@ -14,7 +14,7 @@
#include
<Akonadi/ItemFetchJob>
#include
<Akonadi/ItemFetchScope>
#include
"akonadi
slave
_debug.h"
#include
"akonadi
worker
_debug.h"
#include
<KAboutData>
#include
<KLocalizedString>
...
...
@@ -33,7 +33,7 @@
class
KIOPluginForMetaData
:
public
QObject
{
Q_OBJECT
Q_PLUGIN_METADATA
(
IID
"org.kde.kio.
slave
.akonadi"
FILE
"akonadi.json"
)
Q_PLUGIN_METADATA
(
IID
"org.kde.kio.
worker
.akonadi"
FILE
"akonadi.json"
)
};
extern
"C"
{
...
...
@@ -54,50 +54,49 @@ int kdemain(int argc, char **argv)
parser
.
process
(
app
);
aboutData
.
processCommandLine
(
&
parser
);
Akonadi
Slave
slave
(
parser
.
positionalArguments
().
at
(
1
).
toLocal8Bit
(),
parser
.
positionalArguments
().
at
(
2
).
toLocal8Bit
());
slave
.
dispatchLoop
();
Akonadi
Worker
worker
(
parser
.
positionalArguments
().
at
(
1
).
toLocal8Bit
(),
parser
.
positionalArguments
().
at
(
2
).
toLocal8Bit
());
worker
.
dispatchLoop
();
return
0
;
}
using
namespace
Akonadi
;
Akonadi
Slave
::
Akonadi
Slave
(
const
QByteArray
&
pool_socket
,
const
QByteArray
&
app_socket
)
:
KIO
::
Slave
Base
(
"akonadi"
,
pool_socket
,
app_socket
)
Akonadi
Worker
::
Akonadi
Worker
(
const
QByteArray
&
pool_socket
,
const
QByteArray
&
app_socket
)
:
KIO
::
Worker
Base
(
"akonadi"
,
pool_socket
,
app_socket
)
{
qCDebug
(
AKONADI
SLAVE
_LOG
)
<<
"kio_akonadi starting up"
;
qCDebug
(
AKONADI
WORKER
_LOG
)
<<
"kio_akonadi starting up"
;
}
Akonadi
Slave
::~
Akonadi
Slave
()
Akonadi
Worker
::~
Akonadi
Worker
()
{
qCDebug
(
AKONADI
SLAVE
_LOG
)
<<
"kio_akonadi shutting down"
;
qCDebug
(
AKONADI
WORKER
_LOG
)
<<
"kio_akonadi shutting down"
;
}
void
Akonadi
Slave
::
get
(
const
QUrl
&
url
)
KIO
::
WorkerResult
Akonadi
Worker
::
get
(
const
QUrl
&
url
)
{
const
Item
item
=
Item
::
fromUrl
(
url
);
auto
job
=
new
ItemFetchJob
(
item
);
job
->
fetchScope
().
fetchFullPayload
();
if
(
!
job
->
exec
())
{
error
(
KIO
::
ERR_INTERNAL
,
job
->
errorString
());
return
;
return
KIO
::
WorkerResult
::
fail
(
KIO
::
ERR_INTERNAL
,
job
->
errorString
());
}
if
(
job
->
items
().
count
()
!=
1
)
{
error
(
KIO
::
ERR_DOES_NOT_EXIST
,
i18n
(
"No such item."
));
return
KIO
::
WorkerResult
::
fail
(
KIO
::
ERR_DOES_NOT_EXIST
,
i18n
(
"No such item."
));
}
else
{
const
Item
itemJob
=
job
->
items
().
at
(
0
);
const
QByteArray
tmp
=
itemJob
.
payloadData
();
data
(
tmp
);
data
(
QByteArray
());
finished
();
return
KIO
::
WorkerResult
::
pass
();
}
}
void
Akonadi
Slave
::
stat
(
const
QUrl
&
url
)
KIO
::
WorkerResult
Akonadi
Worker
::
stat
(
const
QUrl
&
url
)
{
qCDebug
(
AKONADI
SLAVE
_LOG
)
<<
url
;
qCDebug
(
AKONADI
WORKER
_LOG
)
<<
url
;
// Stats for a collection
if
(
Collection
::
fromUrl
(
url
).
isValid
())
{
...
...
@@ -107,82 +106,74 @@ void AkonadiSlave::stat(const QUrl &url)
// Check that the collection exists.
auto
job
=
new
CollectionFetchJob
(
collection
,
CollectionFetchJob
::
Base
);
if
(
!
job
->
exec
())
{
error
(
KIO
::
ERR_INTERNAL
,
job
->
errorString
());
return
;
return
KIO
::
WorkerResult
::
fail
(
KIO
::
ERR_INTERNAL
,
job
->
errorString
());
}
if
(
job
->
collections
().
count
()
!=
1
)
{
error
(
KIO
::
ERR_DOES_NOT_EXIST
,
i18n
(
"No such item."
));
return
;
return
KIO
::
WorkerResult
::
fail
(
KIO
::
ERR_DOES_NOT_EXIST
,
i18n
(
"No such item."
));
}
collection
=
job
->
collections
().
at
(
0
);
}
statEntry
(
entryForCollection
(
collection
));
finished
();
return
KIO
::
WorkerResult
::
pass
();
}
// Stats for an item
else
if
(
Item
::
fromUrl
(
url
).
isValid
())
{
auto
job
=
new
ItemFetchJob
(
Item
::
fromUrl
(
url
));
if
(
!
job
->
exec
())
{
error
(
KIO
::
ERR_INTERNAL
,
job
->
errorString
());
return
;
return
KIO
::
WorkerResult
::
fail
(
KIO
::
ERR_INTERNAL
,
job
->
errorString
());
}
if
(
job
->
items
().
count
()
!=
1
)
{
error
(
KIO
::
ERR_DOES_NOT_EXIST
,
i18n
(
"No such item."
));
return
;
return
KIO
::
WorkerResult
::
fail
(
KIO
::
ERR_DOES_NOT_EXIST
,
i18n
(
"No such item."
));
}
const
Item
item
=
job
->
items
().
at
(
0
);
statEntry
(
entryForItem
(
item
));
finished
();
return
KIO
::
WorkerResult
::
pass
();
}
return
KIO
::
WorkerResult
::
fail
(
KIO
::
ERR_DOES_NOT_EXIST
,
url
.
toString
());
}
void
Akonadi
Slave
::
del
(
const
QUrl
&
url
,
bool
isFile
)
KIO
::
WorkerResult
Akonadi
Worker
::
del
(
const
QUrl
&
url
,
bool
isFile
)
{
qCDebug
(
AKONADI
SLAVE
_LOG
)
<<
url
;
qCDebug
(
AKONADI
WORKER
_LOG
)
<<
url
;
if
(
!
isFile
)
{
// It's a directory
Collection
collection
=
Collection
::
fromUrl
(
url
);
auto
job
=
new
CollectionDeleteJob
(
collection
);
if
(
!
job
->
exec
())
{
error
(
KIO
::
ERR_INTERNAL
,
job
->
errorString
());
return
;
return
KIO
::
WorkerResult
::
fail
(
KIO
::
ERR_INTERNAL
,
job
->
errorString
());
}
finished
();
return
KIO
::
WorkerResult
::
pass
();
}
else
{
// It's a file
auto
job
=
new
ItemDeleteJob
(
Item
::
fromUrl
(
url
));
if
(
!
job
->
exec
())
{
error
(
KIO
::
ERR_INTERNAL
,
job
->
errorString
());
return
;
return
KIO
::
WorkerResult
::
fail
(
KIO
::
ERR_INTERNAL
,
job
->
errorString
());
}
finished
();
return
KIO
::
WorkerResult
::
pass
();
}
}
void
Akonadi
Slave
::
listDir
(
const
QUrl
&
url
)
KIO
::
WorkerResult
Akonadi
Worker
::
listDir
(
const
QUrl
&
url
)
{
qCDebug
(
AKONADI
SLAVE
_LOG
)
<<
url
;
qCDebug
(
AKONADI
WORKER
_LOG
)
<<
url
;
if
(
!
Collection
::
fromUrl
(
url
).
isValid
())
{
error
(
KIO
::
ERR_DOES_NOT_EXIST
,
i18n
(
"No such collection."
));
return
;
return
KIO
::
WorkerResult
::
fail
(
KIO
::
ERR_DOES_NOT_EXIST
,
i18n
(
"No such collection."
));
}
// Fetching collections
Collection
collection
=
Collection
::
fromUrl
(
url
);
if
(
!
collection
.
isValid
())
{
error
(
KIO
::
ERR_DOES_NOT_EXIST
,
i18n
(
"No such collection."
));
return
;
return
KIO
::
WorkerResult
::
fail
(
KIO
::
ERR_DOES_NOT_EXIST
,
i18n
(
"No such collection."
));
}
auto
job
=
new
CollectionFetchJob
(
collection
,
CollectionFetchJob
::
FirstLevel
);
if
(
!
job
->
exec
())
{
error
(
KIO
::
ERR_CANNOT_ENTER_DIRECTORY
,
job
->
errorString
());
return
;
return
KIO
::
WorkerResult
::
fail
(
KIO
::
ERR_CANNOT_ENTER_DIRECTORY
,
job
->
errorString
());
}
const
Collection
::
List
collections
=
job
->
collections
();
...
...
@@ -194,8 +185,7 @@ void AkonadiSlave::listDir(const QUrl &url)
if
(
collection
!=
Collection
::
root
())
{
auto
fjob
=
new
ItemFetchJob
(
collection
);
if
(
!
fjob
->
exec
())
{
error
(
KIO
::
ERR_INTERNAL
,
job
->
errorString
());
return
;
return
KIO
::
WorkerResult
::
fail
(
KIO
::
ERR_INTERNAL
,
job
->
errorString
());
}
const
Item
::
List
items
=
fjob
->
items
();
totalSize
(
collections
.
count
()
+
items
.
count
());
...
...
@@ -204,10 +194,10 @@ void AkonadiSlave::listDir(const QUrl &url)
}
}
finished
();
return
KIO
::
WorkerResult
::
pass
();
}
KIO
::
UDSEntry
Akonadi
Slave
::
entryForItem
(
const
Akonadi
::
Item
&
item
)
KIO
::
UDSEntry
Akonadi
Worker
::
entryForItem
(
const
Akonadi
::
Item
&
item
)
{
KIO
::
UDSEntry
entry
;
entry
.
reserve
(
7
);
...
...
@@ -221,7 +211,7 @@ KIO::UDSEntry AkonadiSlave::entryForItem(const Akonadi::Item &item)
return
entry
;
}
KIO
::
UDSEntry
Akonadi
Slave
::
entryForCollection
(
const
Akonadi
::
Collection
&
collection
)
KIO
::
UDSEntry
Akonadi
Worker
::
entryForCollection
(
const
Akonadi
::
Collection
&
collection
)
{
KIO
::
UDSEntry
entry
;
entry
.
reserve
(
7
);
...
...
@@ -241,4 +231,4 @@ KIO::UDSEntry AkonadiSlave::entryForCollection(const Akonadi::Collection &collec
return
entry
;
}
#include
"akonadi
slave
.moc"
#include
"akonadi
worker
.moc"
kio
slave
/akonadi/akonadi
slave
.h
→
kio
worker
/akonadi/akonadi
worker
.h
View file @
311611c5
...
...
@@ -6,7 +6,7 @@
#pragma once
#include
<KIO/
Slave
Base>
#include
<KIO/
Worker
Base>
namespace
Akonadi
{
...
...
@@ -14,31 +14,31 @@ class Item;
class
Collection
;
}
class
Akonadi
Slave
:
public
KIO
::
Slave
Base
class
Akonadi
Worker
:
public
KIO
::
Worker
Base
{
public:
explicit
Akonadi
Slave
(
const
QByteArray
&
pool_socket
,
const
QByteArray
&
app_socket
);
~
Akonadi
Slave
()
override
;
explicit
Akonadi
Worker
(
const
QByteArray
&
pool_socket
,
const
QByteArray
&
app_socket
);
~
Akonadi
Worker
()
override
;
/**
* Reimplemented from
Slave
Base
* Reimplemented from
Worker
Base
*/
void
get
(
const
QUrl
&
url
)
override
;
KIO
::
WorkerResult
get
(
const
QUrl
&
url
)
override
;
/**
* Reimplemented from
Slave
Base
* Reimplemented from
Worker
Base
*/
void
stat
(
const
QUrl
&
url
)
override
;
KIO
::
WorkerResult
stat
(
const
QUrl
&
url
)
override
;
/**
* Reimplemented from
Slave
Base
* Reimplemented from
Worker
Base
*/
void
listDir
(
const
QUrl
&
url
)
override
;
KIO
::
WorkerResult
listDir
(
const
QUrl
&
url
)
override
;
/**
* Reimplemented from
Slave
Base
* Reimplemented from
Worker
Base
*/
void
del
(
const
QUrl
&
url
,
bool
isFile
)
override
;
KIO
::
WorkerResult
del
(
const
QUrl
&
url
,
bool
isFile
)
override
;
private:
static
KIO
::
UDSEntry
entryForItem
(
const
Akonadi
::
Item
&
item
);
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment