GitQlient – a multi-platform GUI-oriented Git client written with Qt
francescmm.github.io
francescmm.github.io
- naming things (e.g. should signals/slots be prefixed (sigFoo() -> onFooBared())
- how to deal with signal functions actually not implemented (clang-tidy warnings)
- how to break up large main window classes in a reasonable manner
and so on. Typically I immerse myself in one of the larger code bases I'm aware of (Android, Firefox, Chromium, Tensorflow, and some others) and regularly discover pretty useful patterns I can make use of. However, I was unlucky to find something for Qt based. connect(contextShortcut, SIGNAL(activated()), this, SLOT(showContextDock()));
connect(m_messageView->selectionModel(),
SIGNAL(currentColumnChanged(QModelIndex,QModelIndex)),
SLOT(updateLatestModel(QModelIndex)));
Taken from https://github.com/qt/qttools/blob/7ec161d6f/src/linguist/li...https://github.com/qbittorrent/qBittorrent
not able to comment on code quality.
There's an irony somewhere in there that Chromium is a descendant of KHTML, KDE's rendering engine, which became WebKit and was originally written using Qt. And Google and Apple's contributions were regularly derided for being relatively low quality.
Qt and KDE have always had a lot of cross-contribution, so KDE (its libraries, for example) is a good place to start:
https://github.com/KDE/kdelibs
There's also this old, but still relevant, article on designing Qt-style APIs (which had a big impact on me personally):
I tried to test the software: Needed Qt as there are no releases, but Qt is behind a paywall, and according to a previous post here in HN [1] it seems they resorted back to tactics they already reckoned (In 2015) were not good. I guess I'll just have to wait until the page has the releases ready.
apt install qtbase5-dev / brew install qt / whatever works just fine here.
if you are on windows and absolutely want the official releases :
pip install aqtinstall
python -m aqt install 5.14.2 windows desktop win64_msvc2017_64 -O c:/Qt/I'm on debian 10 and that didn't work, but I suspect it's something to do with my current installation that complains about a missing Qt4 software even after installing that (That I'll research when I have the time).
sudo docker run -it debian:10
apt update
apt install qtbase5-dev build-essential g++-8 qt5-qmake qt5-default git
git clone --recursive -j16 https://github.com/francescmm/GitQlient
mkdir build && cd build
qmake ../GitQlient && make -j16
seems to produce a build without errors hereThis is not true!
There are releases, and especially for Linux it already packaged as AppImage (portable package).[0]
Second creating an account at Qt doesn't hurt.
Finally, they need to pay their bills, just like I have to.
If I have to just make an application in .NET env as a small time dev I don't even have to register anywhere just get .net core and VS Code.
OK I understand that MS can pull it off because they have big companies paying for their stuff. I also don't really know how to compete with them. But me as a small time dev cannot afford to get with all Qt BS where there is almost no BS for using free stuff from MS. (I have to count every minute or hour, so putting up with some forms or else is taking too much of my time already)
I would love to give money to Qt instead of MS or Apple but yeah I have to pay my bills as well.
BTW, Alternatively try read docs directly from repo on GitHub.[1]
[0] https://i.imgur.com/9wGBlLJ.png
[1] https://github.com/francescmm/GitQlient/blob/master/docs/ind...
- very weird layout: https://imgur.com/3uFfmSW
- mobile users may not even see content if they don't scroll left / right after scrolling down a bit: https://imgur.com/UQrKtcy
Great work! I'll be recommending this to anyone who is looking for a git GUI client.
I actually use Guitar, but GitQlient is also installed on my PC.
I couldn't find a way to do that in QGit and GitAhead at least. I didn't try the others.
With one exception: the only good git ui that I tolerate for its clearance is the eclipse egit plugin
Just earlier today I was working on testing a new feature that depended on 3 other independent fixes (basically, bugs found while I was building the feature). I did the fixes each as an independent branch, so I could get them in faster (before my new feature is done) plus to make the code review easier. The tree view is invaluable in testing my new feature to be sure I've merged the right fixes and am doing changes in the right branches.
I also use it very occasionally to isolate if and/or why a particular fix got into a specific release branch (or not). I think there's probably better ways to do this (eg using bisect) but I do it so rarely I haven't bothered to learn.
One example: I work on a feature, which necessitates some refactoring, maybe upgrading a dependency, and oh, while I'm in the middle of it I notice some other, unrelated things, that need changing. In order to not have to break my flow and think too much about which changes are required for what, I just commit it all on the same local branch.
This then gets broken up into different branches in individual PRs.
Oh, and re Githubs fork view (which could be improved on the UI side), is helpful when seeing if anyone else has picked up the ball on unmaintained repos.
If you don't find it useful, fine, I don't think we all need to grok each others personal workflows and motivate them to each other?
Maybe you can compare it to a visual file manager that visualizes your directory structure as a tree; some people find it a necessity to get an overview of their file system, some don't.
To be fair, in windows the performance is quite low due to Git Bash performance as well. I need to improve that :)
In SourceTree this is called "split view staging" and I find it indispensable. But SourceTree is so old as slow and unsupported that I'm desperately trying to find an alternative. Most of the existing GUI clients don't have this option.
Try ask developer or submit feature request.[0]
Not super discoverable but pretty useful.
Which platform did you try it in? I'd love to have as much info as possible so I can fix it :)
Looks to be build instructions as well in appendix b on the same page.
$ qmake && make
Then you'll get a GitQlient.app.