Enhancing & re-designing the QGIS user interface - a deep dive
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 295 | |
Author | ||
Contributors | ||
License | CC Attribution 3.0 Germany: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/43519 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
| |
Keywords |
FOSS4G Bucharest 201965 / 295
15
20
28
32
37
38
39
40
41
42
43
44
46
48
52
54
57
69
72
75
83
85
87
88
101
103
105
106
108
111
114
119
122
123
126
129
130
131
132
137
139
140
141
142
143
144
147
148
149
155
157
159
163
166
170
171
179
189
191
192
193
194
195
196
197
202
207
212
213
214
215
216
231
235
251
252
263
287
00:00
Local ringUser interfaceWave packetWebsiteRow (database)Video gamePresentation of a groupTransportation theory (mathematics)Level (video gaming)Link (knot theory)System callConfiguration spaceLaptopMultiplication signDifferent (Kate Ryan album)Arithmetic meanMobile appPerspective (visual)Figurate numberUser interfaceSet (mathematics)Demo (music)Proof theorySource codeKey (cryptography)MereologyRoundness (object)Term (mathematics)2 (number)Group actionCodeStandard deviationOnline helpHypothesisSoftwareLecture/Conference
03:04
HelixDemo (music)Menu (computing)VacuumNormed vector spaceComputer-aided designPower (physics)User interfaceSet (mathematics)PolygonOpen sourceUser interfacePoint (geometry)MereologyCartesian coordinate systemGraph coloringDifferent (Kate Ryan album)Query languagePhysical systemMobile app2 (number)RandomizationState observerMultiplication signGroup actionMenu (computing)Computer-assisted translationWebsiteLine (geometry)CASE <Informatik>MathematicsVirtual machineBus (computing)Instance (computer science)Computer animation
05:52
Group actionDifferent (Kate Ryan album)VideoconferencingProcess (computing)User interfaceObject (grammar)Raster graphicsLine (geometry)PolygonMobile appSource codeComputer animation
06:31
Menu (computing)User interfaceUser interfaceMobile appComputer iconVideo game consolePoint (geometry)Physical systemMultiplication signVideoconferencingCubeVideo gamePlanningProduct (business)Open source
07:38
Plug-in (computing)Video game consoleBasis <Mathematik>BitDesign by contractQuicksortUser interfaceWindowMultiplication signWave packetComputer programmingView (database)CubeSemiconductor memoryRevision controlPiGoodness of fitComputer animation
09:27
Perspective (visual)MereologySource codeUser interfaceMultiplication signOpen setSoftware developerSoftwareOffice suitePoint (geometry)Queue (abstract data type)Projective planeMappingForceSymbol tableMenu (computing)Distribution (mathematics)MultiplicationRegular graphLevel (video gaming)Mobile appComputer fileGUI widgetMeeting/Interview
11:11
Line (geometry)EmailComputer fileUser interfaceGamma functionColor managementMotion captureWeb pageDatabaseMIDICAN busGeometryTunisGroup actionProof theoryProfil (magazine)Set (mathematics)Type theoryDifferent (Kate Ryan album)Software developerComputer iconVector potentialPerspective (visual)CompilerScripting languageLatent heatDigitizingSource codeUser interfaceCodeEvent horizonCurveMobile appNumbering schemeFluid staticsProcess (computing)MultilaterationUser interfaceProjective planeBasis <Mathematik>Right angleConfiguration spaceUniform resource locatorGraph coloringQuicksortWave packetLevel (video gaming)Computer fileMathematical analysisLine (geometry)Multiplication signPatch (Unix)Open sourcePlug-in (computing)Computer-assisted translationRow (database)Point (geometry)Physical systemDialectBoss CorporationDrop (liquid)Bus (computing)Film editingTouchscreenAsynchronous Transfer ModeCASE <Informatik>SoftwareRational number1 (number)FreewareTime zoneBuffer solutionSelf-organizationClient (computing)Video gameSingle-precision floating-point format
18:42
Point (geometry)BuildingSource codeHacker (term)DampingSoftware developerDemo (music)User interfaceBus (computing)Office <Programm>Tap (transformer)Type theoryLaptopBasis <Mathematik>Fingerprint
19:55
GUI widgetWordUser interfaceLevel (video gaming)CodeCore dumpPresentation of a groupPerspective (visual)PiQueue (abstract data type)Software developerMeeting/Interview
20:48
Presentation of a groupProcess (computing)Point (geometry)Software developerPosition operatorMultiplication signUniform resource locatorWave packetTwitterSimilarity (geometry)User interfaceView (database)Arithmetic meanDirection (geometry)Network topology
22:33
User interfaceGroup actionDifferent (Kate Ryan album)CASE <Informatik>Presentation of a groupStability theoryNumberMultiplication signBuildingRight angleProjective planeTable (information)Object (grammar)Point (geometry)Computer programmingVideoconferencingFigurate numberPerspective (visual)Control flowMereologyWebsiteInheritance (object-oriented programming)View (database)Type theorySet (mathematics)Profil (magazine)Graphics softwareDiagramAngleProgrammschleifeUniform resource locatorAsynchronous Transfer ModeAlgorithmMobile appEntire functionLecture/Conference
26:47
Digital photographyComputer clusterSatelliteSoftware developerLevel (video gaming)Term (mathematics)QuicksortMoment (mathematics)DataflowCASE <Informatik>Configuration spaceBitProjective planeGroup actionPlug-in (computing)Different (Kate Ryan album)Software testingMultiplication signRight angleProfil (magazine)Pole (complex analysis)Complex (psychology)User interfaceString (computer science)Type theoryView (database)Point (geometry)1 (number)CircleLine (geometry)Archaeological field surveyRegular graphEmailAddress spaceOrder (biology)Goodness of fitCore dumpLecture/Conference
32:44
View (database)EmailPoint (geometry)Multiplication signInternet forumFunctional (mathematics)Proper mapPlug-in (computing)CodeAddress spaceProduct (business)FeedbackComputer fileFlow separationSoftware developerPrice indexComputer iconAbsolute valueObject (grammar)Repository (publishing)Video gamePower (physics)Proof theoryDegree (graph theory)Source codeWeb pageUser interfaceDifferent (Kate Ryan album)Configuration spaceMereologyElectronic mailing listNeuroinformatikBlogProcess (computing)2 (number)CASE <Informatik>Prisoner's dilemmaUltraviolet photoelectron spectroscopyHTTP cookieExecution unitState of matterPlanningGame controllerArithmetic meanTraffic reportingLecture/Conference
Transcript: English(auto-generated)
00:11
As introduced, I'm going to talk about the QGIS user interface. We called it a deep dive, basically, because we wanted to basically look behind the curtain, look how the interface is implemented, and see what we can do about it.
00:23
But let's briefly start. Let's introduce ourselves. First, my co-author, Maria. She's over there. Maria is a landscape ecologist by training. We also have another friend of us around. Maybe you know him as ProgramaPunk.
00:41
We are kind of a small group who has been using QGIS in many different ways and walks of life for different purposes, I guess. Maria is using it mainly for her thesis work right now. She's more like an end user of this app. I myself am a geophysicist by training, but also part-time aerospace engineer and
01:00
for the most part actually a data scientist. I deal with larger datasets and help people who do the same, basically. I'm more looking at this from a software side, but I'm also using as a geoscientist QGIS every now and then. My background is I fire up QGIS when I need it, maybe once a month, maybe once in a half year. Every now and then I need it, and then I kind of need to adapt to it.
01:26
What's the problem? QGIS is interface. That's what I want to start with. We analyze it. We analyze the code. We look at how it's basically implemented at a stage where the shortcomings are from our perspective in terms of if you want to improve it, and we want to suggest solutions.
01:45
We have some ideas, mainly as proof of concepts, and we would like to show them to you. We initially promised a live demo, but in the interest I've seen live demos fail all over the place, and I don't want to be one of those guys. If you're interested in a demo, just hit me up after the presentation.
02:02
I can show it on my laptop or on our laptops. We have it working there. We will also make the source code available. Actually, it is on GitHub, so I will give you links at the end of the presentation. Let's get right into it. The problem, the QGIS user interface.
02:22
I don't want to call it problem in a bad way, so this is not essentially trashing the app or a rant. A good rant can be entertaining, but this is not what this is about. It's more like constructive criticism. This is the QGIS app as you know it with some public transportation of Bucharest in
02:41
the background. I guess that's kind of what you see if you fire up QGIS for the first time. Basically it's kind of standard configuration. There's nothing special. You see some stuff on the left side, a layer overview, and plenty of toolbars. I guess most of you are QGIS users, so you are used to it. Imagine for a second that you do not use it frequently, you see this for the first time,
03:03
and you have to figure out what this stuff is. This is kind of the main window. For the first seconds, okay, you get the idea. You have something to open stuff, to close stuff, to manipulate layers. Then you dive deeper, and then suddenly you discover there are more windows in here.
03:22
Every app you have settings, fair enough. The settings actually look quite nice, and you can easily get around, and you figure out what this stuff is, and it's okay. Then it goes further, and then you get to the smaller dialogues for all kinds of different things. Some of those dialogues are fairly easy to understand.
03:41
In this case, random points inside polygons. It's just, again, random. I randomly picked some stuff, so we have something to talk about here. But it gets, let's say, more complicated, and we have stuff like that, a query builder. This is a dialogue where you actually need some more practice. You need some understanding. You need to read documentation.
04:01
It's a lot less intuitive than maybe the settings menu. You not only need to know about GIS, but you also need to know about how QGIS is basically doing things. One thing that kind of, yep, I'm just going to the side for a second.
04:22
That's something I did with Python. I just activated all the actions in the standard toolbars. This is kind of a vanilla QGIS 3.8 on open source Linux. It may look slightly different on your machine, maybe if you're running Windows, but this is kind of the point.
04:41
I heard you laughing. You kind of get the idea that if you're used to it, fair enough, you learn all those icons. You get an idea what this is about, but is this intuitive to someone who has never seen it? Maybe you figure it out, sure, but this is lots and lots of stuff, and it kind of lacks a system.
05:00
That's kind of my observation and actually our observation. There are positive examples of how user interfaces in the real world, even in open source, can look like. I would like to show you two examples in the open source world that I particularly like.
05:20
One is actually LibreCAD. It's a very small CAD application. It started as an app called QCAD many, many years ago. I've used it, I guess, for the first time 15 years ago. Nowadays it was forked. It's called LibreCAD. One of the nice things, it's an extremely powerful 2D CAD app, but it has a very clean
05:40
interface. Almost immediately, when you look at the color system, at the symbols, you almost immediately figure out how it works. You only see the parts of the user interface that you actually need right now for a certain action. When I draw a line, for instance, the interface will change to buttons that tell me, do I want to lock onto a different line and intersection, maybe onto a raster.
06:03
I will not be prompted with different actions, like draw a polygon or something like that, because I'm already within the process of drawing a line. This is a very nice and clean example, and I can only encourage you to look at this and try it out, because it's absolutely intuitive and a very lovely app.
06:21
One more example that I guess we all like is Blender. Blender is obviously for working with 3D objects and making videos and all this kind of stuff. It's one of those apps from the video editing world, or let's say artist world, where you see this very extremely clean interface.
06:42
It's not only dark, it's one of the things, but it also has a system to it, and the icons make sense. You see workflows immediately. When you look at this, you have an idea where stuff is and where to look for stuff. This is what I absolutely like about Blender and what I don't see with QGIS.
07:03
There's actually one more app where we couldn't find three screenshots, but I highly encourage you to look at the Autodesk commercial products, Maya in particular. Autodesk Maya is, again, it's not open source, but it's a textbook example of how a very complex app can have a really, really lovely user interface.
07:22
This is kind of where we want to go. That's what we suggest. Let's go back to QGIS. This is a few of QGIS that I've seen many, many, many times because at some point I get a little annoyed, and then I fire up the Python console. Now, Python and QGIS is just amazing.
07:42
You can do everything with it. You get access to all the features, all the stuff that you do not find in the toolbars, all the stuff that you do not find in the menus, stuff that is coming from maybe, let's say, plugins where the plugin doesn't provide a toolbar or doesn't provide buttons or anything like that.
08:00
This is kind of my most typical view of QGIS, actually. I just have the Python console open all the time. It's showing Hello World and some interface stuff, so you get the idea. What is the shortcoming here? We saw earlier in the session that you can do amazing things with QGIS if you know a little bit about Python, so you need programming skills.
08:21
I do have programming skills, and I guess most of you have, but let's say with Maria, for instance, she's a user. She does have some, but not sufficient, to get around certain features to access them, and that's kind of the major showstopper. I can tell from my personal experience I'm sometimes training or teaching people on a professional basis that those programming skills, those initial skills, even if it is Python, can
08:46
be extremely hard to obtain, and they can be extremely hard to teach people within a couple of days, within a reasonable time frame when you're talking about, let's say, a commercial contract where people want to get started, let's say, within three to five days.
09:01
Maybe you've done the same. It takes time to adapt. So QGIS, it's an amazing collection of features, but they are sort of hidden if you don't know and if you have not received this kind of training, and especially if you don't have programming skills. How can we approach this? Let's analyze QGIS a little.
09:23
What is QGIS? I mean, the main map, the window. We kind of took it apart and made a simple sketch. QGIS is not this 1990s MDI app, which was like, if you remember Microsoft Office in the old days where you had this main window and then you had the child windows,
09:40
the kind of stuff that you can still do with QT nowadays. It's actually a single window app. It's just a Q main window from a QT perspective. If you know the software, from a user perspective, it's a single window, meaning one project, one window. If you have different projects open at a time, you will probably have multiple QGIS
10:01
windows open at the same time. What you have in the window is basically just the menu on the top, some toolbars, and maybe a bunch of doc widgets. That's kind of your interface. Of course, the main attraction, you have the map view, so the canvas basically where you show your maps, your layers, and all the stuff you work on.
10:21
This is really the big, big, big part that QGIS actually provides for a user. The stuff around is just regular QT, buttons, menus, and so on and so forth. That's the kind of stuff which you can use to play. Let's look into how we can play with this. When we started looking at the QGIS, I kind of went into QGIS for the first time as
10:44
a developer maybe half a year ago. I did plugins before, and we all did plugins before, but we really looked at the QGIS source code maybe half a year ago for the first time. Just to explain this, please understand it as a simple picture. What you have here is a kind of a file size distribution of the QGIS source code.
11:02
This is QGIS 3.8 if you download the source code for this single release. If you dive into the source folder there, you see at this point it's like 30 megabytes or some 5,000 or whatever files. It's a really large code base. It's not easy to get into if you're looking for something specific.
11:22
If you're looking for something specific, we tried. Just to get an idea for those who haven't seen it, we excluded blank lines. It's more like half a million lines of C++, of course, my apologies. It's more than 1,500 single files.
11:42
We gained a lot of respect for QGIS developers, my absolute respect to you guys. This is where I as a developer became frustrated, because one of our first experiments was about icons, and I will show you in a minute. But anyway, QGIS at this point, if you just look at the source code, it has almost
12:04
200 different dialogues, and that's just QGIS core. It's not including generated interfaces. This is just static Q dialogues in this app. Imagine how much training you would need if you would have to learn all of them, especially for a non-technical user like many, many people who use GIS on a daily basis.
12:24
Actions, actions for those who write software, those are Q actions. Basically, this is all the stuff that you can click on it, stuff in menus, stuff on toolbars, whatever. It's almost 800 actions. Again, the actions do not include stuff where somebody attached a click event.
12:40
This is not all the click events that are possible to trigger something. This is just actions where it's obvious that something happens when you click on it. It's probably more than that. It's 800 different things that you would have to memorize and look for. All the icons. When we looked at manipulating the toolbar icons, we found roughly 1,200 potential candidate
13:03
icons and that's already excluding a lot of the map icons that you would see. I thought, okay, it's a big app. Maybe it's organized. We found toolbar icons or potential toolbar icons in more than 400 locations within the source tree. I would understand maybe two or three.
13:21
This is 400 and change. It's kind of impressive. Let's talk about solutions, actually. How can we approach this? We started with experiments. Now, with the source code in mind, what you have seen, we decided quickly, okay, there's
13:42
no chance that we can just dive into the C++ and do stuff with it. It's kind of way, way, way too steep of a learning curve. We went back to Python. We analyzed the source code with Python. We can also write Python plugins. We can manipulate the entire app based on Python.
14:00
It's just a way to go from our perspective and it enables us to write nice experiments and to have a discussion with you guys. Let's look at what we did. We were talking about icons. Actually, this was one of the very, very first things that we tried to mess around with was an icon theme. This is a trap, really. It was just a proof of concept, and it is.
14:22
You will find it on GitHub. I will link it to you eventually. You can basically try to introduce cleaner icons with a cleaner color scheme where you know, let's say, blue icons generally belong to a certain group of things, what you can do with it, yellow icons, like in this case, the zoom in and zoom out, and so on and so forth. You put it on a dark background and go forward.
14:43
This is an early draft. You will find later drafts on GitHub. I unfortunately missed to make a good screenshot. Why did I not do a screenshot? The irony of it is if you want to build a theme in QGIS, and I'm not talking about the color theme in the background, but actually an icon theme, you have to recompile the
15:01
entire app. We did not find a suitable way to kind of theme QGIS with just CSS and stuff like that where you can switch stuff. It really boils down to working on a source code and recompiling the entire thing. So we published basically the icons and the Python script which you can use to patch your source code and then just recompile it.
15:22
I actually didn't recompile before this conference, so that's kind of the idea here. We are interested in ideas, concepts, of course, improvements. This is a draft. It can be improved. Five minutes, okay. Let's go forward. Next thing actually is something we call workbenches.
15:44
The idea started with FreeCAD, actually, another open source CAD system. In FreeCAD, for different workflows, you can kind of define different kind of settings or user interface looks like. Now, QGIS has something called profiles, and you can actually configure your, let's say,
16:04
interface of QGIS in a certain way in a profile and then switch profiles, which is sort of interesting, but it does not, as far as we could figure it out, enable you to switch within a single project at a time without restarting QGIS. So a profile is something that is, to our understanding, loaded when QGIS is open for
16:24
a new process. What we did is we tried to figure out a way where we can basically just go to the top right corner of the window and switch between different workflows. So you have one workflow where you need certain toolbars and certain widgets, and they are all enabled in a certain place. You can define them, and then you can just switch back and forth between the different
16:44
things. Imagine in one type you have to kind of digitize stuff, and in the other place, maybe you want to look at certain layers and do some analysis on them. So those could be different workflows. You can switch the interface back and forth as you go without restarting the app. Kind of an idea.
17:01
The second thing, I guess, which is even more appealing to non-technical users is playing with toolbars. And again, proof of concept, it works. You can find it on GitHub, but it's just a sketch, could look much nicer. The icons are really improvised at this point, but anyway. Let's say you need a toolbar for a certain workflow, and I do not mean the QGIS internal
17:23
toolbars, but I actually mean new ones, where you just pick single actions from, let's say, your kind of QGIS app. So you can actually use this tool to create custom toolbars from all available actions in QGIS. You could even take this concept one step further and say you want to attach it to
17:40
certain Python actions. And this is kind of enabling you to kind of create toolbars even for stuff where you do not have an action predefined somewhere in QGIS. At the end of the day, your user could just have a toolbar for a single workflow, you ship it to your user, and your user has maybe the ten buttons that he needs all the time and really nothing else.
18:01
And you can just click through them from left to right, something like that, and get a certain job done. What it also enables you, and we have kind of implemented the basics, you can share toolbars and those workspaces. You can sort of export them and import them as simple JSON and you can kind of send it to people without destroying their QGIS configuration.
18:22
They just import your stuff, they maintain their old configuration, which is also a nice feature to have in a large organization, I believe. Last but not least, this is not a screenshot. We figured it out how to do it, but we ran into so many issues that this is more
18:43
beautiful than the actual screenshot. Ribbons. Ribbons and tabs. So, what if QGIS had tabs? That's something we wrote in the abstract. Now, okay, long story short, QT at this point doesn't properly support which kind
19:05
of ribbons, like ribbons in Microsoft Office. You can make it work, it requires a lot of hacking and tweaking, it's not nice to source code exactly, the behavior has edges and so on and so forth, but you can basically build ribbons into QGIS. If one wants to see it, we have a demo on our laptop.
19:24
Remember, it looks ugly, but the point is we can do it. And we also want to suggest, why not tap the interface and put dialogs into tabs. So again, this is possible on a plugin basis, you can just take the Q dialogs, put them into tabs, and for certain workflows, have them in tabs instead of different dialogs, which makes for a much, much cleaner workflow.
19:43
Just an idea, we want to kind of float around here. And this kind of brings me to the end, and I was told I have one minute left. What we want is we want to provoke a little, especially the QGIS developers. Talk to us, and we want to talk to you guys. And we also want to talk to users, what do you want, what do you expect from this
20:03
interface, if you actually wanted to rebuild it, or redesign it, so it actually fits your needs much, much, much better. Last word about it from a technical perspective, we figured out that it's actually possible to rewrite the interface just in Python. The C++ core map widget is fairly easy to adapt within Python code.
20:23
So you can just reuse it. The performance critical stuff can remain in C++, but why not build the QGIS interface, rebuild it in Python, make it more flexible, more easy to maintain, and then implement new stuff as you go, and make it more user-friendly. Thank you for your attention.
20:46
All right, thank you. I really enjoyed the presentation. I know there are a few QGIS developers nearby, and I'm pretty sure there are a few questions, or maybe even answers.
21:01
Can I see some hands, who would like, so I can count a bit? It's just one, two, okay. Three. Okay, I go to, go here. Start with a comment. Thanks a lot for your presentation. This is one of my favorite topics. I'm a heavy QGIS user, and I also give trainings.
21:21
I had a similar rant on Twitter not so long ago, especially from a beginner's point of view, that it's really hard to get into the UI. Some comments I got there was that it's not supposed to be easy because it's a professional tool. That was the weirdest comment. But I had also a lot of positive comments, and people had the same idea.
21:43
I really liked that you had already suggestions on how to move forward, and not like me, I was just ranting mainly. But really nice ideas. One comment I have to say is that I find Blender user interface, from a beginner's
22:02
point of view, it's worse than QGIS. But it looks nicer, it looks much nicer. These were just general discussion, opening comments, and thanks a lot for your presentation. One comment in your direction, actually, I mean, Blender used it for the first time maybe five, six years ago, and I kind of got one single job done without reading
22:23
documentation, and this kind of impressed me. Maybe I was lucky. So, I have a question. Are you aware about the locator toolbar? Yes, you seem. Locator toolbar in the bottom left. I'm personally not, but are you?
22:41
No, no, no, the bottom left is the locator toolbar, and actually I could get rid of all of the interface, and use QGIS from locator toolbar, because everything is accessible through search. Ah, now I know what you mean. And I think people do not know this feature very well, and it's very handy.
23:02
So it's basically a feature search, where you just type in what you want, and it highlights all the same things, all the tools, everything is accessible. Well, the interesting comment here is actually when we try to build this toolbar builder, we recognise something interesting. When you list all the actions that QGIS has to offer, you find plenty of actions that have maybe been translated, maybe not, maybe they don't even have a title, and
23:25
the most interesting part is that you have a lot of things that do not have a QT object name within QGIS. So when you want to query something, maybe you have access to a different kind of table where you can find stuff. When you look from a Python angle into the C++ side, you see kind of an app where
23:41
maybe 50% has a proper name, so it's properly searchable, and the other 50% is just we actually do matching with a matching algorithm and a score to kind of figure out where a certain button is in the interface when we reload, because we have no way of knowing that this is the same feature that we saw the last time.
24:01
So I would say the feature is nice, but it needs improvement. What kind of ribbons do you propose? Because the Microsoft ribbons are terrible, I can't find anything. I agree with that. So the idea would be to have ribbons basically for certain workflows where you kind of see
24:22
a workflow diagram from maybe you want to go from left to right and a certain kind of number of steps, and maybe like in a very simple graphical programming interface where you kind of, like the Lego programming, if you have seen it, where you put those Lego pricks which kind of represent if and else and for loops and this kind of stuff.
24:41
And if you want to have something like this for simple workflows and just a single workflow, not the entire feature set of QGIS, then this is what I would suggest as a ribbon, and then you would have different ribbons maybe for different workflows. And again, like we are building toolbars right now, maybe you could build ribbons and just store them in JSON and ship them for a certain user for a certain workflow. So that's kind of the idea from our perspective at this point.
25:04
Yes, it is, we can show you. Last question, I think. Yeah, a comment from me. So I would say there were some very interesting suggestions. I would definitely agree with things like the creation of your own
25:22
toolbars for your workflows and being able to ship them to other people, as well as kind of having this support for profiles. Then, as it was mentioned here already, like this ribbon interface, I think that's still a very controversial topic and it's maybe 50-50 of people
25:44
loving them and people hating them, so that's probably one of the more difficult topics to kind of figure out. This is kind of the point where we would say, why not, I mean, if QGIS had a clean Python-based interface, you could have different modes
26:01
in the interface and people could kind of easily implement what they need without playing too much with the C++ side of things. Because I do not like the Microsoft ribbons either, but sometimes they are useful, why not enable it properly? Depending on what users needs in this case. All right, that was the last question within the time, but
26:21
we do have the lunch break now, so maybe we can, without the video or with whatever, we can stay a bit longer because I think there are quite some questions and maybe answers, and so let's just finish this officially and then stay if you have more questions. If you want to be here for some extra minutes, yeah?
26:41
One last comment, actually, project website and get a profile if you're looking for it and you don't want to copy the presentation, by the way. Just take a photo. Let's just move on, I think.
27:02
Matias, I see a lot of questions still, so you want to start? One minute before. Yeah. Yeah. But, but, but, but.
27:20
No, no experience. Yes, it's. Okay, without. Something like that. Because it's lunch break, right? Yeah. But, but, but. It's professional. Really like that. Yeah. Tomorrow morning, early.
27:41
Yeah, after. I'll do some consultation, you know, QGIS, UI forms, and that stuff. We're going to be now finished at 3.30. After that, we'll be back at the concert. Sir, you'll have presentations, yeah?
28:02
Yeah, we have presentations. Okay, so I guess everyone still in the room wants to go on with some questions and answers.
28:30
If, if you're not, please leave the room, so we'll be quiet for the, for the rest. This is not easy, is it?
28:47
Is that sort of thing, or don't you, because there are many people, I mean, you can't slide. Okay. Okay, then. Let's just use the microphone, and, and be louder than the people still talking,
29:01
and that will work, right? So, I think, Yuna, you can start. Yeah, my question was, this is exactly what I was looking for to contribute to think about the user interface, so where do I sign up?
29:26
Thank you. Where do I sign up? We kind of called it a QGIS project, like bringing the gist of QGIS to people, was kind of the idea. It's also to provoke a little. Just go to qgist.org, or just check out our GitHub profile. It's, it's github.com slash qgist, and there you find all the kind of things and ideas
29:44
and contact email addresses and so on and so forth, and we will keep uploading more experiments. At the moment, it's like three. We have about six or seven more in the pipeline that kind of needs to be polished, so your QGIS is not falling apart when you try them, and then we will keep publishing
30:01
them. Yeah, yeah, sure, sure, sure. I mean, you can also comment there if you want, and post anything you like, maybe as an issue on GitHub. If you're familiar with that, then it's fine. Okay. Maybe any feature or comment that you would like to include, I don't think it would be
30:21
better to do that, so we can actually do it. Please use the microphone. I do. Very interesting talk. Thank you very much. There's a lot of good ideas there. One thing I wondered, you always had a quite high level of where you're flying over
30:43
all these things. I wondered, did you also look into what kind of different workflows you could actually have in the end so that you can have the typical user types and what actions they actually need to get a bit of an order on what the user interface must be able to do in the
31:05
end? In this case, I guess I'm more the regular QGIS user with maybe one or two workflows myself. Let's say I want to map something in for OpenStreetMap or something similar, and I have an aerial shot or maybe satellite pictures, and I want to digitize it properly and produce
31:22
certain layers, have temporary layers where I store maybe notes and stuff that I do not go into the final map and stuff like that. This is maybe one of my workflows, my personal ones. In this case, then I would need certain things where I can add the polygons, switch between the different layers, maybe save a certain layer, like you have those new temporary
31:40
layers in QGIS 3 that kind of, if you don't know what the temporary layer is, it kind of dumps its data, and when you reload it, reload QGIS. If you're not familiar with this kind of stuff, you kind of run into issues, and this is kind of my personal workflow. I can only talk between the three of us. We have different needs as users here. One suggestion I already got was to actually survey QGIS users and see what they want
32:05
to do in terms of different workflows and see what pops up. I can only talk with the three of us who have been working on this for the most time. We have at least four different workflows within us, but it's just four, and I imagine given the complexity of the app, there's much more.
32:24
Thank you. I could add to it in this way that I have my developer workflow, so all the tools which I need for QGIS or plug-in development, I put them in one workbench or one workflow, and it's always activated. If I'm testing something, I go to the testing workflow, but if I am developing something,
32:40
I stay in the developing. It's quite easy for me. I don't have to bother about losing the data or resetting or crashing my QGIS or my configuration. The configurations are already saved in this JSON file. That's the main idea behind this. It saves a lot of time from development point of view. Any more questions or ideas?
33:07
My only question would be, why does this have to be a separate product from QGIS? It doesn't need to be. I actually didn't ever hear about it before now. We just presented it here for the first time.
33:22
It doesn't need to be separate. It can be part of QGIS, absolutely, but when you want to mess around with stuff, you don't want to mess around with the base source code, especially when you look at the C++ from QGIS. Because you also did stuff that could probably easily be done in QGIS.
33:41
Certainly, yes. And code, and it's not necessary to invent stuff that we could do in QGIS. No, certainly not. That's kind of the idea. That's why we implemented just as a proof of concept basically as plugins at this point. If you want to incorporate it into QGIS because your base functionality already enables you to do it in a clean way, then please do it because it would make my life much easier.
34:05
The point is I wanted to see how people react to it and what kind of feedback we see. So we are going to see a lot of pull requests from you with new object names for all the Qt objects that are missing names in the near future and some cleanup in the icon
34:22
paths and all the things that you said could be improved? Probably proper theming support like Qt is actually providing it. If you just look at the Qt libraries, they provided and other Qt apps perfectly supported. So I don't know to which degree how much work it would be to actually clean up so you
34:40
can have a proper theming support in QGIS. And I can imagine that it's a lot of work. I'm interested in doing it, no questions, but... Any more questions? Should we just keep the microphone here?
35:01
So is this available as a QGIS plugin? At this point it's actually just on GitHub, you would have to download it from GitHub, but I can easily submit it to the official repository for QGIS plugins. If anybody here is in the room who can actually approve them, we can just make it happen in the next 10 minutes, I don't mind.
35:21
Yeah, I would suggest the upload to the plugin repository, that would be a great first step to kind of build the popularity also outside of this room. Yes, absolutely. And yeah, I think most of the things get implemented in QGIS in a way that people
35:43
come and do it, that unfortunately we are not yet there most of the time, that someone would just wish it and it would land there. But we are generally very welcome to see some contributions.
36:03
For some of the, let's say, more controversial things, it's always good to create so-called QGIS enhancement proposal, where things can be discussed beforehand and you get the indication from the community whether this is something really wanted or it's unclear
36:24
whether people would want it. The question is when you write such a proposal, you're mainly talking to developers because they are managed on GitHub, I am subscribed to this, like we all are at this point and we are looking at the discussions and it's really driven by people who know the C++ code base for the most part, and it's not so much driven by people who
36:44
actually use it. So what you need, and I guess we hit upon this multiple times now, is you need a channel where you can kind of really talk to many different users and see what comes back there because the enhancement process, I mean I like the idea that there's a QGIS enhancement proposal, it's similar to the Python enhancement proposal ecosystem, and again it's really
37:04
dominated by developers. Excuse me? Yeah, the power users are, but let's say, I can talk about myself, I'm more the occasional user, or let's say there are people, let's say maybe in companies who use it maybe
37:21
10, 20% of their time, it's still not a power user, but they're already looking at this and spending quite a lot of time, and then there's the community of people who have maybe, who are using let's say ArcGIS and they want to switch and they look for certain things and they have kind of trouble adapting not only to the app, but also to the ecosystem,
37:41
and when you look at, well they give you a price tag and an email address and a phone number, it's kind of easy. If you pay the price, you can call their support, and in the QGIS case, you find the mailing lists and the different discussion forums and the GitHub issue pages and the enhancement proposals, which is all nice, but you have to learn it.
38:07
Can you change the interface to ribbon one? It's worth trying. Okay, I think it's slowly getting time to head to the lunch, let's give one more
38:23
applause for the overtime Sebastian did. Thank you.