|
|
Home » U++ TheIDE » U++ TheIDE: Other Features Wishlist and/or Bugs » First Impressions (about theIDE) and [FEATURE REQUEST]
First Impressions (about theIDE) and [FEATURE REQUEST] [message #1336] |
Tue, 28 February 2006 09:08 |
iplayfast
Messages: 47 Registered: February 2006
|
Member |
|
|
I've put a couple of hours in trying to create an application. The code in the libraries and ide looks very powerful.
I'm going keep attempting to make my application, and post problems that I have along with suggestions on what I feel would be better. Please take this in the way it is intended. Not as critisium but as hopefully useful suggestions.
To give an example
I want to make an application with a picture on it. I want to use the layout manager and also have a file menu on it.
After some playing I discover which of the templates do this. (First guess is Basic CtrlLib Application, which is wrong).
As a suggestion make the template names more descriptive. This is difficult for experience users since they already know what they want. But I'm looking at it from the new user point of view.
"Basic CtrlLib Application (with manual layout)" might be better.
"CtrlLib application with main window" might be better as
"CtrlLib Application using Layout Manager"
I found using the layout manager is REALLY difficult. The alignment buttons don't seem to actually do anything. Adding a menu is totally non-intuitative. (It needs a template)
I added an image which broke the compile.
I did something which converted it to text, and now I can't edit it anymore using the layout manager.
This might just be the nature of the beast. But after using Borland or Microsoft or Kdevelop or ... it seems confusing. Perhaps my assumptions are tripping me.
suggestions:
Buttons which are not implemented should be made invisible for now, or perhaps have a hint which says "not working yet". (I'm thinking of the alignment buttons).
Adding a ctrl should put it into the .h file shouldn't it?
Allow the image to call the image editor.
Allow the .lay file to be edited by the layout manager after compiling. (After recreating the project with the same name, it still wouldn't edit using the layout manager).
Right now I'm getting an error for Image class that looks buried inside the .lay file. I really don't know if I messed it up, or it's a bug. Removing the line dealing with the image allows it to compile, but I'm still not able to edit the .lay file except as text.
The code for my little application is short so I'll stick it in here. Maybe someone can see what's going on.
main.cpp
#include "Conquest.h"
#define IMAGEFILE <Conquest/Conquest.iml>
#include <Draw/iml_source.h>
Conquest::Conquest()
{
CtrlLayout(*this, "Window title");
}
GUI_APP_MAIN
{
Conquest().Run();
}
Conquest.h
#ifndef _Conquest_Conquest_h
#define _Conquest_Conquest_h
#include <CtrlLib/CtrlLib.h>
#define LAYOUTFILE <Conquest/Conquest.lay>
#include <CtrlCore/lay.h>
#define IMAGEFILE <Conquest/Conquest.iml>
#include <Draw/iml_header.h>
class Conquest : public WithConquestLayout<TopWindow> {
public:
typedef Conquest CLASSNAME;
Conquest();
};
#endif
Conquest.lay
LAYOUT(ConquestLayout, 542, 368)
ITEM(MenuBar, Menu, LeftPosZ(2, 140).TopPosZ(0, 19))
ITEM(Image, Galaxy, HSizePosZ(-1, 2).VSizePosZ(47, -4))
END_LAYOUT
and a Conquest.iml
I get the following errors when I compile.
main.cpp
C:/MyApps/Conquest/Conquest.lay: In function `void InitLayout(Ctrl&, L&, D&, ConquestLayout__layid&) [with L = Conquest, D = Conquest]':
C:/upp/uppsrc/CtrlCore/TopWindow.h:207: instantiated from `void CtrlLayout(T&) [with T = Conquest]'
C:/upp/uppsrc/CtrlCore/TopWindow.h:215: instantiated from `void CtrlLayout(T&, const char*) [with T = Conquest]'
C:\MyApps\Conquest\main.cpp:9: instantiated from here
C:/MyApps/Conquest/Conquest.lay:3: error: 'class Image' has no member named 'HSizePosZ'
C:/MyApps/Conquest/Conquest.lay:3: error: no matching function for call to `Ctrl::Add(Image&)'
C:/upp/uppsrc/CtrlCore/CtrlCore.h:965: note: candidates are: void Ctrl::Add(Ctrl&)
1 file(s) compiled in (0:03.07) 3078 msec/file
There were errors. (1:14.00)
I feel like I'm whining, but I'm only trying to point out where new users (like me) will fall flat on their faces.
Edit by fudadmin: Topic title.
[Updated on: Sat, 29 July 2006 14:48] by Moderator Report message to a moderator
|
|
|
|
Re: First Impressions [message #1338 is a reply to message #1337] |
Tue, 28 February 2006 10:45 |
|
mirek
Messages: 13980 Registered: November 2005
|
Ultimate Member |
|
|
Hi,
thanks for hints, they will be useful when creating documentation...
Now some explanations:
* all buttons in LayoutDesigner which are active are indeed active Not sure what you are refering by "Alignment" buttons, but they work. By "Alignment button" I can in fact imagine two different sets: One aligns group of buttons according to some other button (say center etc). Other group defines how layout should behave when its size is changeing (to what layout edge is Ctrl edge bound).
* Layout desinger contains just the most often used Ctrl classes (this can be extended by providing .usc files) however, as you have learned the hard way, allows you add item with any class-name you wish, withou actually testing whether such class even exists or is Ctrl-derived (read widget) class. This is extremly helpful as you can easily put your own widget class into layout without problems, but here obviously resulted in newbie confusion, as Image is NOT Ctrl derived class and cannot be put to the layout. To have raster picture in Layout, use e.g. ImageCtrl.
* <temp-aux> is a "pseudo-package". The problem is that files in "regular" packages (those in main package and in transitive closure of "used" packages) get compiled into the result. OTOH, you need a way how to edit/view files that are not part of your project. Therefore those <*-aux> packages. <temp-aux> contains "temporary" files (temp-aux is empty at each TheIDE start). <prj-aux> retains content for given main package. <ide-aux> retains content across main packages.
* To add files, just click on package you want to add it (most likely your main package), then right-click files list and choose "add package directory file".
"SetInfo" - please ignore for now. That was intended to provide description of widget, however never actually used - will probably be removed soon. (And yes, it is wordprocessor).
ctx, id - those are language translations related. Read explanation of i18n.
"Generate code" - code is put into the clipboard (this is currently the rule of most code generation in U++, might improve in some cases in future, but not likely in this case)
Quote: |
As usual please don't take these comments as harsh critisum, It is meant to be contructive suggestions, while I'm still a newbie.
|
Sure, you are welcome. U++ is not very well documented and IS radically different from anything you have used so far - but most of those differences are there to support modularity of the codebase.
OTOH, I suggest you to read some topics in TheIDE help - I believe that some question raised are in fact described there quite well...
Mirek
|
|
|
Re: First Impressions [message #1351 is a reply to message #1338] |
Tue, 28 February 2006 18:38 |
iplayfast
Messages: 47 Registered: February 2006
|
Member |
|
|
luzr wrote on Tue, 28 February 2006 04:45 |
* all buttons in LayoutDesigner which are active are indeed active Not sure what you are referring by "Alignment" buttons, but they work. By "Alignment button" I can in fact imagine two different sets: One aligns group of buttons according to some other button (say centre etc). Other group defines how layout should behave when its size is changing (to what layout edge is Ctrl edge bound).
|
If I have a number of buttons selected in the layout designer and then click one of the alignment buttons, shouldn't they change position? Oh they do! Not sure why it wasn't working last night. Probably dumb user error.
luzr wrote on Tue, 28 February 2006 04:45 |
* Layout designer contains just the most often used Ctrl classes
|
This is what I gathered, and yes I did try to add image as a manual class, which is why it couldn't compile. As a wish, if you've ever used Delphi or CBuilder, they have something similar, only instead of the context menu to select stuff, they use a tabbed toolbar. This is just a personal preference though.
I think this is a matter of me just getting familiar with the library. But as another wish, more components to handle all the other stuff, and available through some selection method. Perhaps if that's too much, some sort of list of available components. (ImageCtrl wasn't on the list).
luzr wrote on Tue, 28 February 2006 04:45 |
* <temp-aux> is a "pseudo-package".
|
This was more of an irritation then anything. When starting a new project it doesn't make sense for <temp-aux> to be selected.
luzr wrote on Tue, 28 February 2006 04:45 |
* To add files, just click on package you want to add it (most likely your main package), then right-click files list and choose "add package directory file".
|
Yes, it's obvious how to add existing files. What if you want to create a new .cpp, .h, .lay or any of the other files upp uses. .lay handles it within the layout manager itself, but doesn't actually create a new file. Does this mean I would never need to?
In my mind it would be best to have an item in the file menu call Create/.cpp and .h which would ask for a filename, create the file with header guards and optional creation text (date license etc), and add it to the project.
luzr wrote on Tue, 28 February 2006 04:45 |
"SetInfo" - please ignore for now. That was intended to provide description of widget, however never actually used - will probably be removed soon. (And yes, it is wordprocessor).
|
Actually I like that idea. Esp if it can be shown as a hint. (On linux it's very limited compared to windows). But if it's not implemented, I would turn if off for the release.
luzr wrote on Tue, 28 February 2006 04:45 |
ctx, id - those are language translations related. Read explanation of i18n.
|
ok. Shouldn't there be a hint showing at least what they are for?
luzr wrote on Tue, 28 February 2006 04:45 |
"Generate code" - code is put into the clipboard (this is currently the rule of most code generation in U++, might improve in some cases in future, but not likely in this case)
|
Again, some text somewhere on that clipboard saying something like "use this code to cut and paste into your application" would really help the newb.
luzr wrote on Tue, 28 February 2006 04:45 |
U++ is not very well documented and IS radically different from anything you have used so far - but most of those differences are there to support modularity of the codebase.
|
I understand that, and that is the reason I'm so excited about your project.
luzr wrote on Tue, 28 February 2006 04:45 |
OTOH, I suggest you to read some topics in TheIDE help - I believe that some question raised are in fact described there quite well...
|
Yes, but I (like most people) like to learn by doing, and I thought that if I documented the places that I got confused, it might help with the overall usability of the software.
The best software is so intuitive that documentation is superfluous.
This software is like none I've used before, and I can see the advantages of your methodology. I'm just hoping the learning curve isn't graded beyond my capabilities.
Chris
|
|
|
Re: First Impressions [message #1352 is a reply to message #1351] |
Tue, 28 February 2006 18:50 |
|
mirek
Messages: 13980 Registered: November 2005
|
Ultimate Member |
|
|
Quote: |
other stuff, and available through some selection method. Perhaps if that's too much, some sort of list of available components. (ImageCtrl wasn't on the list).
|
http://upp.sourceforge.net/src$CtrlLib$index$en-us.html
Note that it is in Topic browser as well (in CtrlLib package).
Quote: |
Yes, it's obvious how to add existing files. What if you want to create a new .cpp, .h, .lay or any of the other files upp uses.
|
Just write them into File(s) field and push Enter If they do not exist, they will be silently created (you can even write more than single file separated by spaces).
Quote: |
Create/.cpp and .h which would ask for a filename, create the file with header guards
|
Sure, it does. It even adds #include into .cpp.
Quote: |
Again, some text somewhere on that clipboard saying something like "use this code to cut and paste into your application" would really help the newb.
|
Well, but there does not seem to be the right place. Additional message box would just slow things down. I guess that once you know about clipboard, you expect it everywhere...
Mirek
[Updated on: Tue, 28 February 2006 19:02] Report message to a moderator
|
|
|
Re: First Impressions [message #1357 is a reply to message #1352] |
Tue, 28 February 2006 19:39 |
iplayfast
Messages: 47 Registered: February 2006
|
Member |
|
|
That's beautiful! (In the Topic Browser) Could a little "?" button be put beside the drop down list to pop it up? That would be very helpful.
luzr wrote on Tue, 28 February 2006 12:50 |
Just write them into File(s) field and push Enter If they do not exist, they will be silently created (you can even write more than single file separated by spaces).
|
OK here is where it's not user friendly. The selection is "Insert package directory file(s)" which to me implies that the file or files must be already present. This is further implied by the fact that a directory is shown waiting for you to select files.
Why not add another menu item for "Create Package directory file" which asks for the filename. No need to change the existing stuff, just add the functionality to point people in the right direction.
luzr wrote on Tue, 28 February 2006 12:50 |
Quote: |
Again, some text somewhere on that clipboard saying something like "use this code to cut and paste into your application" would really help the newb.
|
Well, but there does not seem to be the right place. Additional message box would just slow things down. I guess that once you know about clipboard, you expect it everywhere...
|
My suggestion would be in the title.
Code Generator (Use copy/paste to add this code to your application).
[Updated on: Tue, 28 February 2006 19:39] Report message to a moderator
|
|
|
Re: First Impressions [message #1358 is a reply to message #1357] |
Tue, 28 February 2006 20:43 |
|
mirek
Messages: 13980 Registered: November 2005
|
Ultimate Member |
|
|
Quote: |
OK here is where it's not user friendly. The selection is "Insert package directory file(s)" which to me implies that the file or files must be already present. This is further implied by the fact that a directory is shown waiting for you to select files.
Why not add another menu item for "Create Package directory file" which asks for the filename. No need to change the existing stuff, just add the functionality to point people in the right direction.
|
Ooops, two menu items with the same function? Moreover, this behaviour is duplicated in other "Insert.." items ("Insert any file(s)").
Well, personally, I do not find it very confusing, anyway, maybe "Insert/Create Package directory files(s)" ?
Quote: |
My suggestion would be in the title.
Code Generator (Use copy/paste to add this code to your application).
|
Just paste
BTW, right - instead of "OK" there should be "Copy to clipboard" - that would make it clear, would not it? (OTOH, there are still some cases like Alt+C, where nothing is displayed at all).
Mirek
|
|
|
Re: First Impressions [message #1362 is a reply to message #1358] |
Tue, 28 February 2006 23:33 |
iplayfast
Messages: 47 Registered: February 2006
|
Member |
|
|
luzr wrote on Tue, 28 February 2006 14:43 |
Ooops, two menu items with the same function? Moreover, this behaviour is duplicated in other "Insert.." items ("Insert any file(s)").
Well, personally, I do not find it very confusing, anyway, maybe "Insert/Create Package directory files(s)" ?
|
Well if you insist, you could remove the double function of insert (which is where the confusion lies). Insert/Create is better, but I would not say optimal. The directory is opened which looks like you are expecting people to select files present.
Quote: |
Just paste
BTW, right - instead of "OK" there should be "Copy to clipboard" - that would make it clear, would not it? (OTOH, there are still some cases like Alt+C, where nothing is displayed at all).
Mirek
|
"Copy to clipboard" instead of "OK" would definitly make things more clear. I didn't know that OK did that.
As far as cases of Alt+C etc, I'm not worried about them so much. I'm tring to see this as a total newb to this package (not too hard) and trying to point out things that a newb would get tripped up on. A newb wouldn't see Alt+C, unless they saw it in the assist menu, in which case it spells out exactly what it does. So it's not a problem.
|
|
|
|
|
Re: First Impressions [message #1365 is a reply to message #1364] |
Wed, 01 March 2006 00:42 |
|
mirek
Messages: 13980 Registered: November 2005
|
Ultimate Member |
|
|
iplayfast wrote on Tue, 28 February 2006 18:22 | Well I don't understand why there are so many inserts in the first place, so perhaps I'm totally confusing the issue.
I'll have to do some reading in order to respond properly, however to try to put it plainly. My issue is with Insert file, which will create or select a file, and then insert it. If the menu was changed to Add/Create file that would help it, although since it goes to a selection dialog, it is still confusing.
I am not asking you to change the way things are working. You have a system that works for you and that's fine. I'm just pointing out areas that have confused me. If there is no better solution, then so be it.
|
Sure, no problem. What I need to do here is to explain here to get you and other people involved in the process.
BTW, selection dialog is needed anyway, as you need to specify the directory where you are going to put your new file....
Mirek
|
|
|
|
|
Re: First Impressions (about theIDE) and [FEATURE REQUEST] [message #11102 is a reply to message #1336] |
Mon, 20 August 2007 01:26 |
Oblivion
Messages: 1094 Registered: August 2007
|
Senior Contributor |
|
|
Hi.
First of all, sorry for my bad English.
I recently turned from the awful MFC to Ultimate++ framework. Because, I found the latter very user-friendly and compact.But unfortunately I found theIDE part unsatisfactory, because of two reasons:
First, there is no "class view" (I mean, yes, there is a "browser" bu it is somwhat premature). In my opinion, nowadays a class view is not only "useful" in C++ programming, but also crucial, a must. And even the "class view" factor alone could be a decisive factor for many people whom had used and got used to VS (or other commercial solutions which has this "class view" feature) and have to write thousands of lines of codes to try the other solutions such as CodeBlocks:: (which is my favourite) or Eclipse. Compared to these two other IDE solutions, theIDE has a great advantage: it uses the UPP framework by default (and I have to admit that theIDE's layout manager is in many ways better than the VS's dialog editor).
Secondly, ok this may sound stupid but, theIDE is very ugly
The first issue I mentioned above can easily be brought under to this rubric: namely, GUI problem. mainly I understand that your primary concerns are performance, compactness and reliability not cosmetics, but you really should consider polishing the GUI. For example, why not using treeviews in the browsers? This is only one of the examples. The main point is, at the Upp homepage, it is stated that theIDE is created with the upp. The upp has a hell lot of GUI features which are in many ways beyond that polished cross-platform MFC clone wxWidgets (a framework aimed to simplify coding, yet ironically tends to get even more complex than it's MS counterpart). Is this all upp can do? As far as I see, no. As we all know, GUI's are much more important nowadays. And we have to admit that eyecandy has become an important "feature" Take Codeblocks:: for example. Had eyecandy been everything, I would have definitely chosen Codeblocks::. And I personally know many professional programmer whom have done so because of their sense of discomfort due to such "seemingly" unimportant shortcomings of theIDE I mentioned above.
Ok, enouhg complaining. I really like this framework and appreciate your hard work and would like to thank you guys for making my life more simple
Github page: https://github.com/ismail-yilmaz
upp-components: https://github.com/ismail-yilmaz/upp-components
Bobcat the terminal emulator: https://github.com/ismail-yilmaz/Bobcat
[Updated on: Mon, 20 August 2007 03:12] Report message to a moderator
|
|
|
Re: First Impressions (about theIDE) and [FEATURE REQUEST] [message #11104 is a reply to message #11102] |
Mon, 20 August 2007 10:36 |
|
Quote: |
First, there is no "class view" (I mean, yes, there is a "browser" bu it is somwhat premature).
|
yes, I agree. Browser must be refactored. I'd move the browser to the right side and use tree there. The best would be if Mirek (or everyone else that can) developed "dynamic panels" like in VS or Eclipse. Then everyone could place any browser everywhere.
Quote: |
Why not using treeviews in the browsers?
|
I prefer current solution to treeview in browsers (the exception is code browser)
I can easily switch betweeen packages without scrolling if my project consists of many packages.
But to satisfy all of us we could have like in the eclipse classic navigator and tree navigator.
Quote: |
theIDE is very ugly
|
Well, it's a matter of taste. I find theIde quite eye candy (maybe some icons could be changed). Besides theIde pretends native platform look. So change your platform theme and theIde will look different.
Summing it up. This is the list of changes I would do. Order has matter:
1. Better code completion. Ability to add outer resources to the parser.
2. Help window. Now searching is unusable to me. This must be changed.
3. Docking windows, including ability to dock window to tab control.
4. Code browser - tree view, help integrated (if you select an item the help is shown next to it or below - depends on window orientation.
5. Block operations in the editor
6. Configurable syntax highlighting (I mean typing keywords).
I think I could take care of help window.
[Updated on: Mon, 20 August 2007 10:38] Report message to a moderator
|
|
|
Re: First Impressions (about theIDE) and [FEATURE REQUEST] [message #11108 is a reply to message #11104] |
Mon, 20 August 2007 12:55 |
Oblivion
Messages: 1094 Registered: August 2007
|
Senior Contributor |
|
|
unodgs wrote on Mon, 20 August 2007 10:36 |
I prefer current solution to treeview in browsers (the exception is code browser)
I can easily switch betweeen packages without scrolling if my project consists of many packages.
But to satisfy all of us we could have like in the eclipse classic navigator and tree navigator.
|
I agree. What I was trying to stress with the "eyecandy" are not icons ot themes (they look fine); I think the browsers lack some ordering. I mean, yes except for the class browser they don't necessarily have to be in treeviews. But you (or in time, after I master the source code of theIDE maybe "we") could improve the browser listviews. Imho, they are confusing. For example, why not adding header controls and columns (which may indicate or hold some additional details of the listed items)? I mean, they don't even have any titles.
These little details could be important for newcomers.
Github page: https://github.com/ismail-yilmaz
upp-components: https://github.com/ismail-yilmaz/upp-components
Bobcat the terminal emulator: https://github.com/ismail-yilmaz/Bobcat
|
|
|
|
|
|
|
Goto Forum:
Current Time: Thu May 16 18:19:55 CEST 2024
Total time taken to generate the page: 0.03509 seconds
|
|
|