Results 1 to 20 of 104

Thread: [DevQt] New versions, feature requests and bug reports

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Cesar Guest

    Post Re: Bumblebees on the road again!

    Quote Originally Posted by jamadagni
    2. Wishlist: Code completion, a la VB6 (maybe after that too, never saw it). When an object's name is typed followed by . or ->, bring up a combobox of applicable member functions etc -- you know VB6... If I start typing QVB then it must complete the rest -- QVBoxLayout.
    That would be really great We're open to suggestions of implementation algorythms
    Quote Originally Posted by jamadagni
    3. It must correct the case itself -- both for classes and variabled -- VB6 does that. (Of course, everyone here realizes that just because something is there in an MS product does not mean it's intrinsically bad...)
    Won't do. AKAIK, VB is case insensitive, whilst C++ is not. That's why no case correction should take place.
    Quote Originally Posted by jamadagni
    4. One particular code completion is, when the user has typed QPushButton quit = new -- the IDE must fill in the next word which is always QPushButton and add a (, perhaps even a () while placing the cursor between the parantheses.
    Won't do. Consider the following example:
    Qt Code:
    1. class MyPushButton : public QPushButton {
    2. //...
    3. };
    4. QPushButton *b = new MyPushButton();
    To copy to clipboard, switch view to plain text mode 
    Quote Originally Posted by jamadagni
    5. I hope to see DevQT develop into a big app soon, though I lack the programming knowledge to contribute to it!
    Either do I Thanks for your feedback!

  2. #2
    Join Date
    Jan 2006
    Location
    Warsaw, Poland
    Posts
    33,368
    Thanks
    3
    Thanked 5,018 Times in 4,794 Posts
    Qt products
    Qt3 Qt4 Qt5 Qt/Embedded
    Platforms
    Unix/X11 Windows Android Maemo/MeeGo
    Wiki edits
    10

    Default Re: Bumblebees on the road again!

    Guys, one remark --- Are you talking about "Qt" or "QT"? Because the latter has nothing to do with this site And I see you want to name the application DevQT.

    BTW, this is wrong:
    4. One particular code completion is, when the user has typed QPushButton quit = new -- the IDE must fill in the next word which is always QPushButton and add a (, perhaps even a () while placing the cursor between the parantheses.
    What about constructions like the following:
    Qt Code:
    To copy to clipboard, switch view to plain text mode 
    Last edited by wysota; 17th February 2006 at 10:22.

  3. #3
    Join Date
    Jan 2006
    Location
    11 N 78 E
    Posts
    110
    Thanks
    10
    Thanked 1 Time in 1 Post
    Qt products
    Qt4
    Platforms
    Unix/X11

    Default Re: Bumblebees on the road again!

    QPushButton *b = new MyPushButton();
    1. Why don't you declare it as MyPushButton *b = new MyPushButton(); ?
    2. So long as QPu is autocompleted as QPushButton I don't have a problem with this idea being rejected!
    Penguin #395953 using Qt for open-source development on X11 using C++ and
    Python via PyQt

  4. #4
    Join Date
    Feb 2006
    Posts
    18

    Default new highlighter

    i try rewrite old Qt3 syntaxhighlighter
    with new libraries

    take a look
    Attached Files Attached Files
    Last edited by Hz; 17th February 2006 at 12:56.
    Cut and Run

  5. #5
    Join Date
    Jan 2006
    Posts
    371
    Thanks
    14
    Thanked 18 Times in 17 Posts
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Default Re: new highlighter

    Quote Originally Posted by Hz
    i try rewrite old Qt3 syntaxhighlighter
    with new libraries

    take a look
    This is FullMetalCoder 's code, which is borrowed from QSA.

    Why do I have the feeling like most codes we see on this thread are "way too similar"?

  6. #6
    Join Date
    Feb 2006
    Posts
    18

    Default Re: new highlighter

    Quote Originally Posted by elcuco
    This is FullMetalCoder 's code, which is borrowed from QSA.

    Why do I have the feeling like most codes we see on this thread are "way too similar"?
    its code from qt3 text editor - i just correct a little function "process()" in FullMetalCoder 's code
    Last edited by Hz; 17th February 2006 at 13:17.
    Cut and Run

  7. #7
    Join Date
    Jan 2006
    Location
    Curitiba - Brazil
    Posts
    23
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Default Re: new highlighter

    Quote Originally Posted by elcuco
    This is FullMetalCoder 's code, which is borrowed from QSA.

    Why do I have the feeling like most codes we see on this thread are "way too similar"?
    Becouse this is the best way to implement a highlight. If you use QRegExp like syntaxhighlight exemple your code will be very slow. So its better to use a compiler aproach like in the lex analizers.

    By the way, I'm working on a powerfull C++ editor, its not an IDE and I think you guys will like, some features that it will have:

    * Multiline edit;
    * Persistent selection;
    * Split views;
    * Icon pannel (with an overview pannel to);
    * Line numbers;
    * Code collapse (folding);
    * Parentesis match;
    * Auto complete to open parentesis, quote, brackets, etc.;

    Perhaps could be used by FullMetalCoder's IDE

    As I'm without computer at home, the development is slow, becouse I can program only here at work after the expedient.
    --
    Thiago dos Santos Alves
    Computer Scientist

    thiago.salves@gmail.com
    -----------------------------------------------------
    "A mind that opens to a new idea never gets its original size again."
    - Albert Einstein

  8. #8
    Join Date
    Jan 2006
    Location
    travelling
    Posts
    1,116
    Thanks
    8
    Thanked 127 Times in 121 Posts
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Default Re: new highlighter

    Quote Originally Posted by Townk
    Becouse this is the best way to implement a highlight. If you use QRegExp like syntaxhighlight exemple your code will be very slow. So its better to use a compiler aproach like in the lex analizers.

    By the way, I'm working on a powerfull C++ editor, its not an IDE and I think you guys will like, some features that it will have:

    * Multiline edit;
    * Persistent selection;
    * Split views;
    * Icon pannel (with an overview pannel to);
    * Line numbers;
    * Code collapse (folding);
    * Parentesis match;
    * Auto complete to open parentesis, quote, brackets, etc.;

    Perhaps could be used by FullMetalCoder's IDE

    As I'm without computer at home, the development is slow, becouse I can program only here at work after the expedient.
    oh dear! don't be silly! sharing knowledge is the best way to learn and the philosophy of Open Source is anything but doing 2 similars projects without any connections!
    I don't mean you should join the project rather than starting your own! Actually if you feel better developping you own project alone it's your choice but, as you said, we'll like the features you want your text editor to provide. So the point is : "why not sharing our view about and implementation of them?"

    I hope I managed to convince you...
    Current Qt projects : QCodeEdit, RotiDeCode

  9. #9
    Join Date
    Jan 2006
    Location
    Warsaw, Poland
    Posts
    33,368
    Thanks
    3
    Thanked 5,018 Times in 4,794 Posts
    Qt products
    Qt3 Qt4 Qt5 Qt/Embedded
    Platforms
    Unix/X11 Windows Android Maemo/MeeGo
    Wiki edits
    10

    Default Re: [DevQt] New versions, feature requests and bug reports

    Two things:
    1. There are two bugs in the archive above which prevent the application from working:
    a) "class DevWorkSpace;" in devgui.h is missing
    b) a segfault on startup occurs, because you create a QMenu object with Editor parent, while Editor (ptr to some object) is still uninitialised. One has to move the statement which assigns an object to Editor before the setupMenu() call.
    2. Why is the minimum width of the main window more than the width of my display (which is 1024x768) ?

    Please test your code before posting it.
    Last edited by wysota; 17th February 2006 at 16:28.

  10. #10
    Join Date
    Feb 2006
    Location
    Österreich
    Posts
    35
    Qt products
    Qt3 Qt4
    Platforms
    Unix/X11

    Default Re: new highlighter

    Quote Originally Posted by Townk
    Becouse this is the best way to implement a highlight. If you use QRegExp like syntaxhighlight exemple your code will be very slow. So its better to use a compiler aproach like in the lex analizers.
    It depends. I also made a syntax highlighter using regexp strings for practice (I don't know regexp very well and needed an excuse to learn it) with a text editor I made in Qt3 when I first began to learn the library, and when typing code in manually or opening from a file there is no noticable difference in human time from the one I made using while loops and if-else statements. The only trouble is if you be evil and copy a large amount of code into the clipboard and then hold down the Ctrl+V keys for about ten seconds to paste it all over and over again a lot. Then the program freezes for about fifteen seconds before displaying anything :DDDD. Probably for formatting a large input filestream the difference isn't so bad (so it depends if you want easy-to-read code from using the regexp or two hundred lines of loops and if statements--look at devqt's code for highlighting, for example, it works but it's a mess--whereas my regexp highlighter practice was maybe twenty lines, and if there was something wrong with how it was reading it I could just edit the string holding the pattern instead of weaving through all the branches) but for real-time highlighting of keyboard input the lexical analyzation is definitely the way to go. You know, it's funny. Such an awful lot of work for what seems like such a trivial feature of the IDE. You practically have to write half a C++ compiler just to pretty print the code. I'm having similar issues with another project I am working on in my spare time. It is a frontend for editing qmake files. It is no problem when the project file is straightforward, but now I have two lexical analyzers to make. One is to reimplement my syntax highlighter for the scripting style used by qmake (one of the tabs lets you edit the raw file instead of using the interface), the other is to handle all of the nesting and scopes within the project file and display the hierarchies correctly in the frontend's widgets. The first is much much easier (for me, at least) than the second.
    Last edited by michel; 18th February 2006 at 14:03.
    My philosophy is: If you can use a free, open-source alternative: do it. And if you can't, pretend it's free and open-source and hope you don't get caught.

  11. #11
    Join Date
    Feb 2006
    Location
    Österreich
    Posts
    35
    Qt products
    Qt3 Qt4
    Platforms
    Unix/X11

    Default Re: [DevQt] New versions, feature requests and bug reports

    Two bugfixes to your latest version. The first is mentioned already by wysota (but I hadn't read his message so it took me 30 minutes to figure out with gdb why I was getting core dumps on startup before realizing you were trying to run setupMenu() on Editor before initializing it). The second fixes the problem that when you close a file that has been opened, the tab disappears but not the source code. When no files are open the Editor widget shouldn't display anything. Below are my modified lines.

    --devgui.cpp---line 51--DevGUI() constructor--
    Qt Code:
    1. Editor = new QTabWidget(this);
    2. Editor->setWindowState(Qt::WindowMaximized);
    3. Editor->setContextMenuPolicy(Qt::CustomContextMenu);
    4. setupMenu();
    5. setupFileActions();
    6. setupEditActions();
    7. //setupTextActions();
    8. setupCompiler();
    9. setupExplorer();
    To copy to clipboard, switch view to plain text mode 

    --devgui.cpp---line 602--DevGUI::close()--
    Qt Code:
    1. //Your old function which removes the tab, but not the actual page Editor->removeTab(pos);
    2. delete Editor->widget(pos);
    To copy to clipboard, switch view to plain text mode 

    I'll let you know if I see anything else.
    My philosophy is: If you can use a free, open-source alternative: do it. And if you can't, pretend it's free and open-source and hope you don't get caught.

  12. #12
    Join Date
    Jan 2006
    Location
    travelling
    Posts
    1,116
    Thanks
    8
    Thanked 127 Times in 121 Posts
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Default Re: [DevQt] New versions, feature requests and bug reports

    thanks for your interest! I'll try to fix them all!

    elcuco's kindness has no limits : he's gonna open a project on SF.net or Berlios because, for some reasons I can't do it on my own. That'll give us a better framework to speed up the developpement process.

    I've no code to post today but I'm working on the project handling, damn progress : scopes are now understood and functions skipped

    as soon as I'll get the project working I'll start compilation process stuff and post a version with as many fixes as possible.
    Current Qt projects : QCodeEdit, RotiDeCode

  13. #13
    Join Date
    Feb 2006
    Location
    Österreich
    Posts
    35
    Qt products
    Qt3 Qt4
    Platforms
    Unix/X11

    Default Re: [DevQt] New versions, feature requests and bug reports

    Quote Originally Posted by fullmetalcoder
    thanks for your interest! I'll try to fix them all! :D

    elcuco's kindness has no limits : he's gonna open a project on SF.net or Berlios because, for some reasons I can't do it on my own. That'll give us a better framework to speed up the developpement process.

    I've no code to post today but I'm working on the project handling, damn progress : scopes are now understood and functions skipped

    as soon as I'll get the project working I'll start compilation process stuff and post a version with as many fixes as possible.
    Will your new version fix the syntax highlighter yet? I was going to post a modification to devhighlighter.cpp because the one from your latest zip file doesn't handle backslashes in preprocessor directives, but of course, now that it does handle them, the way your loops are set up it is not easy to check for a line that has both a backslash and a comment. It's rather simple. In your if loop for c=='#' just do an indexOf search for "\\" and if found set the state to preprocessor, and in your switch (previousBlockState()) - case statement at the top of the function put something like

    Qt Code:
    1. case preprocessor :
    2. i = text.indexOf("\\");
    3. if (i != -1)
    4. {
    5. setFormat(0, i+1, fmts[preprocessor]);
    6. return preprocessor;
    7. }
    8. setFormat(0, len, fmts[preprocessor]);
    9. return normal;
    To copy to clipboard, switch view to plain text mode 

    I haven't done a lot of error checking but it seems to work fine for things like

    Qt Code:
    1. #define THIS "that" \
    2. "plus this" \
    3. "plus that"
    4. int main(){ printf(THIS); }....blahblah...
    To copy to clipboard, switch view to plain text mode 

    In your old version only the first line would be green whereas all three lines which are part of the preprocessing should be.

    Don't know if your comments scanner bothers to check for /* */ comments after the backslash, but it should be easy to implement. And you don't have to worry about the C++ style // comments after a backslash, because afaik they aren't legal to use in this syntax anyway and the compiler will complain about it.

    ok going to bed. bbl
    My philosophy is: If you can use a free, open-source alternative: do it. And if you can't, pretend it's free and open-source and hope you don't get caught.

  14. #14
    Join Date
    Jan 2006
    Posts
    371
    Thanks
    14
    Thanked 18 Times in 17 Posts
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Default Re: [DevQt] New versions, feature requests and bug reports

    Not really a new release... but...

    I have opened a site on berlios for this project. FMC and a few others already have write access to the SVN.

    I would like to try the berlios forums for development communication, but IMHO, they are just lame. We will try it for a while, and if it does not work, we can still abuse this site (thanks!)

    The site for this project is available at:
    http://devqt.berlios.de/

    We already have some downloads, check the download link on that site.

    The development forum is at:
    http://developer.berlios.de/forum/fo...forum_id=18460

    Thanks for all that have been helping us with this project!

  15. #15
    Join Date
    Feb 2006
    Posts
    209
    Thanks
    13
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Default Re: [DevQt] New versions, feature requests and bug reports

    I downloarded the 0.1.0.zip and compiled.
    This is the result on my linux qt 4.1 machine when trying to run it.

    Qt Code:
    1. $ ./devqt
    2. Segmentation fault
    To copy to clipboard, switch view to plain text mode 

    Dang!

  16. #16
    Join Date
    Jan 2006
    Location
    travelling
    Posts
    1,116
    Thanks
    8
    Thanked 127 Times in 121 Posts
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Default Re: [DevQt] New versions, feature requests and bug reports

    Quote Originally Posted by Morea
    I downloarded the 0.1.0.zip and compiled.
    This is the result on my linux qt 4.1 machine when trying to run it.

    Qt Code:
    1. $ ./devqt
    2. Segmentation fault
    To copy to clipboard, switch view to plain text mode 

    Dang!
    Wysota has already explained how to get rid of that AFAIK.

    The embarrassing stuff pointed out by that stupid bug is that Qt doesn't behave the same on every system : on my Athlon 1,4GHz, 512Mb SDRAM, GeForce 2 MX400, Win ME (I know my config sucks but that's not the point!) no bug occured.

    Anyway it has been removed but, I'm damn sorry, I can't post the last version here because the zipfile is 150kb while the limits set by the admins is 100kb!!!
    So, if you want to keep updated you've got to visit http://devqt.berlios.de

    Due to my 56kb internet connection and the troubles I get building an SVN client I can't post the code on my own so you also have to wait for elcuco doing it (I seny him the source a few minutes ago...)
    Current Qt projects : QCodeEdit, RotiDeCode

  17. The following 2 users say thank you to fullmetalcoder for this useful post:

    incapacitant (2nd March 2006), Morea (24th February 2006)

  18. #17
    Join Date
    Jan 2006
    Location
    Curitiba - Brazil
    Posts
    23
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Default Re: new highlighter

    Quote Originally Posted by michel
    It depends. I also made a syntax highlighter using regexp strings for practice (I don't know regexp very well and needed an excuse to learn it) with a text editor I made in Qt3 when I first began to learn the library, and when typing code in manually or opening from a file there is no noticable difference in human time from the one I made using while loops and if-else statements. The only trouble is if you be evil and copy a large amount of code into the clipboard and then hold down the Ctrl+V keys for about ten seconds to paste it all over and over again a lot. Then the program freezes for about fifteen seconds before displaying anything DDD. Probably for formatting a large input filestream the difference isn't so bad (so it depends if you want easy-to-read code from using the regexp or two hundred lines of loops and if statements--look at devqt's code for highlighting, for example, it works but it's a mess--whereas my regexp highlighter practice was maybe twenty lines, and if there was something wrong with how it was reading it I could just edit the string holding the pattern instead of weaving through all the branches) but for real-time highlighting of keyboard input the lexical analyzation is definitely the way to go. You know, it's funny. Such an awful lot of work for what seems like such a trivial feature of the IDE. You practically have to write half a C++ compiler just to pretty print the code. I'm having similar issues with another project I am working on in my spare time. It is a frontend for editing qmake files. It is no problem when the project file is straightforward, but now I have two lexical analyzers to make. One is to reimplement my syntax highlighter for the scripting style used by qmake (one of the tabs lets you edit the raw file instead of using the interface), the other is to handle all of the nesting and scopes within the project file and display the hierarchies correctly in the frontend's widgets. The first is much much easier (for me, at least) than the second.
    Ok, as I'm creating a new editor for C++ codes too, I do a lot of tests between RegExp and Lexical aproachs, let me share here what I discovery:

    With RegExp proach what the QSyntaxHinghlighter do is to take every RegExp and see if the actual line matches to it, if match, coloring if not, pass to the next RegExp and check the entire text again, no mather if it founds any parts before.

    As you can see, a lexical aproach avoid unnecessary check to the actual text and is that the reason that your code freezes a little when you paste a lot of text, and has more, if you had about 10Kloc to highlight (what is not unusual) if your editor has to repaind the entire screen, the highlight with RegExp will make your editor unusable.
    Well, at least to me the beneficies of lexical aproach justify the hard work to implement it!
    --
    Thiago dos Santos Alves
    Computer Scientist

    thiago.salves@gmail.com
    -----------------------------------------------------
    "A mind that opens to a new idea never gets its original size again."
    - Albert Einstein

  19. #18
    Join Date
    Feb 2006
    Location
    Österreich
    Posts
    35
    Qt products
    Qt3 Qt4
    Platforms
    Unix/X11

    Default Re: Bumblebees on the road again!

    Quote Originally Posted by jamadagni
    1. Why don't you declare it as MyPushButton *b = new MyPushButton(); ?
    QPushbutton *b = new MyPushButton(); creates a new QPushbutton called b and assigns it a pointer to memory containing an instance of MyPushButton(). But now it is also possible later to change b to point to an instance of MyOtherPushButton or any other subclass of QPushButton.

    If you were to try

    Qt Code:
    1. MyPushButton *b = new MyPushButton();
    To copy to clipboard, switch view to plain text mode 

    and then later

    Qt Code:
    1. b = new MyOtherPushButton();
    To copy to clipboard, switch view to plain text mode 

    you would get an "invalid conversion from type x to type y" error. The way you are wanting to write it is fine for most things. But to say the IDE must autocomplete this type of statement would be for it to make unnecessary guesses and handholding for the programmer.
    My philosophy is: If you can use a free, open-source alternative: do it. And if you can't, pretend it's free and open-source and hope you don't get caught.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Qt is a trademark of The Qt Company.