Review Request 129324: VCSCommitDiffPatchSource point changes : set width to 72 characters and use deleteLater()
René J.V. Bertin
rjvbertin at gmail.com
Fri Nov 4 16:57:57 UTC 2016
> On Nov. 4, 2016, 1:40 a.m., Aleix Pol Gonzalez wrote:
> > vcs/widgets/vcsdiffpatchsources.cpp, line 59
> > <https://git.reviewboard.kde.org/r/129324/diff/1/?file=483956#file483956line59>
> >
> > Shouldn't it be the preferred width?
>
> René J.V. Bertin wrote:
> Exactly how does that change the likelihood that the widget really gets to be 72 characters wide?
>
> I'd think that this kind of extremely simple approach only works when the width is set reliably. Otherwise we'd need some additional indicator if we want to provide a line-width reference. (And that might quickly require more effort than justified?)
>
> Aleix Pol Gonzalez wrote:
> Here it's explained: http://doc.qt.io/qt-4.8/qwidget.html#size-hints-and-size-policies
>
> I wouldn't want the window to get stuck, it's especially annoying when the window doesn't fit the screen, I can see it happening if the user has a relatively big font. But, maybe it's best that we test and act if it's problematic.
>
> René J.V. Bertin wrote:
> Sorry, it was around 2am when I replied, so I only thought but forgot to add something like "in practice, beyond what the docs say". Is the 4.8 documentation better in this aspect, btw?
>
> I'll see if the parent widget width information is available (reliable) at this point so we can check the target widget against that.
>
> FWIW, I tried using `contentMargins()` and a 72-character string to get the desired width, but apparently there are other margins I don't know how to obtain which make we need a 74 character string to get 72 visible characters. Doesn't really inspire a lot of trust in precise layout'ing with high-level methods ;)
>
> How hard would it be to add something like a red line inside the commit message editor, at the 73rd column? That way we could use the preferred size and be done with it. I'm pretty sure I've seen such a feature in a KDE app but cannot remember at all where.
>
> Aleix Pol Gonzalez wrote:
> > How hard would it be to add something like a red line inside the commit message editor, at the 73rd column? That way we could use the preferred size and be done with it. I'm pretty sure I've seen such a feature in a KDE app but cannot remember at all where.
>
> We already have this: http://i.imgur.com/nyDOcrU.png
>
> René J.V. Bertin wrote:
> Ah! I never noticed that, in fact I haven't been able to duplicate what you're showing in the linked image. Seems spell-checking perturbs the feature, and I'm not getting the tooltip either.
> Come to think of it, I've always wondered what kind of glitches caused the spellchecker to flag correctly spelled words and in changing colours.
>
> What I was thinking of is a vertical red line at the 72nd or 73rd column, spanning the full visual height. I suppose the existing QTextFormat method could also be used to change the text colour (for `!warning`), but then the problem is to find a colour that keeps the text readable for all background colours, right?
>
> René J.V. Bertin wrote:
> Too fast again:
>
> it seems that if I want to try the preferred size approach I'll have to subclass KTextEdit to give it a custom `sizeHint()` (or `minimumSizeHint()`) method, is that correct?
>
> Aleix Pol Gonzalez wrote:
> I was thinking that maybe it would make sense to have a full-fledged kate view there and get all the features at once. It definitely supports having a vertical line and all of the highlighting.
>
> René J.V. Bertin wrote:
> Is that just a matter of replacing `KTextEdit` with however a kate view is called internally, or something "a little" more complicated than that?
>
> You're not wrong, but in the end the editor serves to compose a "shortish" commit message which won't have any formatting other than line length and potentially a few empty lines at the appropriate place. After all nothing stands in the way of opening a new temp. document to compose a more elaborate message (and that view should rarely be too small and require resizing). True, you won't get a 72-character (or 65) width limit, but there's a line and column counter right where you'd expect it.
>
> If you do want to open a dedicated Kate-based view: is it possible to split the Overview window horizontally, and use the bottom portion as an *additional* commit message editor (and take the message from there if the standard editor is empty)? If so that feature could be put under a button.
In the meantime I've implemented a preferred minimum size from what I understand of the size policy. If I resize my main window to something very small, starting a (git) commit action increases the window size. I've never tried this kind of thing before, so maybe it's simply due to the overal widget width (the widget with the list of modified files is not created in `vcsdiffpatchsources.cpp`). In any case I don't see the window can be enlarged because the widget incidates it can be made narrower than the indicated minimum size.
- René J.V.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/129324/#review100548
-----------------------------------------------------------
On Nov. 3, 2016, 6:32 p.m., René J.V. Bertin wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/129324/
> -----------------------------------------------------------
>
> (Updated Nov. 3, 2016, 6:32 p.m.)
>
>
> Review request for KDE Software on Mac OS X and KDevelop.
>
>
> Repository: kdevplatform
>
>
> Description
> -------
>
> This patch proposes 2 point changes to `VCSCommitDiffPatchSource`. They're unrelated but both so small and limited to a single file that I hope you won't mind I put them in a single RR.
>
> In order of appearance:
>
> 1- KDE insists on a 72 character limit for commit messages, and that is probably a very reasonable standard. In the current implementation there is no easy way to judge how far from that threshold we are. The easiest way to do this is by setting the commit message editor to a width of 72 characters (which for some reason requires taking the width of a string of 74 characters). I think there is room enough for this, but a more complete implementation would probably introduce a resize handle between the 2 main widgets. I haven't yet tried to look into that.
>
> 2- The commit message has been a very likely source of the crashes I've seen in the past (on Mac) when closing patch reviews, and which have been addressed by using `QObject::deleteLater()` for select widgets. That change was somehow never submitted for the commit message editor.
>
>
> Diffs
> -----
>
> vcs/widgets/vcsdiffpatchsources.cpp 42cf1d8
>
> Diff: https://git.reviewboard.kde.org/r/129324/diff/
>
>
> Testing
> -------
>
> On OS X with 2 different fixed font typefaces (sizes). The deleteLater() change has been in use since about 4.7.1 .
>
>
> File Attachments
> ----------------
>
> preview: 72-char wide commit message editor
> https://git.reviewboard.kde.org/media/uploaded/files/2016/11/03/2ffdd73a-db19-4bf2-9545-7a850a4b7fd1__Screen_Shot_2016-11-03_at_18.24.54.png
>
>
> Thanks,
>
> René J.V. Bertin
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20161104/a146aceb/attachment-0001.html>
More information about the KDevelop-devel
mailing list