Kio-onedrive is ready (for basic usage)

kio-onedrive, a project of mine that uses a KIO worker (same as what allows you to put ftp:/ and ssh:/ into Dolphin) to access Microsoft OneDrive, is in a state I believe would be useful for people who use OneDrive. I’ve been using it for a few days now, and it works well.

If you have proposed fixes or suggestions, please either file an issue or MR. It currently can read and write files as well as list folders.

Note I cannot put all the time in the word to this, so it might take a while for me to respond.

8 Likes

Hey! Thanks for putting in the effort. Following this. Will update if I find something missing.

1 Like

Build fails in Fedora 41, Clang 19.1.0

[14/16] Building CXX object src/CMakeFiles/kio_onedrive.dir/OnedriveWorker.cpp.o
FAILED: src/CMakeFiles/kio_onedrive.dir/OnedriveWorker.cpp.o src/CMakeFiles/kio_onedrive.dir/OnedriveWorker.pcm
/usr/bin/clang++ -DKCOREADDONS_LIB -DKPLUGINFACTORY_PLUGIN_CLASS_INTERNAL_NAME=kio_onedrive_factory -DQT_CORE_LIB -DQT_DBUS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_FOREACH -DQT_NO_KEYWORDS -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -DQT_XML_LIB -DTRANSLATION_DOMAIN=\"kio6_onedrive\" -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -Dkio_onedrive_EXPORTS -I/home/REDACTED/src/kio-onedrive/build/src -I/home/REDACTED/src/kio-onedrive/src -I/home/REDACTED/src/kio-onedrive/build/src/kio_onedrive_autogen/include -I/home/REDACTED/src/kio-onedrive -I/home/REDACTED/src/kio-onedrive/build -isystem /usr/include/qt6/QtCore -isystem /usr/include/qt6 -isystem /usr/lib64/qt6/mkspecs/linux-g++ -isystem /usr/include/qt6/QtNetwork -isystem /usr/include/KF6/KIOCore -isystem /usr/include/KF6/KIO -isystem /usr/include/KF6/KCoreAddons -isystem /usr/include/qt6/QtDBus -isystem /usr/include/KF6/KI18n -isystem /usr/include/KAccounts6 -isystem /usr/include/accounts-qt6 -isystem /usr/include/qt6/QtXml -isystem /usr/include/qt6/QtGui -fno-operator-names -fno-exceptions -Wno-gnu-zero-variadic-macro-arguments -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Werror=init-self -Werror=undef -Wvla -Wdate-time -pedantic -Wzero-as-null-pointer-constant -fdiagnostics-color=always -g -std=c++20 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -MD -MT src/CMakeFiles/kio_onedrive.dir/OnedriveWorker.cpp.o -MF src/CMakeFiles/kio_onedrive.dir/OnedriveWorker.cpp.o.d @src/CMakeFiles/kio_onedrive.dir/OnedriveWorker.cpp.o.modmap -o src/CMakeFiles/kio_onedrive.dir/OnedriveWorker.cpp.o -c /home/REDACTED/src/kio-onedrive/src/OnedriveWorker.cpp
/home/REDACTED/src/kio-onedrive/src/OnedriveWorker.cpp:32:8: error: declaration 'Nothing' attached to named module 'OnedriveWorker' can't be attached to other modules
   32 | struct Nothing{};
      |        ^
/home/REDACTED/src/kio-onedrive/src/URLHandler.cpp:23:8: note: also found
   23 | struct Nothing {};
      |        ^
1 error generated.
ninja: build stopped: subcommand failed.

Hello,
Thank you for catching this. The issue should be fixed on ‘master’. Please pull the repository and try to compile again.
And one note: please file future bug reports, compile errors, and any kind of issues you may encounter at the Invent issues page. This makes it easier for me to track what has been fixed and what hasn’t.

Hello and thanks for your effort to make OneDrive integrate into Dolphin that well. I tested it on a current Arch Linux system and it seems to work.

One thing I have stumbled upon is that compilation with Ninja did not work due to missing symbol ONEDRIVE in DriveItem.cpp. I had to manually add #include "onedrivedebug.h" to make it compile.

1 Like

Hi! I don’t know much about build systems, but if that’s something you’ve identfied that could be incorporated and improved for all users, submitting an issue or merge request to the Invent issues page linked above would be perfect to help ensure it’s in place in the project going forward :slight_smile:

1 Like

You are right. However, it seems like this was already fixed few hours after my post so there was no need for an additional issue on the invent page. :slight_smile:

Bravo! Awesome work, this is magnificent.