[Differential] [Requested Changes] D4847: KAuth integration in document saving

Dominik Haumann noreply at phabricator.kde.org
Wed Mar 1 21:52:21 UTC 2017


dhaumann requested changes to this revision.
dhaumann added a comment.
This revision now requires changes to proceed.


  This is a good patch.
  
  My main concerns are:
  
  - please use const for variables that do not change anymore
  - please don't use const & for primitive data types (like bool) in function arguments, that does not make sense
  - naming conventions: Instead of TextBufferSecure, the word SecureTextBuffer sounds much more natural. Similarly, the header file can be renamed.
  
  Could you provide an updated revision?
  
  Some general questions
  
  - Does that affect other platforms such as Windows in any way? I.e., does KAuth exist on Windows?
  - The text buffer itself is unit tested pretty well. Is it possible to have a unit test for this? PS: We already have a " bool KTextEditor::EditorPrivate::unitTestMode()" function that we could use to virtually trigger the KAuth case somehow, not sure.

INLINE COMMENTS

> katetextbuffer.cpp:768-769
> +    // prepare parameters for calling helper method
> +    QString textCodec = QString::fromLatin1(m_textCodec->name());
> +    int eolMode = static_cast<int>(endOfLineMode());
> +    QList<QVariant> dataToSave;

const QString textCodec = ...
const int eolMode = ...

Please use const whenever possible for locally defined variables.

> katetextbuffer_secure.cpp:1
> +#include "katetextbuffer_secure.h"
> +#include "katetextline.h"

I would prefer katesecuretextbuffer.h as filename. Intermixing underscrores is rather uncommon in KDE's sources.

> katetextbuffer_secure.cpp:26-31
> +    QString filename = args[QLatin1String("filename")].toString();
> +    QString mimeTypeForFilterDev = args[QLatin1String("mimeTypeForFilterDev")].toString();
> +    QString textCodec = args[QLatin1String("textCodec")].toString();
> +    bool generateByteOrderMark = args[QLatin1String("generateByteOrderMark")].toBool();
> +    int endOfLineMode = args[QLatin1String("endOfLineMode")].toInt();
> +    bool newLineAtEof = args[QLatin1String("newLineAtEof")].toBool();

Please prepend 'const' for all local variables whenever possible.

> katetextbuffer_secure.cpp:34
> +
> +    bool ok = saveInternal(filename, mimeTypeForFilterDev, textCodec, generateByteOrderMark, endOfLineMode, newLineAtEof, dataToSave);
> +

const bool ok = ...

> katetextbuffer_secure.cpp:87
> +    // just dump the lines out ;)
> +    int lineCount = dataToSave.count();
> +    for (int i = 0; i < lineCount; ++i) {

const int lineCount = ...

> katetextbuffer_secure.h:10
> +
> +using namespace KAuth;
> +

Please no using namespace KAuth here, especially since this is a header file.

> katetextbuffer_secure.h:12
> +
> +class TextBufferSecure : public QObject
> +{

Please call it SecureTextBuffer, that feels much more natural than adding the suffix "Secure".

> katetextbuffer_secure.h:18
> +
> +    TextBufferSecure() {};
> +

Pedantic: no semicolon after a closing function brace, i.e.:

  SecureTextBuffer() {}

> katetextbuffer_secure.h:22
> +
> +    bool saveInternal(const QString &filename, const QString &mimeTypeForFilterDev, const QString &textCodec, const bool &generateByteOrderMark,
> +                      const int &endOfLineMode, const bool &newLineAtEof, const QList<QVariant> &dataToSave);

Please never use const references for primitive types. Here:

- const bool & --> bool

REPOSITORY
  R39 KTextEditor

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

EMAIL PREFERENCES
  https://phabricator.kde.org/settings/panel/emailpreferences/

To: martinkostolny, #ktexteditor, dhaumann
Cc: dhaumann, graesslin, davidedmundson, palant, kwrite-devel, #frameworks, head7, cullmann, kfunk, sars
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20170301/18edb615/attachment-0001.html>


More information about the Kde-frameworks-devel mailing list