D23730: Add new protocol for 7z archives

N. Higa noreply at phabricator.kde.org
Thu Sep 5 13:19:18 BST 2019


nhiga added a comment.


  Notes:
  
  1. This patch requires D23490 <https://phabricator.kde.org/D23490> and the following KIO patch:
  
    diff --git a/src/filewidgets/kurlnavigator.cpp b/src/filewidgets/kurlnavigator.cpp
    index 80aa975..5a6c720 100644
    --- a/src/filewidgets/kurlnavigator.cpp
    +++ b/src/filewidgets/kurlnavigator.cpp
    @@ -1046,8 +1046,8 @@ void KUrlNavigator::setLocationUrl(const QUrl &newUrl)
         // code locationUrl() and url become the same URLs
         QUrl firstChildUrl = KIO::UrlUtil::firstChildUrl(locationUrl(), url);
     
    -    if ((url.scheme() == QLatin1String("tar")) || (url.scheme() == QLatin1String("zip")) || (url.scheme() == QLatin1String("krarc"))) {
    -        // The URL represents a tar- or zip-file, or an archive file supported by krarc.
    +    if ((url.scheme() == QLatin1String("tar")) || (url.scheme() == QLatin1String("zip")) || (url.scheme() == QLatin1String("sevenz")) || (url.scheme() == QLatin1String("krarc"))) {
    +        // The URL represents a tar-, zip- or 7z-file, or an archive file supported by krarc.
             // Check whether the URL is really part of the archive file, otherwise
             // replace it by the local path again.
             bool insideCompressedPath = d->isCompressedPath(url);
    @@ -1064,7 +1064,7 @@ void KUrlNavigator::setLocationUrl(const QUrl &newUrl)
                 }
             }
             if (!insideCompressedPath) {
    -            // drop the tar: or zip: or krarc: protocol since we are not
    +            // drop the tar:, zip:, sevenz: or krarc: protocol since we are not
                 // inside the compressed path
                 url.setScheme(QStringLiteral("file"));
                 firstChildUrl.setScheme(QStringLiteral("file"));
  
  2. If I name the protocol as "7z", "Invalid protocol" error will be thrown, so I use "sevenz" instead.
  3. I am not sure whether it is needed to include `k7zip.h` in `archive/kio_archivebase.cpp`.
  4. It can take some time to load the 7z archive using this new protocol.

REPOSITORY
  R320 KIO Extras

REVISION DETAIL
  https://phabricator.kde.org/D23730

To: nhiga
Cc: kfm-devel, kde-frameworks-devel, iasensio, fprice, LeGast00n, MrPepe, fbampaloukas, alexde, GB_2, Codezela, feverfew, meven, michaelh, spoorun, navarromorales, firef, ngraham, andrebarros, bruns, emmanuelp, mikesomov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20190905/5c3c853a/attachment.html>


More information about the Kde-frameworks-devel mailing list