winmerge icon indicating copy to clipboard operation
winmerge copied to clipboard

[Feature request] Qt version of WinMerge

Open Marco-Sulla opened this issue 6 years ago • 33 comments

Hello. I'm a previous Windows user, and there are only two programs that I miss: Notepad++ and WinMerge.

Yes, there's Meld, but it's not the same thing... and I don't want to install Wine, is a vehicle for viruses.

Do you think it's possible to see a Linux version for WinMerge in a future?

Thank you anyway.

Marco-Sulla avatar May 05 '19 12:05 Marco-Sulla

There is an ongoing effort to isolate or reduce Windows dependencies, but there are currently no plans to port it to Linux.

PullRequest is very welcome.

sdottaka avatar May 06 '19 23:05 sdottaka

Well, can I ccontribute? Can you givve me an exxample of Window dependence?

Marco-Sulla avatar May 07 '19 04:05 Marco-Sulla

WinMerge uses the MFC library and Win32 API, which can only be used on Windows.

You can make porting easier by avoiding them as much as possible and separating where they are not used.

sdottaka avatar May 07 '19 23:05 sdottaka

What about Qt Framework? Can I try to use it?

Marco-Sulla avatar May 08 '19 04:05 Marco-Sulla

Qt is one of the most likely candidates.

WinMerge3, which has been discontinued, was also trying to use Qt.

There is a version using Qt for the image comparison function.

https://github.com/sdottaka/qtimerge

sdottaka avatar May 08 '19 23:05 sdottaka

QtIMerge is based on WinMerge or is yet another merge tool?

Unluckily, WinMerge3 repo link is dead: https://bitbucket.org/grimmdp/winmerge

EDIT: I found it. I don't know if it's a fork, but it's a good starting point: https://bitbucket.org/eburkitt/winmerge3/src/default/

Marco-Sulla avatar May 10 '19 18:05 Marco-Sulla

QtIMerge is based on WinMerge or is yet another merge tool? QtIMerge is based on WinIMerge (https://bitbucket.org/winmerge/winimerge/)

sdottaka avatar May 10 '19 23:05 sdottaka

But the question is: if I successfully develop a Qt version of WinMerge, it will adopted as the main interface? I have no intention to align every time the code of WinMerge with this hypotetical WinMerge Qt.

Marco-Sulla avatar May 11 '19 22:05 Marco-Sulla

If the Qt version is highly complete, it will be the main interface. Even if it is not complete, it will be incorporated into the repository if it can be maintained along with the existing MFC source.

sdottaka avatar May 12 '19 02:05 sdottaka

EDIT: I found it. I don't know if it's a fork, but it's a good starting point: https://bitbucket.org/eburkitt/winmerge3/src/default/

Well, it seems it's not a standard QT project... I prefer to start it a fresh one, a Qt Widget Application, using Qt 5.12.3 with G++ 9.1

Marco-Sulla avatar Jun 08 '19 22:06 Marco-Sulla

Well, maybe is premature, but I'm creating a WinMergeQt project on Github. The problem is the license. I would use GPLv3, but WinMerge is licensed under GPLv2. Can we mix the code and licenses? I think there's no problem if the Qt interface source code is licensed under GPLv3, while WinMerge core continues to have the old GPLv2.

Marco-Sulla avatar Jun 09 '19 13:06 Marco-Sulla

Well, I created a stub repository here: https://github.com/Marco-Sulla/WinMergeQt

Help and suggestion are welcomed.

Marco-Sulla avatar Jun 09 '19 15:06 Marco-Sulla

WinMerge use GPLv2 but don't forbid newer GPL versions:

WinMerge is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.

The FAQ from Qt says that distributed also under GPLv2:

3.5. Can I use the Community open source version to develop my commercial product?

It depends on how you license and distribute your product. The open source version of Qt is mainly distributed under the LGPL, version 3 and GPLv2/v3. You will need to fulfill the license obligations for these licenses when using Qt in your product.

https://www.qt.io/faq/

gerundt avatar Jun 09 '19 21:06 gerundt

I took the old attempt of winmergeqt and merged it with the current code. I found a tool which extracts the windows res-files and transforms it to QT resourcefiles. Afterwards I started porting the code to QT. Currently the Aboutbox is working: grafik (Really awesome) The translation is basically working (you can read mitwirkende insted of developers!) Saving and reading settings from registry or ini file is working. grafik I'm using linux, so I can't promise (I rather sure it's not) comiling on windows. The Poco Library has to be Compiler manully before starting to build winmerge at version It's compiling on my linux with cmake (using Clion as IDE) and qmake (using QT Creator as IDE) The link to my repro is here: https://github.com/OzzieIsaacs/winmerge-qt

OzzieIsaacs avatar Aug 11 '19 08:08 OzzieIsaacs

A linux version is needed, but wine runs it and viruses come depending on user's activity (I don't use many Windows apps, so I am confident they won't be an issue). I've tried all the diff apps I've found (> 10) and I must say WinMerge is the most flexible one, especially when somebody needs editing that won't incorporate any change a regular merge would do. QT or GTK, any of them is very good and welcome! I personally use KDE, so a QT version would be great!

msdobrescu avatar Nov 03 '19 17:11 msdobrescu

Microsoft announced MAUI, their own cross-platform UI, which could also be an alternative to Qt. https://devblogs.microsoft.com/dotnet/introducing-net-multi-platform-app-ui/

@OzzieIsaacs Nice work! 👍 You gave up on it?

vanillajonathan avatar Aug 24 '20 12:08 vanillajonathan

More or less yes, I gave up. I don't have time for my main project and also the port to qt. No feedback, no nothing from qt, so the choice which project to continue was easy. PRs are welcome, currently it's a whole mess.

OzzieIsaacs avatar Aug 24 '20 12:08 OzzieIsaacs

Off topic: do not trust Microsoft. Ever. Remember the three E.

Marco-Sulla avatar Aug 24 '20 12:08 Marco-Sulla

Nooooo! QT, please! No MAUI!

msdobrescu avatar Aug 24 '20 12:08 msdobrescu

Do we still have interest for a Qt based WinMerge?

atif1996 avatar Aug 11 '23 18:08 atif1996

Do we still have interest for a Qt based WinMerge?

Yes, of course! Been using Winmerge for many years under Windows, now need it in Linux.

sid-the-sloth avatar Aug 12 '23 20:08 sid-the-sloth

It would be great to have it macOS as well.

folmos-at-orange avatar Oct 17 '23 09:10 folmos-at-orange

+1 winmerge on linux.. whatever the ui framework.. use electron and have ui web for ultra portability

lixaotec avatar Oct 20 '23 13:10 lixaotec

+1 winmerge on linux.. whatever the ui framework.. use electron and have ui web for ultra portability

There is a graphical diff application called Meld for Linux.

vanillajonathan avatar Oct 20 '23 17:10 vanillajonathan

There isn't anything alike WinMerge. So unique, so natural!

msdobrescu avatar Oct 20 '23 18:10 msdobrescu

Meld != WinMerge. At all.

Marco-Sulla avatar Oct 20 '23 18:10 Marco-Sulla

+1 for a Linux version of WinMerge

KirtashW17 avatar Dec 25 '23 17:12 KirtashW17