D14757: Warn user before copy/move operation if available space is not enough

Nathaniel Graham noreply at phabricator.kde.org
Sat Sep 15 16:20:02 BST 2018


ngraham added a comment.


  We don't actually need to create a messagebox because it's up to the caller to display the error in an appropriate manner. For example, Dolphin shows errors inline rather than with dialog boxes. So we shouldn't create a messagebox at all.
  
  Let's see if we can figure out what to do:
  
  Elsewhere in `src/core/copyjob.cpp`, in `CopyJobPrivate::copyNextFile()`, we already check for the size of each individual file:
  
    if (m_freeSpace < (*it).size) {
        q->setError(ERR_DISK_FULL);
        q->emitResult();
        return;
    }
  
  This works, but results in a half-finished copy, as it dies once it encounters the first file that doesn't fit. In `CopyJobPrivate::statCurrentSrc()`, the comment `//TODO warn user beforehand if space is not enough` gives us a clue for what to do: just add the same logic there, but check the total size of all copied files rather than the size of each individual file. So you would add the following:
  
    if (m_totalSize > m_freeSpace) {
        q->setError(ERR_DISK_FULL);
        q->emitResult();
        return;
    }
  
  For bonus points, set the error text to something appropriate for each error. For example, something like this would work for the "whole transfer is too big" case:
  
    q->setErrorText(
            xi18n("There will not be enough free space available at <filename>%1</filename> to hold the file (%2 are required but only %3 are available",
                m_globalDest.toLocalFile(),
                KIO::convertSize(m_totalSize),
                KIO::convertSize(m_freeSpace) ) );

INLINE COMMENTS

> copyjob.cpp:887
>          qCDebug(KIO_COPYJOB_DEBUG)<<"Stating finished. To copy:"<<m_totalSize<<", available:"<<m_freeSpace;
>          //TODO warn user beforehand if space is not enough
> +        if (m_totalSize > m_freeSpace) {

You can remove this comment now. :)

REPOSITORY
  R241 KIO

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

To: shubham, pino, dfaure, broulik
Cc: ngraham, dfaure, pino, kde-frameworks-devel, michaelh, bruns
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20180915/40134b96/attachment.html>


More information about the Kde-frameworks-devel mailing list