ahmadsamir (Ahmad Samir)
User

Projects

User does not belong to any projects.

Today

  • Clear sailing ahead.

Tomorrow

  • Clear sailing ahead.

Friday

  • Clear sailing ahead.

User Details

User Since
Nov 19 2017, 8:08 PM (91 w, 2 d)
Availability
Available

Recent Activity

Fri, Aug 9

ahmadsamir added a comment to D23035: Simplify ctors with default member initializer.

@gawin: hello; how are you creating the diff? if you haven't used arc diff, that could be one reason why the commit authorship is messed up.

Fri, Aug 9, 7:46 PM · Kate

Sat, Aug 3

ahmadsamir added a comment to D22477: With auto completion don't show completions that don't match from beginning of typed word.

Ping.

Sat, Aug 3, 7:16 PM · Frameworks, Kate

Jul 17 2019

ahmadsamir added a comment to D22500: Make keyword completion model return HideListIfAutomaticInvocation by default.

FWIW, the combined effect of this patch and D22477, hopefully you'll no longer see the Q_RETRUN_ARG and co. completions unless the menu is manually invoked with the mode set to C++.

Jul 17 2019, 6:32 PM · Frameworks, Kate
ahmadsamir updated the diff for D22500: Make keyword completion model return HideListIfAutomaticInvocation by default.

Fix test plan :/

Jul 17 2019, 6:22 PM · Frameworks, Kate
ahmadsamir added a comment to D22500: Make keyword completion model return HideListIfAutomaticInvocation by default.

I messed up the test plan; try with the mode set to Python. It looks like a corner case where if there's only one exact match, the completions menu doesn't get auto hidden.

Jul 17 2019, 6:20 PM · Frameworks, Kate

Jul 16 2019

ahmadsamir added a comment to D22477: With auto completion don't show completions that don't match from beginning of typed word.

I'm not sure if this solves the right problem.

Where I notice this issue a lot is when typing "return". The keyword completion suggests "return", and when I want a newline, I complete the "return" first. This doesn't affect C++ (because of the trailing ";"), but it does affect other languages.

I think this is pretty much the same issue. Maybe it should be solved by hiding the completion window if it was not explicitly invoked if there is any entry matching what you currently typed?

Then typing Foo would not have the completion window open at all in the described case (thus solving your problem, as well as mine), and if you still wanted to complete BarFoo, you would press Ctrl+Space.

Jul 16 2019, 10:28 PM · Frameworks, Kate
ahmadsamir updated the diff for D22477: With auto completion don't show completions that don't match from beginning of typed word.

Take 2

Jul 16 2019, 10:26 PM · Frameworks, Kate
ahmadsamir updated the diff for D22477: With auto completion don't show completions that don't match from beginning of typed word.

Verbatim

Jul 16 2019, 10:25 PM · Frameworks, Kate
ahmadsamir requested review of D22500: Make keyword completion model return HideListIfAutomaticInvocation by default.
Jul 16 2019, 10:24 PM · Frameworks, Kate
ahmadsamir updated the diff for D22477: With auto completion don't show completions that don't match from beginning of typed word.

Change the diff altogether to not show the menu with "ContainsMatch"

Jul 16 2019, 10:11 PM · Frameworks, Kate
ahmadsamir added a comment to D22477: With auto completion don't show completions that don't match from beginning of typed word.

Default is false, so does not change behaviour unless someone toggles the switch, right?

I would rename the option to WordCompletionMatchFromWordStartOnly though, as from what I can tell completion often only does from start, and matching also in the word is an extra feature. Edit: as in, reading WordCompletionMatchFromWordStartin the code triggered with me "yes, what else? MatchFromEnd?"

Noted. Thought I most likely didn't add "only" because the config name was becoming rather too long, but you have a point.

Actually, perhaps that whole option could/should be even an enum for 3 cases:
a) from full word start
b) from subword start (CamelCase, _)
c) match anywhere in word.
I vaguely remember some cases where I got annoyed by cross-subword hits accidentally creating a match.

Jul 16 2019, 9:23 AM · Frameworks, Kate

Jul 15 2019

ahmadsamir requested review of D22477: With auto completion don't show completions that don't match from beginning of typed word.
Jul 15 2019, 4:46 PM · Frameworks, Kate

Jul 13 2019

ahmadsamir added a comment to R40:65931bea1277: cleanup code, ensure always one windows exists after session loading.

newMainWindow can't return nullptr.

Jul 13 2019, 5:03 PM
ahmadsamir added a comment to D21876: When loading a session always load the "open recent" list.

If windowsCount is 0, you never will be in the first iteration.

The other code doesn't use the same max value for the loop and the check.

Jul 13 2019, 4:53 PM · Kate
ahmadsamir added inline comments to R40:65931bea1277: cleanup code, ensure always one windows exists after session loading.
Jul 13 2019, 4:40 PM
ahmadsamir added a comment to D21876: When loading a session always load the "open recent" list.

Hi,

looks nearly ok, but in this loop:

for (int i = 0; i < windowsCount ; ++i) {
          // if there are no main windows, create one to call loadOpenRecent()
          if(i == windowsCount) {
              KateMainWindow *w = KateApp::self()->newMainWindow();
              if (w !=nullptr) {
                  w->loadOpenRecent(cfg);
              }
          } else {
              KateApp::self()->mainWindow(i)->loadOpenRecent(cfg);
          }
      }

How shall there the if(i == windowsCount) {
part be ever feasible?

Jul 13 2019, 4:33 PM · Kate

Jul 9 2019

ahmadsamir updated the diff for D21876: When loading a session always load the "open recent" list.
  • Make readProperties() call loadOpenRecent()
  • If there are any kate main windows, loop over them
Jul 9 2019, 4:53 PM · Kate

Jul 8 2019

ahmadsamir added a comment to D22276: Add an action to insert a non-indented newline.

If this is OK, please commit it too.

Jul 8 2019, 8:21 PM · Frameworks, Kate
ahmadsamir updated the diff for D22276: Add an action to insert a non-indented newline.

Fix action name, don't use camel case, use _
Fix comment indentation :)

Jul 8 2019, 8:20 PM · Frameworks, Kate
ahmadsamir added a comment to D21876: When loading a session always load the "open recent" list.

Hmm, the constructor actually already does:

m_fileOpenRecent->loadEntries(KConfigGroup(sconfig, "Recent Files"));

Jul 8 2019, 8:14 PM · Kate
ahmadsamir added a comment to D21876: When loading a session always load the "open recent" list.

First: I think the save/loadOpenRecent makes sense.
But I would call them in both read and saveProperties. Then one doesn't need to touch the code paths for "restore with window config" at all.

Of course.

Jul 8 2019, 6:58 PM · Kate
ahmadsamir updated the diff for D22276: Add an action to insert a non-indented newline.

Use an Enum instead of bool

Jul 8 2019, 6:08 PM · Frameworks, Kate
ahmadsamir added a comment to D22315: Add setting to enable/disable text drag-and-drop (on by default).

IMHO, "Enable/Disable" is already implied by the checkbox :)

Jul 8 2019, 5:10 PM · Frameworks, Kate
ahmadsamir updated the diff for D21876: When loading a session always load the "open recent" list.

Reworked diff.

Jul 8 2019, 1:01 PM · Kate

Jul 5 2019

ahmadsamir added inline comments to D22276: Add an action to insert a non-indented newline.
Jul 5 2019, 9:41 PM · Frameworks, Kate

Jul 4 2019

ahmadsamir added a comment to D21876: When loading a session always load the "open recent" list.

OK, fair point.

Jul 4 2019, 9:28 PM · Kate
This is a test notification, sent at Thu, Jul 4, 23:27.
Jul 4 2019, 9:27 PM
This is a test notification, sent at Thu, Jul 4, 23:27.
Jul 4 2019, 9:27 PM
This is a test notification, sent at Thu, Jul 4, 23:27.
Jul 4 2019, 9:27 PM
ahmadsamir added a comment to D21876: When loading a session always load the "open recent" list.

Hmm, I don't understand your proposed fix, sorry.

Jul 4 2019, 9:21 PM · Kate
ahmadsamir added a comment to D22276: Add an action to insert a non-indented newline.

Ctrl+Enter/Return may be a too common shortcut, i.e. users probably have it already mapped to do something, so maybe we shouldn't set a default shortcut for that action...

Jul 4 2019, 5:17 PM · Frameworks, Kate
ahmadsamir requested review of D22276: Add an action to insert a non-indented newline.
Jul 4 2019, 4:21 PM · Frameworks, Kate
ahmadsamir added a comment to D21876: When loading a session always load the "open recent" list.

OK. So "window configuration" here means, the window size, state, and the view properties e.g. splitters... etc. The name threw me off (I confused it with KMainWindow window configuration), and the fact that saveSessionTo() always executes KateMainWindow::saveProperties() regardless of the config setting.

Jul 4 2019, 11:48 AM · Kate

Jul 3 2019

ahmadsamir added a comment to D21876: When loading a session always load the "open recent" list.

KateSessionManager::saveSessionTo(), only saves the window configuration, when the same condition is true:
(KConfigGroup(KSharedConfig::openConfig(), "General")).readEntry("Restore Window Configuration", true)

Jul 3 2019, 6:48 PM · Kate

Jul 1 2019

ahmadsamir added a comment to D21876: When loading a session always load the "open recent" list.

Ping.

Jul 1 2019, 6:32 PM · Kate
ahmadsamir added a comment to D22067: Don't clear the session KConfing object too early.

OK. Here's where I am at the moment. If we store the position of the project and projectinfo plugin (one plugin, two tool views), if the user opens another session in the same window, things start getting messy as now there will be the position of the first session and the second session, so now we'd have to store the session name along with the position... this is starting to become too complicated for such a small issue.

Jul 1 2019, 4:51 PM · Kate

Jun 27 2019

ahmadsamir added a comment to D22067: Don't clear the session KConfing object too early.

Looking closer at this, it's more complicated than I initially thought :)

The location inside a sidebar, persistence and visibility settings of a tool view are only read from the config in Sidebar::restoreSession(); so at best with the create-toolview-on-demand nature of the projects plugin, we can only set the saved position setting. I'd say that's OK, because this diff here is more about the anonymous session, which is a special case.

If the user has a named-saved session, most of the time if he has files from a git/svn/hg repo open, he's probably not going to close them before saving the session or quitting kate.

So, just restoring the position setting would be OK?

Incidentally, why is the projects plugin has its tool views created on demand? that point doesn't seem to be documented (hint: you should document it :)).

Jun 27 2019, 9:16 AM · Kate

Jun 26 2019

ahmadsamir added a comment to D22067: Don't clear the session KConfing object too early.

Looking closer at this, it's more complicated than I initially thought :)

Jun 26 2019, 6:01 PM · Kate

Jun 24 2019

ahmadsamir added a comment to D22067: Don't clear the session KConfing object too early.

Taking a look at the code, I think one can not just keep that pointer/group around that long.

One could try to e.g. remember the keys with values for positions in finishRestore() and use that as overwrite in createToolView like we do there with

// try the restore config to figure out real pos
if (m_restoreConfig && m_restoreConfig->hasGroup(m_restoreGroup)) {
    KConfigGroup cg(m_restoreConfig, m_restoreGroup);
    pos = (KMultiTabBar::KMultiTabBarPosition) cg.readEntry(QStringLiteral("Kate-MDI-ToolView-%1-Position").arg(identifier), int(pos));
}

As long as the config pointer is valid, no operation showing/moving toolviews will have any effect.

Jun 24 2019, 8:12 PM · Kate
ahmadsamir requested review of D22067: Don't clear the session KConfing object too early.
Jun 24 2019, 9:02 AM · Kate

Jun 23 2019

ahmadsamir added a comment to D21940: Make automatic spellcheck work after reloading a document.

Great :). Please commit it too (as I don't have access to kde git).

Jun 23 2019, 1:07 PM · Frameworks, Kate
ahmadsamir updated the diff for D21940: Make automatic spellcheck work after reloading a document.

Use a lambda instead of adding a standalone method

Jun 23 2019, 12:08 PM · Frameworks, Kate

Jun 21 2019

ahmadsamir added a comment to D21940: Make automatic spellcheck work after reloading a document.

Qt docs say that the signal must have at least as many arguments as the slot, and there is an implicit conversion between the types of the corresponding arguments in the signal and the slot.

Jun 21 2019, 1:42 PM · Frameworks, Kate
ahmadsamir added inline comments to D21940: Make automatic spellcheck work after reloading a document.
Jun 21 2019, 1:39 PM · Frameworks, Kate
ahmadsamir added inline comments to D21940: Make automatic spellcheck work after reloading a document.
Jun 21 2019, 8:23 AM · Frameworks, Kate

Jun 20 2019

ahmadsamir requested review of D21940: Make automatic spellcheck work after reloading a document.
Jun 20 2019, 4:43 PM · Frameworks, Kate
ahmadsamir added a comment to D21699: Add action to reset ui color scheme to the kde default one.

[..]

What I'm asking is if it ever makes sense for the user to tell Kate to always use the Breeze Light color scheme when the system is itself already using the Breeze Light color scheme.

Jun 20 2019, 11:46 AM · Kate

Jun 17 2019

ahmadsamir requested review of D21876: When loading a session always load the "open recent" list.
Jun 17 2019, 4:23 PM · Kate

Jun 10 2019

ahmadsamir added a comment to D21699: Add action to reset ui color scheme to the kde default one.

With the last proposal the user won't be able to set the the color scheme/theme to Breeze unconditionally in kate (i.e. if the scheme in systemsettings5 is changed kate will follow it).

Right. Is there any actual use case for this?

Jun 10 2019, 9:43 PM · Kate
ahmadsamir added a comment to D21699: Add action to reset ui color scheme to the kde default one.

With the last proposal the user won't be able to set the the color scheme/theme to Breeze unconditionally in kate (i.e. if the scheme in systemsettings5 is changed kate will follow it).

Jun 10 2019, 7:15 PM · Kate
ahmadsamir added a comment to D21699: Add action to reset ui color scheme to the kde default one.

Very close! Since this is branched from master and it's a new feature with new strings, it will land on master, which will become 19.08.0

Jun 10 2019, 6:14 PM · Kate

Jun 9 2019

ahmadsamir added a comment to D21699: Add action to reset ui color scheme to the kde default one.

I took a guess for the fixed-in: field, sorry if it's wrong.

Jun 9 2019, 4:48 PM · Kate
ahmadsamir requested review of D21699: Add action to reset ui color scheme to the kde default one.
Jun 9 2019, 4:47 PM · Kate

Apr 9 2019

ahmadsamir added a comment to D20394: With Qt >= 5.10.0 use QSortFilterProxyModel instead of KRecursiveFilterProxyModel.

Please commit. Thanks.

Apr 9 2019, 12:16 PM · Kate

Apr 8 2019

ahmadsamir requested review of D20394: With Qt >= 5.10.0 use QSortFilterProxyModel instead of KRecursiveFilterProxyModel.
Apr 8 2019, 8:31 PM · Kate
ahmadsamir added a comment to D20319: Project plugin: sort the tree view case insensitively.

Please commit it too.

Apr 8 2019, 1:46 PM · Kate

Apr 6 2019

ahmadsamir requested review of D20319: Project plugin: sort the tree view case insensitively.
Apr 6 2019, 6:57 PM · Kate

Mar 26 2019

ahmadsamir added a comment to D8388: Do not hardcode unhovered windows brightness on present windows effect.

IMHO, there should be no dimming at all; the whole point of the present windows effect is to use visual identification instead of having to read the title of each window. Visual id is faster, I think.

Mar 26 2019, 11:27 AM · KWin

Mar 25 2019

ahmadsamir added a comment to D18793: Handle text completion with block selection mode.

Hi, I still don't like that we do different things in replaceText depending on the selection of the potential activeView, that makes this function harder to use correctly, as it might magically do something the user might not expect.

Mar 25 2019, 9:14 AM · Frameworks, Kate

Mar 17 2019

ahmadsamir updated subscribers of D18793: Handle text completion with block selection mode.
Mar 17 2019, 8:55 PM · Frameworks, Kate
ahmadsamir updated the diff for D18793: Handle text completion with block selection mode.

Verbatim

Mar 17 2019, 8:54 PM · Frameworks, Kate
ahmadsamir updated the diff for D18793: Handle text completion with block selection mode.
  • Split the code responsible for inserting text in block selection from typeChars() to a new function
  • Don't add words where the block selection cursor is inside to the possible completion matches from the document
  • Add unit test
Mar 17 2019, 8:53 PM · Frameworks, Kate

Mar 5 2019

ahmadsamir added a comment to D18793: Handle text completion with block selection mode.

I don't like the change to call typeChars.

  1. that needs a valid view, activeView() might be null.
  2. replaceText is not interactive per-default, but typeChars is.

    And yes, a test would be wanted I think,too.
Mar 5 2019, 9:41 AM · Frameworks, Kate

Mar 4 2019

ahmadsamir added a comment to D18793: Handle text completion with block selection mode.

Do we still need a unit test for this?

Mar 4 2019, 9:49 AM · Frameworks, Kate

Feb 27 2019

ahmadsamir added a comment to D18793: Handle text completion with block selection mode.

Fix this patch also Bug 382213 ?

No, it doesn't fix it.

Feb 27 2019, 7:24 PM · Frameworks, Kate
ahmadsamir added a comment to D19161: Use QTextFormat::TextUnderlineStyle instead of QTextFormat::FontUnderline.

! In D19161#415702, @dhaumann wrote:
Btw, searching in lxr.kde.org for FontUnderline reveals some more hits: https://lxr.kde.org/ident?_i=FontUnderline&_remember=1

Feb 27 2019, 1:32 PM · Frameworks, Kate

Feb 26 2019

ahmadsamir added a comment to D18793: Handle text completion with block selection mode.

I changed the diff to make replaceText handle inserting the word completion text.

Feb 26 2019, 6:47 PM · Frameworks, Kate
ahmadsamir updated the diff for D18793: Handle text completion with block selection mode.

Change replaceText to handle inserting word completion with block selection mode

Feb 26 2019, 6:40 PM · Frameworks, Kate

Feb 20 2019

ahmadsamir added a comment to D19161: Use QTextFormat::TextUnderlineStyle instead of QTextFormat::FontUnderline.

This patch looks good to me, even though I cannot reproduce the issue following the steps in https://bugs.kde.org/show_bug.cgi?id=399278.

Feb 20 2019, 8:19 AM · Frameworks, Kate

Feb 19 2019

ahmadsamir requested review of D19161: Use QTextFormat::TextUnderlineStyle instead of QTextFormat::FontUnderline.
Feb 19 2019, 3:08 PM · Frameworks, Kate

Feb 18 2019

ahmadsamir added a comment to D18793: Handle text completion with block selection mode.

Ping?

Feb 18 2019, 3:24 PM · Frameworks, Kate

Feb 14 2019

ahmadsamir added a comment to D19017: Make "Save Session" action ask for a name for anonymous sessions.

From the referenced bug report this comment is talking about unnamed sessions getting saved in a way to allow configuring plugins and view layouts for such sessions... I looked at bug 156330, and this diff doesn't break the fix from the latter report; unless there's something I didn't understand.

Feb 14 2019, 5:39 PM · Kate
ahmadsamir requested review of D19017: Make "Save Session" action ask for a name for anonymous sessions.
Feb 14 2019, 5:32 PM · Kate

Feb 13 2019

ahmadsamir added a comment to D18907: Handle the case if createSpeller is passed an unavailable language.

I don't have commit access, so please commit the diff.

Feb 13 2019, 10:59 AM · Frameworks
ahmadsamir updated the diff for D18907: Handle the case if createSpeller is passed an unavailable language.

Avoid shorthand in api docs

Feb 13 2019, 10:58 AM · Frameworks

Feb 12 2019

ahmadsamir updated the diff for D18907: Handle the case if createSpeller is passed an unavailable language.

Improve api docs.
Use constFind() with languageClients, as that's more efficient than searching two separate data structures.

Feb 12 2019, 9:16 PM · Frameworks
ahmadsamir added a comment to D18907: Handle the case if createSpeller is passed an unavailable language.

I think the const at the end for the signal is not wanted, otherwise, this seems to make sense for me.

Feb 12 2019, 8:58 PM · Frameworks

Feb 10 2019

ahmadsamir added a comment to D18317: Display an error message if loading a dictionary fails.

I've split the changes to the Loader in https://phabricator.kde.org/D18907.

Feb 10 2019, 7:06 PM · Frameworks
ahmadsamir requested review of D18907: Handle the case if createSpeller is passed an unavailable language.
Feb 10 2019, 7:04 PM · Frameworks

Feb 6 2019

ahmadsamir requested review of D18793: Handle text completion with block selection mode.
Feb 6 2019, 7:18 PM · Frameworks, Kate

Jan 31 2019

ahmadsamir updated the diff for D18163: Set the color scheme to Printing for Print Preview.

Use a setter

Jan 31 2019, 9:39 AM · Frameworks, Kate

Jan 29 2019

ahmadsamir updated the diff for D18163: Set the color scheme to Printing for Print Preview.

Only set the color scheme to printing when using print preview

Jan 29 2019, 6:27 PM · Frameworks, Kate
ahmadsamir added a comment to D18163: Set the color scheme to Printing for Print Preview.

Is KateRenderer::setPrinterFriendly() only called in print preview mode? I think not.

What is the bahavior currently when you print a page with another schema, and then print a page again? Does it always fallback to Printing without the patch, or does it remember the previous schema?

Jan 29 2019, 4:34 PM · Frameworks, Kate
ahmadsamir added a reviewer for D18317: Display an error message if loading a dictionary fails: loh.tar.
Jan 29 2019, 4:19 PM · Frameworks
ahmadsamir updated the diff for D18317: Display an error message if loading a dictionary fails.

Rework the patch:

  • so as not to change the config file without the user's intervention
  • core libs shouldn't depend on Gui bits
Jan 29 2019, 4:18 PM · Frameworks
ahmadsamir added a comment to D18089: KLauncher: handle processes exiting without error.

Ping.

Jan 29 2019, 8:13 AM · Frameworks

Jan 22 2019

ahmadsamir added a comment to D18163: Set the color scheme to Printing for Print Preview.

A gentle ping.

Jan 22 2019, 7:35 AM · Frameworks, Kate

Jan 19 2019

ahmadsamir added a comment to D18317: Display an error message if loading a dictionary fails.

Well, I'm not a Sonnet Guru, more a normal user.

Jan 19 2019, 5:13 PM · Frameworks
ahmadsamir added a comment to D18317: Display an error message if loading a dictionary fails.

Just my thoughts:

  • I think there shouldn't be the (default) dictionary changed by some smart logic. Just hint the user that the setting is not applicable.
Jan 19 2019, 12:53 PM · Frameworks

Jan 18 2019

ahmadsamir added a comment to D18317: Display an error message if loading a dictionary fails.

@loh.tar: I'll think that over, thanks for the pointers :)

Jan 18 2019, 6:42 PM · Frameworks
ahmadsamir added a comment to D18317: Display an error message if loading a dictionary fails.
In D18317#395530, @pino wrote:
In D18317#395513, @pino wrote:

This makes a "core" library grow a dependency on widgets -- not really a good idea, considering there is the sonnetui library for that.

In addition to the above, there are also really bad consquences: take a console-only application running QCoreApplication as application class and using sonnetcore. Now, in case of the situation described, sonnetcore will try spawn a QMessageBox, which IIRC exits the application, as no GUI is available.

Jan 18 2019, 2:02 PM · Frameworks

Jan 17 2019

ahmadsamir requested review of D18317: Display an error message if loading a dictionary fails.
Jan 17 2019, 1:06 PM · Frameworks

Jan 15 2019

ahmadsamir added a comment to D18163: Set the color scheme to Printing for Print Preview.

@dhaumann: in the screenshot that's "file -> print"; the issue here is with "file -> print preview", where the extra options tabs (including "Layout") aren't added by ktexteditor. :)

Jan 15 2019, 9:02 PM · Frameworks, Kate
This is a test notification, sent at Tue, Jan 15, 18:07.
Jan 15 2019, 4:07 PM
This is a test notification, sent at Tue, Jan 15, 18:07.
Jan 15 2019, 4:07 PM
This is a test notification, sent at Tue, Jan 15, 18:06.
Jan 15 2019, 4:06 PM

Jan 10 2019

ahmadsamir added reviewers for D18163: Set the color scheme to Printing for Print Preview: KTextEditor, dhaumann.
Jan 10 2019, 6:09 PM · Frameworks, Kate
ahmadsamir added a reviewer for D18163: Set the color scheme to Printing for Print Preview: cullmann.
Jan 10 2019, 6:03 PM · Frameworks, Kate
ahmadsamir requested review of D18163: Set the color scheme to Printing for Print Preview.
Jan 10 2019, 6:02 PM · Frameworks, Kate

Jan 9 2019

ahmadsamir added a comment to D18089: KLauncher: handle processes exiting without error.

I don't have commit access, so please commit the diff.

Jan 9 2019, 10:14 AM · Frameworks