1 Attachment(s)
[DevQt] New versions, feature requests and bug reports
Hi boys! Here is the new thread dedicaced to the developpement of a new IDe, written with Qt and providing a build-in support for it!
All suggestions, code snippets, bug reports (and so on...) will be welcomed! :D
Have a look at the last stable version I crafted. It features :
- working GUI :p
- management of .pro files (only variables are handled not conditionals and functions)
- text editing widget with line numbers
- current line highlighting and basis of breakpoints and errors
- syntax highlighting (fast!!!!:cool: )
- find & replace dialogs
Re: Bumblebees on the road again!
Some first look comments:
- add an ability to change fonts in the editor... on my system it looks terrible
- find dialog should be not modal -- the user should be able to use the editor while the dialog is open
- some of the icons are smaller than others
- the "Column-row" indicator is messed up sometimes
Looks nice, though :) Waiting for more.
Re: Bumblebees on the road again!
Quote:
Originally Posted by wysota
Some first look comments:
- add an ability to change fonts in the editor... on my system it looks terrible
- find dialog should be not modal -- the user should be able to use the editor while the dialog is open
- some of the icons are smaller than others
- the "Column-row" indicator is messed up sometimes
Looks nice, though :) Waiting for more.
Nice to see that you tried my work and liked it!
What do you mean about the font???? It worked flawlessly on my system and I can't figure out what wrong stuff could happen!:confused:
Totally agree with you about find & replace dialogs! I'm working on it.
Icons smaller than others? Hum... well... I don't understand what you mean!!!:p
What mess occurs for the column-row indicator? Do you mean that, sometimes, the numbers given in the status bar don't correspond to the line and/or column pointed by the mouse cursor?
I want your comments! I'm about to post a newer version and I'd like to be able to fix such bugs!
Re: Bumblebees on the road again!
Quote:
Originally Posted by fullmetalcoder
What do you mean about the font????
It is ugly, so I want to change it :)
Quote:
It worked flawlessly on my system and I can't figure out what wrong stuff could happen!:confused:
Well... If you want others to use it, it has to work for them too.
Quote:
Icons smaller than others? Hum... well... I don't understand what you mean!!!:p
Exactly the thing I said -- some icons in the toolbar are smaller than other icons in the toolbar.
Quote:
What mess occurs for the column-row indicator? Do you mean that, sometimes, the numbers given in the status bar don't correspond to the line and/or column pointed by the mouse cursor?
No. Often the indicator is not redrawn properly and the app ends up in having two indicators drawn one over the other cluttering themselves (and displaying different data).
Re: Bumblebees on the road again!
Quote:
Originally Posted by fullmetalcoder
What mess occurs for the column-row indicator? Do you mean that, sometimes, the numbers given in the status bar don't correspond to the line and/or column pointed by the mouse cursor?
http://www.uusikaupunki.fi/~jpnurmi/mess.jpg
Quote:
Originally Posted by fullmetalcoder
Icons smaller than others? Hum... well... I don't understand what you mean!!!:p
The size of icons differences between "file" and "edit" toolbars.
A couple of ideas:
- Qt specific highlighting =)
- New/close buttons as tabwidget corner widgets (Qt assistant style)? At least close button should be "easier to access".
Nice work buddy!
Re: Bumblebees on the road again!
Hi,
I just want to starty by saying - congratulations on a great initiative. A Qt IDE is needed!
A few points:
- I'm not sure about the legal implications, but I think that a copyright needs more than a nickname.
- I get lots of Object::connect: No such slot DevEdit::highlight(QTextCursor) when running the application.
- Are you preparing for being able to integrate Assistant, Designer and Linguist?
- Is there a site or such for the application?
Re: Bumblebees on the road again!
Hey, I just checked this out. seems interesting. Although i just usually use Kate (or Visual Studio as editor on Windows) + Qt Designer + command line.
Is there a reason for forcing the style? I think this is bad. Usually you should respect the user's desktop preferences. Also the column/row "mess" jpn pointed out happens because of this. I don't know why. On Windows XP with Qt 4.1 there is that mess. If I comment out the 2 lines that force style in devapp.cpp there is no "mess". I am not sure what's up w/ that. Also, and I know this is all preliminary work but something to keep in mind, is that actions are really a lot more useful with shortcuts and tooltips. Like:
Code:
openAct
= new QAction(QIcon(":/images/open.png"), tr
("&Open..."),
this);
openAct->setShortcut(tr("Ctrl+O"));
openAct->setStatusTip(tr("Open an existing file"));
connect(openAct, SIGNAL(triggered()), this, SLOT(open()));
Shortcurts are especially helpful for Find and alike.
Anyway, pretty nice work.
Bojan
Re: Bumblebees on the road again!
Quote:
Originally Posted by wysota
No. Often the indicator is not redrawn properly and the app ends up in having two indicators drawn one over the other cluttering themselves (and displaying different data).
I didn't compile it yet (I was too lazy to get around to updating to 4.x--but doing it now as we speak just for this program!--and it doesn't make on 3.3), but looking at the code from the command line it looks like the column and row strings are painted to the same widget in the status bar. I find it's easier just to create two permanent textLabel widgets to add to the statusbar, then update the text of each textLabel when I need to rather than worry about handling strings and calling the statusbar updater. That way the widget will manage its own growing and shrinking without the two strings overlapping one another or having any "accidents."
An example in your initializer function might be:
QLabel *tlCurrCol = new QLabel( "Column ", this);
QLabel *tlCurrRow = new QLabel( "Row ", this);
statusBar()->addWidget(tlCurrCol, 0, TRUE);
statusBar()->addWidget(tlCurrRow, 0, TRUE);
then in the mouseEvent, rather than concatenating the string "Column " with some number and "Row " with some number then calling statusChanged() I can just do this:
tlCurrCol->setText("Column " + QString::number(x, 10));
tlCurrRow->setText("Row " + QString::number(y, 10));
And because they are widgets rather than a string, the statusbar will automatically reflect the change without me having to do anything else. And I am lazy, so that's always the best solution for me.
Again, sorry if that code isn't valid. It should be (I looked at something similar I did and just changed the variable names). I can't test it before posting because I'm currently building version 4.
1 Attachment(s)
Re: Bumblebees on the road again!
This a interesting project, allthough it might not be easy to compete with all the other IDE's allready available as others have mentioned before. I'm currently also creating a IDE, but for script programming with QSA. One may think WTH is that good for because there is allready a IDE included in QSA. Well the original just did not to suit my needs good enough, scripting is a big part of my past and future projects and I will be using the IDE many many hours in the next few years, so I just started creating a "better" one :p
So good luck with this project, maybe I can contribute something in case there is need for help.
1 Attachment(s)
Re: Bumblebees on the road again!
Quote:
Originally Posted by Cesar
2 fullmetalcoder:
Maybe you need some help in this project? I'd like to take part in developing :)
It seems you are not interested :(
Anyway, take a look...
- Line numbers and cursor position display fixed
- Did some code cleanup here and there
- Added some tr()'s
- etc.
You could see Changelog...
1 Attachment(s)
Re: Bumblebees on the road again!
Yeah, I guess the editor and project manager are what I was referring to. I know it wasn't an IDE in the same sense as MSVC or KDevelop or Borland et cetera. My initial reaction was shock (especially with the undocked windows), but now that I have used it for awhile it seems a lot better without either. For one thing it seems to load twice as fast as 3.3 did (although that is probably due to other improvements as well). And it's not really such a hassle to edit the projects by hand. I mean, I usually had an xterm open simultaneously to run qmake and make anyway, I might as well do the editing there while I'm at it. OK, I like 4.1 after all. So let's pretend my previous post was written by somebody else. :)
PS:
Had some free time this grey afternoon while the wife is sleeping to create a keyword array for the reserved words in Python, which I just know you're going to support now that QT has a Python binding :D Feel free to rename the derivative class "PyHighlighter" (I just took the Cpp off your original class to keep it somewhat uniform). Personally I think "Pylighter" sounds cooler.
const char* PyHighlighter::kwds[PyHighlighter::keywords] =
{
"and", "assert", "break", "class", "continue", "def", "del",
"elif", "else", "except", "exec", "finally", "for", "from",
"global", "if", "import", "in", "is", "lambda", "not", "or",
"pass", "print" "raise", "return", "try", "while", "yield"
};
total keywords (for Options { keywords } ) in the array are 29
PPS:
Some other observations about the highlighter:
Your code is not checking whether hash marks are inside single quotes.
For example, when loading your own devhighlighter.cpp file in the IDE and looking at the line beginning with
"else if ( c=='#' )"
The # and everything to the right of it (the "' )" I mean ) is green. I assume you want strings to be red, so what color are individual
characters inside of single quotes? Also red?
Another problem is when using multiple numbers in variable names. Rather than leaving them black, the IDE ignores the first number, but changes any
others next to it to magenta.
For an example of the above problems, the following screenshot is provided
Re: Bumblebees on the road again!
A QT IDE would be great.
I'd say: take the source to the designer and add handling of custom made signals/slots/classes, etc. and it will be great.
Re: Bumblebees on the road again!
don't like u way in writing Row/Col counter
take a look this -- it's real work
http://www.qtforum.org/article/14894...e-numbers.html
Re: Bumblebees on the road again!
the code i wrote talks about the text cursor.
the numbers you see on this application show the text location of where you mouse has "over"... well, you know what i mean...
these are 2 different things.
but, i do agree, i really don't need to know the positio in which i am puttin the mouse cursor. where the text cursor, that's something useful.:cool: :confused: :mad:
Re: Bumblebees on the road again!
Quote:
Originally Posted by elcuco
the code i wrote talks about the text cursor.
the numbers you see on this application show the text location of where you mouse has "over"... well, you know what i mean...
these are 2 different things.
but, i do agree, i really don't need to know the positio in which i am puttin the mouse cursor. where the text cursor, that's something useful.
I'm planning to provide both of them! :p
Quote:
I'm happy you are :) Have you taken a look at my fixed version?
I'm gonna do it ASAP!
MY week is gonna be really busy... :(
I'll have to wait next week for a newer version : holidays he!:D
Re: Bumblebees on the road again!
Hi,
I tried to compile your code but it's giving compilation errors. Currently I am using
Qt version 4.0.1. I got this error while building this application,
In file included from devedit.h:31,
from deveditor.h:30,
from devgui.h:32,
from devapp.h:30,
from devapp.cpp:25:
/usr/local/Trolltech/Qt-4.0.1/include/QtGui/qtextobject.h: In static member
function `static BlockData* BlockData::data(const QTextBlock&)':
/usr/local/Trolltech/Qt-4.0.1/include/QtGui/qtextobject.h:240: `
QTextBlockUserData* QTextBlock::userData() const' is private
devhighlighter.h:135: within this context
/usr/local/Trolltech/Qt-4.0.1/include/QtGui/qtextobject.h: In member function
`void BlockData::setToBlock(QTextBlock&)':
/usr/local/Trolltech/Qt-4.0.1/include/QtGui/qtextobject.h:241: `void
QTextBlock::setUserData(QTextBlockUserData*)' is private
devhighlighter.h:137: within this context
Re: Bumblebees on the road again!
Great initiative fullmetalcoder
The IDE looks clean and although work-in progress it's easy to see that it is heading in the right direction.
I think your idea is great. An IDE strictly for Qt (if I understood it right) is probably what most C++/Qt coders would like. KDevelop is great, but by making an IDE very dynamic you also make it complex. An easier IDE targeted toward a smaller 'group' could be a hit :D
Some things I miss in KDevelop and would love to see here
Source re-formatting/indenting as in XEmacs (tab re-formatts line, select region + F4). It's good if it's an 'easy reach' key (configurable?), and not only in menu. My opinion is that 'tab' is great for line source formating and I really miss it in KDevelop.
Keep up the good work.
Re: Bumblebees on the road again!
But code reformatting is present in KDevelop and you can assign a key shortcut/accelerator to it.
Does anybody want to join the aid creating DevQT?
As far as I can see, the idea of this project make much sense to forum people. There were plenty of suggestions, ideas, bug reports, etc, etc...
Quote:
Originally Posted by fullmetalcoder
All suggestions, code snippets, bug reports (and so on...) will be welcomed! :D
2fullmetalcoder: May I suggest people to join the project? You'll become the project leader :D
As I already mentioned, I would be glad to join you and will do my best improving DevQT. If everything will be ok, and we won't leave the project, we could ask wysota to create a special forum for DevQT. ;)
Re: Bumblebees on the road again!
Quote:
Originally Posted by wysota
But code reformatting is present in KDevelop and you can assign a key shortcut/accelerator to it.
wysota ooops. I didn't check in the right place :eek: my mistake. Thanks a million!
But it <he he> proves my point that KDevelop is so dynamic that it at, least in this instance was a problem for me, therefore maybe also for other users :rolleyes: A strict Qt IDE will still be attractive to me and others - competition is good