Discussion:
[Qt-creator] The great idea for Qt Creator
Szyk Cech
2018-09-04 18:52:01 UTC
Permalink
Hi

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!!!

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.

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
Tomasz Siekierda
2018-09-05 05:16:30 UTC
Permalink
Post by Szyk Cech
Hi
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".
* 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!!!
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.
Post by Szyk Cech
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.
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
http://lists.qt-project.org/mailman/listinfo/qt-creator
Carel Combrink
2018-09-05 05:25:46 UTC
Permalink
Post by Tomasz Siekierda
Post by Szyk Cech
Hi
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".
* 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!!!
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.
Post by Szyk Cech
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.
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
http://lists.qt-project.org/mailman/listinfo/qt-creator
_______________________________________________
Qt-creator mailing list
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.
Eike Ziller
2018-09-05 07:00:17 UTC
Permalink
Post by Carel Combrink
Post by Tomasz Siekierda
Post by Szyk Cech
Hi
Hi,

first of all thanks for playing around with Qt Creator :)
Post by Carel Combrink
Post by Tomasz Siekierda
Post by Szyk Cech
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".
* 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!!!
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.
Post by Szyk Cech
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.
Post by Carel Combrink
Post by Tomasz Siekierda
Post by Szyk Cech
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
http://lists.qt-project.org/mailman/listinfo/qt-creator
_______________________________________________
Qt-creator mailing list
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
***@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
Aleksey Kontsevich
2018-09-05 09:29:32 UTC
Permalink
Post by Carel Combrink
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.
Visual Studio uses similar approach for UI and its sources - combining them under same expandable name. Not sure how to organize this in QtC but sounds interesting.

-- 
Best regards,
Aleksey
Linked in https://www.linkedin.com/in/alekseykontsevich
Post by Carel Combrink
 >
 > Hi
 >
 > 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".
 >
 >
 > * 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!!!
 >
 >
 > 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.
 >
 >
 >
 > 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
 > http://lists.qt-project.org/mailman/listinfo/qt-creator
 _______________________________________________
 Qt-creator mailing list
 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.
_______________________________________________
Qt-creator mailing list
http://lists.qt-project.org/mailman/listinfo/qt-creator
Tobias Hunger
2018-09-06 10:10:09 UTC
Permalink
Hi there,

the idea of "Projects" is to visualize the project structure as seen
by the build system you use. I think we need that structure visible
somewhere, as developers need to interact with the build system rather
regularly:-) In qmake there is a clear separation between Sources,
Headers, Resources, UI files, etc., so that needs to be visible in
"Projects" when working with qmake projects. Other build systems have
different project trees, reflecting how those see the world they are
building.

There is a long-standing bug open to add a view that is more geared
towards project navigation. IMHO that needs to be something different
from "Project" though.

Recently the filesystem view made steps into the direction of becoming
more navigation friendly and is rather well suited for that task
nowadays -- if you like to navigate based on files and directory
structure that is. If that is not what you want, then we need to talk
about adding something else.

Best Regards,
Tobias

Loading...