Suggestion in Qt Creator content assist for QScopedPointer
-
I don't really like converting the . to a -> for cases where the . would be a valid operator. What would be cool, is if Qt Creator would change the . into a -> if you start typing method names that are not available for the . operator, but are for the -> operator. So, to follow the example given, as soon as you start typing the 'h' for horizontal, the . would be changed for a -> as there is no method starting with a h in QScopedPointer itself. However, if you are calling the resizeColumnsToContents() method, that would only happen on when you type the 'i', as before that you could have been typing reset() as well, which exists for the . operator.
-
Yes that would be nice, but we prefer the IDE to be fast, so that we can write code in it, not to look at the "stars" and perform God knows what "calculations" to replace my operators.
//sorry for my little sarcasm ;-)
Guys, we are all programmers, actually i'm not (but i want to become one), so we are programmers that means we know what we want to call and we know if what we call is member of the "smart" pointer or is member of the object pointed to... it not that complicated, and it's not where most of the typing for an application goes...
And that's the beauty and power of C++: you are "in command", you got to know what are you doing, even if Qt simplifies things like memory management, Qt still relies on the strengths and weaknesses of the C++ programming language.The Trolls did that replacement for "dump" pointers, and it's ok***, since they are "dump" and don't have member functions, but for smart-pointers this would be unnecessary, my opinion.
I like Creator because it's simple and fast, i like VS2010 IDE, but that is slow... and not to mention that Intelisense was the name of the functionality that freeze your IDE to help you write code...
//sarcasm again, Intellisense is not that bad if it's not exaggerated with a lot of unnecessary features.***i still consider it "not-so-good" because it might encourage people to confuse pointer with object
-
Well written, Zlatomir. It's exactly the point. And while I really do like the . to -> conversion on plain old pointers, I would argue against it for smart pointers. I would not like it to be changed afterwards (from xyz.hori to xyz->hori) because I do not like that code, that my cursor is not on, is changed automatically.
[EDIT: fixed Textile markup]
-
Well, if somebody really wants this, then please file a feature request in our "issue tracker":http://bugreports.qt.nokia.com/.
It will be forgotten when it stays in the forums.
-
[quote author="Tobias Hunger" date="1294074762"]Well, if somebody really wants this, then please file a feature request in our "issue tracker":http://bugreports.qt.nokia.com/.
It will be forgotten when it stays in the forums.[/quote]
That has already been done: "QTBUG-16391":http://bugreports.qt.nokia.com/browse/QTBUG-16391, unfortunately not in the Qt Creator project of the tracker, but some of the Trolls will move it?
-
[quote author="Volker" date="1294062364"]Well written, Zlatomir. It's exactly the point. And while I really do like the . to -> conversion on plain old pointers, I would argue against it for smart pointers. I would not like it to be changed afterwards (from xyz.hori to xyz->hori) because I do not like that code, that my cursor is not on, is changed automatically.
[EDIT: fixed Textile markup][/quote]
You don't really need a feature like this -- you could use ed after all. Just kidding. I would like the feature and I'm sure it would do no harm. It might change code your cursor is not on, that's true. And I agree that this is in general a bad idea. But it is also true, that the code it changes is 4 characters left of your cursor, so no problem here.
I don't miss this feature though and their are improvements that would have a bigger impact on the ways we develop our applications. Maybe this "this":http://developer.qt.nokia.com/forums/viewthread/795/ combined with model checker :-)
-
You do realize that my_object pointed by an QScopedPointer can have, for example, a reset(...) member function?
In the situation described above... if i write ptr.reset() witch reset do i want to call? the member of the pointer or the one member of my_object?This leads to confusion, those two are two different operators and they should remain two different operators (like this two: * and + from the "sarcasm" example) and you as the programmer should decide which one do you need... and use that one.
-
[quote author="Zlatomir" date="1294092791"]//sarcasm on
Hey, i would really like a feature like this:
if i have two ints like: int x,y;
if i write: x*y;
i want Creator to decide (form the position of the Sun related to Northern Star) if i really want multiply or addition and if i wanted the result saved in a file or send over the network... or send an e-mail to my boss saying: "I quit my job!!!"Can i get the feature described above??? pleaseeee.... or at least Creator could do is guess what application i need and write it for me...
//sarcasm off
You do realize that my_object pointed by an QScopedPointer can have, for example, a reset(...) member function?
In the situation described above... if i write ptr.reset() witch reset do i want to call? the member of the pointer or the one member of my_object?This leads to confusion, those two are two different operators and they should remain two different operators (like this two: * and + from the "sarcasm" example) and you as the programmer should decide which one do you need... and use that one. [/quote]
Thats a bit of sarcasm overdose don't you think? Was that required here?
Please read all the above comments in this thread before you comment again. The problems which you are talking about are already talked about.
-
If i offended someone, i apologize.
I have read the topic, if you look at the names who answered you will see that i was the first guy that answered and also offered "technical" arguments of why this is not a good idea, and about the sarcasm, again sorry it wasn't meant to offend anyone.
Also the argument with member function with same signature as the another member function of the smart-pointer wasn't said before my previous post.
And the second idea you got also can have unwanted consequences for those using pointer arithmetic (the idea with - after pointerName)Also the "arrow" operator: ptrName->member is already a replacement for the longer version: (*ptrName).member
Again sorry, because you feel offended, the sarcasm was not meant to offend you, was meant to prove you that two different operators are needed to remain different and this is not a good idea.
Please don't feel offended, just read the arguments against your idea and understand what we are trying to say.
LE: i have deleted the sarcasm part from my previous post, because you obviously was offended by it
-
[quote author="Ashwin Das" date="1294104294"]
[quote author="Zlatomir" date="1294092791"]//sarcasm on
Can i get the feature described above??? pleaseeee.... or at least Creator could do is guess what application i need and write it for me...//sarcasm off
This leads to confusion, those two are two different operators and they should remain two different operators (like this two: * and + from the "sarcasm" example) and you as the programmer should decide which one do you need... and use that one. [/quote]
Thats a bit of sarcasm overdose don't you think? Was that required here? ...
[/quote]
No, it was not overdone. It was exactly to the point. The suggested feature does not significantly reduce the amount of typing. Moreover, it is obviously wrong in some cases and will most notably hurt people who are typing properly.
There is nothing wrong with wasting time discussing such a proposal here, but what really puts me off is that people suggest to file this as feature request on the official bugtracker since this only wastes some developer's time to close it as "Invalid" or "Out of scope". This is not helpful.
-
[quote author="Duck" date="1294484959"]There is nothing wrong with wasting time discussing such a proposal here, but what really puts me off is that people suggest to file this as feature request on the official bugtracker since this only wastes some developer's time to close it as "Invalid" or "Out of scope". This is not helpful.
[/quote]Tobias, the guy that requested the bug report, is actually one of the developers of Qt Creator at Nokia. I'm quite sure he's not yelling for unneeded work. And being in the bug tracker and closed immediately is not a bad thing! At least it is documented publicly that something was discussed, but will not be implemented.
-
Another problem would be if you create a QScopedPointer of a class that has a reset() function already:
@
class MyClass() {
void reset();
}...
QScopedPointer<MyClass> ptr;
ptr.reset();
ptr->reset(); // these are different things, QtC would be confused ;-)
@ -
[quote author="droetker" date="1357276914"]Another problem would be if you create a QScopedPointer of a class that has a reset() function already:
@
class MyClass() {
void reset();
}...
QScopedPointer<MyClass> ptr;
ptr.reset();
ptr->reset(); // these are different things, QtC would be confused ;-)
@[/quote]That was already said "here":/forums/viewreply/18726/ almost a year ago...