Port Calligra Gemini for 3.x

Desktop / KDE / Calligra - Dan Leinir Turthra Jensen [leinir.dk] - 8 November 2017 14:01 EST

SUMMARY This patch reenables the Calligra Gemini product for compilation, as it has now been ported, including a
variety of other work required for Calligra Gemini to work (as well as a couple of other small changes which were done in the branch as i was working on it).

TEST PLAN This builds and runs on Windows and Linux, on the former of which i have been using Calligra Gemini 3.x as my daily driver for a few months now.

Differential Revision: https://phabricator.kde.org/D8310

Squashed commit of the following:

commit 4e8829be02b052a7303343e17176d8bcf7e313c0 Author: Dan Leinir Turthra Jensen Date: Wed Nov 8 13:56:50 2017 +0000

Fix the broken merge bits, again

commit 76a0a0938abff0beaf359e559c05509d257765ed Merge: ff8ecadad90 8c40c5cc2a2 Author: Dan Leinir Turthra Jensen Date: Wed Nov 8 12:21:33 2017 +0000

Merge branch 'master' into calligra-gemini-leinir

commit ff8ecadad90a5fbf6a361f2d387b1569b24e93d8 Author: Dan Leinir Turthra Jensen Date: Wed Nov 8 12:17:12 2017 +0000

Fix the include's case (or clang will complain)

commit 5e430a7a5e9d53a4dd16617d6d47f844177e712e Author: Dan Leinir Turthra Jensen Date: Wed Nov 8 10:58:04 2017 +0000

Syntax policy

commit 9952b763b23ef64d03f09601da2a22c826df84bb Merge: 5c0a448e5f8 3e6df97bdb2 Author: Dan Leinir Turthra Jensen Date: Sun Oct 15 13:40:05 2017 +0100

Merge branch 'master' into calligra-gemini-leinir

commit 3e6df97bdb2944651a31dd2621b842a1068faf77 Author: Dan Leinir Turthra Jensen Date: Mon Feb 6 15:19:53 2017 +0000

Add the GeminiMainWindow library

commit 5c0a448e5f8e161bc8e5762325fc9bfdd0d90f4b Author: Dan Leinir Turthra Jensen Date: Tue Oct 10 09:45:05 2017 +0100

Remove some errors from merging

commit 7acd5f0760eb7e9aa244f951de277d829f6d4e04 Merge: c1e2eef8c3b 2ed1aef9954 Author: Dan Leinir Turthra Jensen Date: Mon Oct 9 14:07:19 2017 +0100

Merge branch 'master' into calligra-gemini-leinir

commit 2ed1aef9954753b55a683ac34e12e33a6e2dcd1e Author: Dan Leinir Turthra Jensen Date: Mon Feb 6 15:19:53 2017 +0000

Add the GeminiMainWindow library

commit c1e2eef8c3b97900a0a0c1b56b490d5c8d90398b Author: Dan Leinir Turthra Jensen Date: Mon Oct 9 14:03:28 2017 +0100

A bit of windowsism reduction...

commit 247826f3f9ba5c3932280531d509086c5e985a5c Merge: 81e595dda4f 0122e3d5435 Author: Dan Leinir Turthra Jensen Date: Wed Aug 30 13:36:34 2017 +0100

Merge remote-tracking branch 'origin/master' into calligra-gemini-leinir

commit 81e595dda4fea228fae755992aeff920b9c5ffc6 Merge: 2b89f0e7508 378b6ccc0f1 Author: Dan Leinir Turthra Jensen Date: Fri Aug 4 17:25:16 2017 +0100

Merge remote-tracking branch 'origin/master' into calligra-gemini-leinir

commit 2b89f0e7508efd07479d431269402c82aefe4a4d Author: Dan Leinir Turthra Jensen Date: Sun Jul 23 21:28:31 2017 +0100

Clean the view mode sync object up a bit

commit 214a1cea5df6675a6c3f9d08bab548d762a08ead Author: Dan Leinir Turthra Jensen Date: Sun Jul 23 21:28:16 2017 +0100

A bit of documentation

commit ce5330777205e74a05614507b9f0d779be44b88a Author: Dan Leinir Turthra Jensen Date: Sun Jul 23 16:28:26 2017 +0100

Initialise the document offset

nb: this should perhaps be done by the viewmodesyncobject itself...

commit 0d7e1a3cc757ca807169f8531f127a5c18ee5e5f Author: Dan Leinir Turthra Jensen Date: Sun Jul 23 16:28:02 2017 +0100

Handle being given a null documentOffset (and react appropriately)

commit 2e4523ac18ad786ba00847ebd5a6de2719087329 Author: Dan Leinir Turthra Jensen Date: Sun Jul 23 15:38:31 2017 +0100

Left over merge crud

commit d256bc2cd5ab9c5dcc2041f366e36e01d0b1f9e4 Author: Dan Leinir Turthra Jensen Date: Sun Jul 23 15:37:45 2017 +0100

Initialise some more members on the viewmodesyncobject

commit f652d13de2960a3458d5eadaf9121c798dc69ed5 Merge: a5a14f883e4 b31621174fd Author: Dan Leinir Turthra Jensen Date: Sun Jul 23 14:47:40 2017 +0100

Merge branch 'master' into calligra-gemini-leinir

commit b31621174fd10c73ee4fd7c168a51ad2f3c88122 Author: Dan Leinir Turthra Jensen Date: Mon Feb 6 15:19:53 2017 +0000

Add the GeminiMainWindow library

commit a5a14f883e44933926fe5bd2835bdc055d40a6a9 Author: Dan Leinir Turthra Jensen Date: Sun Jul 23 14:43:58 2017 +0100

Fix Stage document page in Gemini

commit 8ef9322f382327219a6cdbaa62b2f3c15f0bb873 Author: Dan Leinir Turthra Jensen Date: Sat Jul 22 20:01:02 2017 +0100

QPointer for the text doc implementation

commit e72d5b0b1dc1b7f64194d6f81f49a51d5a5b00ed Author: Dan Leinir Turthra Jensen Date: Sat Jul 22 19:59:55 2017 +0100

Add some QPointer to the statistics widget

commit 0fe4f0e4bb989d900bf8420514f347835f3cb4b8 Author: Dan Leinir Turthra Jensen Date: Sun Apr 23 16:40:00 2017 +0100

Don't have checkable menu actions

A left-over from the Kirigami 1 based menu

commit 05151b681bcab8bd56d11b63eaf258a8373b4cd4 Author: Dan Leinir Turthra Jensen Date: Sun Apr 16 22:23:21 2017 +0100

Fix the date part of the git log

commit e933e3d4b20d210ca7a6269b323cf64a8c98d7a4 Author: Dan Leinir Turthra Jensen Date: Sun Apr 16 22:21:25 2017 +0100

Export things for the Gemini library

It turns out that, without any exported classes, the msvc parts of the cmake build system will not produce linking libraries for a library. Of course, this should be done anyway, so, yup :)

commit c8374d00f5a5495dbb74a593577e32b010cc6dc4 Author: Dan Leinir Turthra Jensen Date: Sat Apr 15 08:55:49 2017 +0100

Switch to Kirigami 2.1

commit 0088b4b5a57fe73138e619c38b985e1d12fab7f7 Author: Dan Leinir Turthra Jensen Date: Sat Apr 15 08:55:13 2017 +0100

Install components to KDE's qml install dir

commit 701d435f75c91a584cab2d59ee5b442fa612b322 Merge: 6b0d658effa 58f546a5b78 Author: Dan Leinir Turthra Jensen Date: Sat Apr 15 08:54:45 2017 +0100

Merge remote-tracking branch 'origin/master' into calligra-gemini-leinir

commit 6b0d658effa1e4464b94b116a2d2d9d8864016b6 Author: Dan Leinir Turthra Jensen Date: Fri Feb 17 16:37:12 2017 +0000

Actually give that page an ID

commit aa7e143dd0702840ac916342d59ae0a3afcac1ab Author: Dan Leinir Turthra Jensen Date: Fri Feb 17 16:36:25 2017 +0000

Show the cloud account page when the list entry is clicked

commit b2494bdf051bf431606a5c5a15af1f87d7744c96 Author: Dan Leinir Turthra Jensen Date: Fri Feb 17 16:34:35 2017 +0000

Fix the count check for account removal

commit da839fa4691e69b02e90f0e4365cd5df3142a1a1 Author: Dan Leinir Turthra Jensen Date: Fri Feb 17 16:34:01 2017 +0000

Make it possible to create new git clones again

commit 46dcc2c08003655e33eb5f4ef0abad30b1917aa2 Author: Dan Leinir Turthra Jensen Date: Fri Feb 17 16:33:29 2017 +0000

More useful debug outputs on git errors

commit 39199df9da56938c56d569fa4592fe9431a18f61 Author: Dan Leinir Turthra Jensen Date: Thu Feb 16 16:55:52 2017 +0000

Crash--

commit eebe9cf0b8dc7a1d033d52f5b4a33a8246c5ce40 Author: Dan Leinir Turthra Jensen Date: Mon Feb 13 19:59:11 2017 +0000

Assing our new QIcon icon to the sidebar header icon

commit 2a3f720f2caa716f76180efe856136db1143c736 Author: Dan Leinir Turthra Jensen Date: Mon Feb 13 19:58:08 2017 +0000

Make it possible to get a QIcon from Theme

commit d056621fa306dbe235f0fca24b0f40ef390e3162 Author: Dan Leinir Turthra Jensen Date: Mon Feb 13 19:57:30 2017 +0000

The KIconLoader stuff is in main, not mainwindow

commit a3161e83411f37bd907996a26fe3583ed680d677 Author: Dan Leinir Turthra Jensen Date: Mon Feb 13 19:57:03 2017 +0000

Clean up main a touch

commit e6e85fcfa3f5e40cd0d86bf3c345fc66ff667ae0 Author: Dan Leinir Turthra Jensen Date: Mon Feb 13 16:25:26 2017 +0000

A few different Gemini requirements and whatnot

commit cfd5143fba294316c97c560d178216d40b9a2a62 Author: Dan Leinir Turthra Jensen Date: Mon Feb 13 16:21:43 2017 +0000

Use a QQuickWidget instead of the QQuickView...

This brings a performance decrease, but works... apparently :)

commit 6f2cba29d12dd00c7ebbcd894d3fe91dc6c3f8e5 Author: Dan Leinir Turthra Jensen Date: Mon Feb 13 16:13:42 2017 +0000

Make Gemini actually load files properly on Windows

commit d08fbf2e6e1c82ec8cdb3b9ea36ad3c1dcd51de9 Author: Dan Leinir Turthra Jensen Date: Mon Feb 13 16:00:54 2017 +0000

Craft installs data into bin

commit e42c9d24f7ff14002def9169777e45cc6561bc22 Author: Dan Leinir Turthra Jensen Date: Mon Feb 13 16:00:04 2017 +0000

The document is this one...

commit f90c61ee53fa7cb1f9ec8a356b8d00242ddfe45e Author: Dan Leinir Turthra Jensen Date: Mon Feb 13 15:57:58 2017 +0000

Pass along the part calls from Document

commit d54e2a96e3499cb426a2f7c19febd399ae251014 Author: Dan Leinir Turthra Jensen Date: Sun Feb 12 15:20:39 2017 +0000

Make gemini's main.cpp work on windows again

commit 5065308892d0695ca8d531bf9ca595b8ee16ebef Author: Dan Leinir Turthra Jensen Date: Sun Feb 12 14:51:11 2017 +0000

Fix linking order for the odf2odt filter

commit a85cf5c3f9e4f938c0ab36caee766faab2120c43 Author: Dan Leinir Turthra Jensen Date: Sun Feb 12 14:50:48 2017 +0000

Let wv2 compile with mingw

commit 300ff5711b95b8a2bd108b3825325376649a1d4a Author: Dan Leinir Turthra Jensen Date: Sun Feb 12 14:49:21 2017 +0000

Such fun with qt quick plugins on windows vs elsewhere...

commit 620f5df655815d4a7d31e14e3d9b78a777b0a0b2 Author: Dan Leinir Turthra Jensen Date: Sat Feb 11 11:16:42 2017 +0000

Suggestions are this will fix the finite issue with mingw

commit 2a71b29b6e49b5798f397611012cf7fdc41bcd3f Author: Dan Leinir Turthra Jensen Date: Sat Feb 11 10:23:54 2017 +0000

Don't add code that's already in a library that's linked to

Windows gets very angry if these are there, and as it's already a part of the already linked koodf2 library, it's not needed anyway

commit 847ba6aa35d12ea8d25124380930ddc2dc15fb4e Author: Dan Leinir Turthra Jensen Date: Sat Feb 11 09:30:46 2017 +0000

Add QtQml include... i think?

commit c110f1f71c297a8d99b626d2fd100532fa442a5e Author: Dan Leinir Turthra Jensen Date: Fri Feb 10 21:39:13 2017 +0000

Need these on windows, obviously...

commit 8206f3b9001262dc27fca1f721d509df490bff9a Author: Dan Leinir Turthra Jensen Date: Fri Feb 10 21:28:02 2017 +0000

Not pretty. But this module no longer exists in Qt and needs sorting

commit acbae2473325cebcb49ccec9dd57922c30541369 Author: Dan Leinir Turthra Jensen Date: Fri Feb 10 20:37:21 2017 +0000

Mark the gemini git and gemini applications as ported

commit d909fc978f8adf753738a7db4e48ed6e373afbb7 Author: Dan Leinir Turthra Jensen Date: Fri Feb 10 16:20:48 2017 +0000

Make the welcome pages a bit prettier again

commit 0bc3778dac2ed25cf3890d415cedd8bbbda9908d Author: Dan Leinir Turthra Jensen Date: Fri Feb 10 16:20:15 2017 +0000

Make open other work again

commit 7c2a05690c20e9ea869ad0c65bd68e2e8d7f8461 Author: Dan Leinir Turthra Jensen Date: Fri Feb 10 16:06:42 2017 +0000

Rejig the repository content a bit...

commit e055860d331ab6d7ab84c7d6a1494879e07c3943 Author: Dan Leinir Turthra Jensen Date: Fri Feb 10 16:04:24 2017 +0000

BusyIndicator is now in QtQuick.Controls

commit 03bcf80780225471d5239c6cd24df68eaf76a395 Author: Dan Leinir Turthra Jensen Date: Fri Feb 10 16:02:59 2017 +0000

Make the RangeInput work again

commit b3c7b2c47b9027177ef5306a9556a18629c1d811 Author: Dan Leinir Turthra Jensen Date: Fri Feb 10 16:02:20 2017 +0000

Fix the custom word document page (again)

commit 4dda0494265559641994625d295373f6ffdd7b91 Author: Dan Leinir Turthra Jensen Date: Fri Feb 10 15:24:12 2017 +0000

Couple of minor details on the custom word doc page

commit 20847c10aadea4567f06df2fa3e0aac970e03550 Author: Dan Leinir Turthra Jensen Date: Fri Feb 10 14:25:01 2017 +0000

More Kirigami and QtQuick.Controls stuff in the cloud pages

commit 3556cd7295912fabd7f7dfaa8ed36faa89249ffe Author: Dan Leinir Turthra Jensen Date: Fri Feb 10 14:23:51 2017 +0000

Use the scroll indicator for the git history as well

commit f67051efaf25ca7e620d9b4bdf886326f9ca49c0 Author: Dan Leinir Turthra Jensen Date: Fri Feb 10 14:23:00 2017 +0000

Rework the RangeInput a touch (rebased on QtQuick.Controls)

commit 7e5a151a11e7db14a9a051555ee1da1e0be739a9 Author: Dan Leinir Turthra Jensen Date: Fri Feb 10 14:21:18 2017 +0000

Use more QtQuick controls (it crashed before?!)

commit cfe7fb09f29a8ee5cce4a8bd891695d8140f31c2 Author: Dan Leinir Turthra Jensen Date: Thu Feb 9 18:33:06 2017 +0000

Margin-fiddling...

commit fb01c2b9753b40a5e9920c83e36704b104a82869 Author: Dan Leinir Turthra Jensen Date: Thu Feb 9 18:32:17 2017 +0000

Swap some controls out for QtQuick.Controls ones

This is sub-optimal, to be fair... however, unlike the old ones, these actually accept text input, so... improvement

commit 70f7a9c1d1000eeb6f75ccae7213c02b2d964909 Author: Dan Leinir Turthra Jensen Date: Thu Feb 9 18:10:07 2017 +0000

Don't switch again if you're already current page

commit aa8c34b6fe9692fde77c177db66873a6a227611a Author: Dan Leinir Turthra Jensen Date: Thu Feb 9 18:09:28 2017 +0000

Actually make the git functionality work (commit, push, pull, merge, log)

commit fca5e7cbe64fb5c3fd983b3be49c126402f907ab Author: Dan Leinir Turthra Jensen Date: Wed Feb 8 15:10:59 2017 +0000

Switch WelcomePage's logic to something more Kirigami-esque

commit 89f7bfd28a94215b643ddc5082a459a0a45a9bbb Author: Dan Leinir Turthra Jensen Date: Wed Feb 8 14:49:39 2017 +0000

Set a pleasant default window size

commit 08b91d494c63309154b57559515deb9a155ae3d3 Author: Dan Leinir Turthra Jensen Date: Wed Feb 8 09:31:04 2017 +0000

Remove the libqgit2 check

commit aca1503f9929302f744e26a645183fd9eb8cd083 Author: Dan Leinir Turthra Jensen Date: Wed Feb 8 09:27:10 2017 +0000

Port the git support away from libqgit2, use libgit2 directly

This is less nasty than it might seem. The original code was littered with switching bits back and forth between libqgit2 and libgit2 code, which really was decidedly un-pretty and felt very hackish. So, it now is just straight forward libgit2, and easier to read

commit 69d7fd3a430e8b1d293001076ab7301d133d8fef Author: Dan Leinir Turthra Jensen Date: Wed Feb 8 09:26:30 2017 +0000

Register QAction as a type, so we can pass it through Qt Quick

commit 3f044cd72aa2a926cc2fc22f4443ea60f8bb6b72 Author: Dan Leinir Turthra Jensen Date: Wed Feb 8 09:26:13 2017 +0000

Actually install the gemini library

commit d84a065a1198af8b556d22c686642b65f171d1ef Author: Dan Leinir Turthra Jensen Date: Mon Feb 6 15:19:53 2017 +0000

Add the GeminiMainWindow library

1bbb6e00022 Port Calligra Gemini for 3.x
CMakeLists.txt | 31 +-
CalligraProducts.cmake | 4 +-
components/CMakeLists.txt | 8 +-
components/Document.cpp | 2 +-
components/ViewController.cpp | 11 +-
components/impl/DocumentImpl.h | 1 +
components/impl/SpreadsheetImpl.cpp | 5 +
components/impl/SpreadsheetImpl.h | 1 +
components/impl/TextDocumentImpl.cpp | 9 +-
components/models/TextContentsModelImpl.cpp | 10 +-
filters/libmsooxml/CMakeLists.txt | 1 -
filters/stage/pptx/CMakeLists.txt | 1 -
filters/words/docx/import/CMakeLists.txt | 1 -
filters/words/msword-odf/CMakeLists.txt | 2 +-
filters/words/msword-odf/wv2/CMakeLists.txt | 5 +
filters/words/msword-odf/wv2/config.h.cmake | 3 +
filters/words/msword-odf/wv2/src/ustring.cpp | 4 +
gemini/CMakeLists.txt | 15 +-
gemini/CloudAccountsModel.cpp | 2 +-
gemini/MainWindow.cpp | 49 +-
gemini/Settings.cpp | 3 +-
gemini/Theme.cpp | 7 +-
gemini/Theme.h | 5 +
gemini/calligragemini.qml | 5 +-
gemini/cloud/dropbox/CMakeLists.txt | 4 +
gemini/cloud/git/CMakeLists.txt | 18 +-
gemini/cloud/git/checkoutcreator.cpp | 84 +++-
gemini/cloud/git/documentlistmodel.h | 6 +-
gemini/cloud/git/gitcontroller.cpp | 547 ++++++++++++---------
gemini/cloud/git/gitlogmodel.cpp | 64 +--
gemini/cloud/git/gitplugin.cpp | 12 +-
gemini/cloud/git/gitplugin.h | 9 +-
gemini/lib/CMakeLists.txt | 9 +-
gemini/lib/GeminiMainWindow.cpp | 7 +
gemini/lib/GeminiMainWindow.h | 3 +-
gemini/lib/GeminiModeSwitchEvent.h | 9 +-
gemini/main.cpp | 41 +-
gemini/qml/StageDocumentPage.qml | 6 +-
gemini/qml/WelcomePage.qml | 267 ++--------
gemini/qml/WordsDocumentPage.qml | 2 +-
gemini/qml/components/BusyIndicator.qml | 82 ---
gemini/qml/components/Dialog.qml | 3 +-
gemini/qml/components/RangeInput.qml | 59 +--
gemini/qml/welcomepages/CustomDocWords.qml | 31 +-
gemini/qml/welcomepages/WelcomePageCloud.qml | 12 +-
gemini/qml/welcomepages/WelcomePageFilebrowser.qml | 59 ++-
gemini/qml/welcomepages/WelcomePageRecent.qml | 14 +-
gemini/qml/welcomepages/WelcomePageStage.qml | 1 +
gemini/qml/welcomepages/WelcomePageWords.qml | 1 +
gemini/qml/welcomepages/cloud/AddDropbox.qml | 10 +-
gemini/qml/welcomepages/cloud/AddGit.qml | 10 +-
gemini/qml/welcomepages/cloud/AddWebdav.qml | 13 +-
gemini/qml/welcomepages/cloud/CloudAccounts.qml | 46 +-
gemini/qml/welcomepages/cloud/EditDetailsBase.qml | 15 +-
gemini/qml/welcomepages/cloud/EditGit.qml | 23 +-
gemini/qml/welcomepages/cloud/RemoveAccountDlg.qml | 26 +-
.../welcomepages/cloud/dropbox/DropboxWebView.qml | 7 +-
.../welcomepages/cloud/dropbox/FileNavigator.qml | 36 +-
.../qml/welcomepages/cloud/dropbox/SetupPage.qml | 19 +-
.../qml/welcomepages/cloud/git/CreateCheckout.qml | 307 +++++-------
.../welcomepages/cloud/git/GetUserCredentials.qml | 33 +-
.../welcomepages/cloud/git/RepositoryContent.qml | 55 ++-
libs/main/gemini/ViewModeSwitchEvent.h | 25 +-
stage/part/CMakeLists.txt | 2 +-
stage/part/KPrView.cpp | 4 +-
stage/part/ui/KPrHtmlExportDialog.cpp | 24 +-
stage/part/ui/KPrHtmlExportDialog.h | 4 +-
words/part/KWView.cpp | 4 +-
words/part/dockers/KWStatisticsWidget.cpp | 7 +-
69 files changed, 1020 insertions(+), 1185 deletions(-)

Upstream: quickgit.kde.org


  • Share