[Qt-creator] The great idea for Qt Creator
Eike Ziller
Eike.Ziller at qt.io
Wed Sep 5 09:00:17 CEST 2018
> On 5. Sep 2018, at 07:25, Carel Combrink <carel.combrink at gmail.com> wrote:
>
> On Wed, Sep 5, 2018 at 7:16 AM Tomasz Siekierda <sierdzio at gmail.com> wrote:
>>
>> On Tue, 4 Sep 2018 at 20:52, Szyk Cech <szykcech at spoko.pl> wrote:
>>>
>>> Hi
Hi,
first of all thanks for playing around with Qt Creator :)
>>>
>>> I want introduce big improvement (at least in my humble opinion) to Qt
>>> Creator.
>>>
>>> My idea is very simple and very strong logical/rational/sensible and Qt
>>> projects oriented (but not limited to Qt projects).
>>>
>>> I don't pretend to be renter of this idea, but if you use/follow this
>>> idea, then I suppose you mention this concept as "Szyk Cech's project
>>> menu style".
>>>
>>> So lets sum up typical Qt project:
>>>
>>> * plenty cpp, h, ui and qml files - typically related to each others and
>>> names only differ with extensions (eg. MainWindow.h, MainWindow.cpp,
>>> MainWindow.ui)
>>>
>>> * few cpp and h files typically differs only with extensions (Factory.h,
>>> Factory.cpp)
>>>
>>> * main.cpp
>>>
>>> Now we have big Qt project tree which is pretty unusable for bigger
>>> projects (like Qt Creator). But we can improve this greatly!
>>>
>>> We can use full advantage of QTreeView widget and display all 3 (or 4)
>>> Qt files in 1 row!!!
>>>
>>> I recognize following use cases:
>>>
>>> 1. We have Qt widget file (eg. MainWindow.h, MainWindow.cpp,
>>> MainWindow.ui), so we display in first column only file name without
>>> extension, and in next 3 columns h, cpp, ui . Then when we have direct
>>> access for every files related to our ui file (h and cpp) - without
>>> stupid clicking headers or sources (in order to unroll them) and without
>>> annoying scrolling!!!
>>
>> I'd rather keep the project tree as thin as possible and leave more
>> space for code editor views. So I'd rather suggest making base file
>> name an expandable item with 3-4 children (concrete files .cpp, h.
>> etc.).
>>
>> Also, there is a big problem here: Qt Creator would have to assume
>> (or, even worse for performance - check) that someString.h and
>> someString.cpp are related. What if they are not?
>>
>> And what if there are multiple files with the same name?
>>
>> And lastly, what if there are multiple implementations for a single
>> header? (class.h, classWin.cpp, classMac.cpp etc.)
>>
>> By the way, in most cases scrolling is not necessary - just hit F4 to
>> switch between header and source files. And if that fails, there is
>> also the Locator which allows you to open relevant files quickly.
>>
>>> 2. if additionally to 1. we have qml file with the same name as h, cpp,
>>> ui - display it in 4. column
>>>
>>> 3. If we have only h and cpp (or c) file: display name in first column
>>> and h and cpp in next 2.
>>>
>>> 4. If project does not contain Qml files or not contain Ui files, then
>>> QTreeView should not display Qml or Ui columns accordingly (only h and cpp).
>>>
>>> 5. If project is pure c project then c extension should display in Cpp
>>> column.
>>>
>>> 6. Any other files names are displayed traditionally in first column.
>>>
>>> You can see my mock interface in attached png file.
The additional columns would reduce the available horizontal space for every file, which gets especially bad for deeper project levels (= bigger indent), and for files that do not have many “variants”. For C++ projects most files are just .h + .cpp, for QML projects most files are just .qml, leaving 2-3 columns empty for most files.
I think that is not desirable.
>>>
>>> I can't implement this great feature for many reasons:
>>>
>>> 1. I work and have limited free time, and:
>>>
>>> 2. I have other great ideas for my projects (which I consider more
>>> important).
>>>
>>> 3. I have experience in writing mods for Qt Creator, but: Most important
>>> problem is that I can't be sure my mod will be accepted by developers.
>>> So I can spend few weeks writing this mod and polish this idea, and end
>>> up with rejected opinions. I do not believe using this idea only for my
>>> self, because I can't adjust my patches for every new Qt Creator
>>> releases (it is very tedious and frustrating work to me - so I give up
>>> with my Qt Creator mod and use official version only).
>>>
>>> best wishes
>>>
>>> Szyk Cech
>>>
>>>
>>> _______________________________________________
>>> Qt-creator mailing list
>>> Qt-creator at qt-project.org
>>> http://lists.qt-project.org/mailman/listinfo/qt-creator
>> _______________________________________________
>> Qt-creator mailing list
>> Qt-creator at qt-project.org
>> http://lists.qt-project.org/mailman/listinfo/qt-creator
>
> I think this is a very good idea. One thing about Qt Creator is it is
> a bit frustrating to work with the Project file tree, and combining
> the ones with the same name could be a good improvement.
>
> That said, I am not sure about the proposed solution/presentation
> (yet) since I agree with what Tomas is saying.
>
> I do normally use the locator, but sometimes one needs to work with
> the tree then It gets annoying.
>
> We use a lot of libraries and folders and for that the simplified view
> is too simplified and the normal is too cluttered.
> I would prefer if it keeps the folder structures but remove the
> Headers, Sources, Forms, etc. and collapse that in an intuitive way.
Actually we have the request for just removing the categories lying around for quite some time.
Back then this was not easy to do because these flags could just _filter_ nodes out, which made it impossible to _merge_ the subfolder structures in the categories.
I haven’t looked at it in detail yet, but nowadays that might actually be much easier to do, since the project tree widget was changed to actually rebuild the tree (or a subtree) on changes.
Br, Eike
--
Eike Ziller
Principal Software Engineer
The Qt Company GmbH
Rudower Chaussee 13
D-12489 Berlin
eike.ziller at qt.io
http://qt.io
Geschäftsführer: Mika Pälsi,
Juha Varelius, Mika Harjuaho
Sitz der Gesellschaft: Berlin, Registergericht: Amtsgericht Charlottenburg, HRB 144331 B
More information about the Qt-creator
mailing list