Source Code (Use browser search to find items of interest.)
Class Index
knotes'KPostitMultilineEdit (./kdeutils/knotes/knotes.h:85)
class KPostitMultilineEdit: public QMultiLineEdit{
Q_OBJECT
public:
KPostitMultilineEdit(QWidget *parent=0, const char *wname=0);
bool autoIndentMode;
int autoIndentID;
protected:
void dragMoveEvent(QDragMoveEvent* event);
void dragEnterEvent(QDragEnterEvent* event);
void dropEvent(QDropEvent* event);
void mouseDoubleClickEvent ( QMouseEvent * e );
void keyPressEvent(QKeyEvent *e);
void mynewLine();
private:
QString prefixString(QString string);
signals:
void gotUrlDrop(const char* url);
};
knotes'KPostitMultilineEdit::KPostitMultilineEdit() (./kdeutils/knotes/knotes.cpp:110)
KPostitMultilineEdit::KPostitMultilineEdit(QWidget *parent, const char *myname)
: QMultiLineEdit(parent, myname){
setAcceptDrops(TRUE);
}
knotes'KPostitMultilineEdit::keyPressEvent() (./kdeutils/knotes/knotes.cpp:116)
void KPostitMultilineEdit::keyPressEvent(QKeyEvent *e){
if (e->key() == Key_Tab) {
int line, col;
cursorPosition(&line, &col);
QMultiLineEdit::insertAt("\t", line, col);
}
if(e->key() == Key_Return || e->key() == Key_Enter){
mynewLine();
return;
}
QMultiLineEdit::keyPressEvent(e);
}
knotes'KPostitMultilineEdit::mouseDoubleClickEvent() (./kdeutils/knotes/knotes.cpp:134)
void KPostitMultilineEdit::mouseDoubleClickEvent ( QMouseEvent * e ){
QMultiLineEdit::mouseDoubleClickEvent(e);
int line, column = 0;
getCursorPosition(&line,&column);
QString text = markedText();
// printf("%d %d %s\n",line,column,text.ascii());
if (text.isEmpty())
return;
KURL kurl(text);
if (kurl.isMalformed())
return;
(void) new KRun ( text );
}
knotes'KPostitMultilineEdit::mynewLine() (./kdeutils/knotes/knotes.cpp:156)
void KPostitMultilineEdit::mynewLine(){
if (isReadOnly())
return;
if(!autoIndentMode){
newLine();
return;
}
int line,col;
bool found_one = false;
getCursorPosition(&line,&col);
QString string, string2;
while(line >= 0){
string = textLine(line);
string2 = string.stripWhiteSpace();
if(!string2.isEmpty()){
string = prefixString(string);
found_one = TRUE;
break;
}
line --;
}
// string will now contain those whitespace characters that I need to insert
// on the next line.
if(found_one){
// don't ask my why I programmed it this way. I am quite sick of the Qt 1.2
// MultiLineWidget -- It is anoyingly buggy.
// I have to put in obscure workarounds all over the place.
knotes'KPostitMultilineEdit::prefixString() (./kdeutils/knotes/knotes.cpp:225)
QString KPostitMultilineEdit::prefixString(QString string){
// This routine returns the whitespace before the first non white space
// character in string. This is used in mynewLine() for indent mode.
// It is assumed that string contains at least one non whitespace character
// ie \n \r \t \v \f and space
QString returnstring;
int len = string.length();
int i = 0;
while(i < len && string.at(i).isSpace())
returnstring += string.at(i++);
return returnstring;
}
knotes'KPostitMultilineEdit::dragEnterEvent() (./kdeutils/knotes/knotes.cpp:245)
void KPostitMultilineEdit::dragEnterEvent( QDragEnterEvent* event )
{
event->accept(QUrlDrag::canDecode(event) || QTextDrag::canDecode(event));
}
knotes'KPostitMultilineEdit::dragMoveEvent() (./kdeutils/knotes/knotes.cpp:251)
void KPostitMultilineEdit::dragMoveEvent( QDragMoveEvent* event )
{
if( QUrlDrag::canDecode(event) )
{
event->accept();
}
else if ( QTextDrag::canDecode(event) )
{
QMultiLineEdit::dragMoveEvent(event);
}
}
knotes'KPostitMultilineEdit::dropEvent() (./kdeutils/knotes/knotes.cpp:264)
void KPostitMultilineEdit::dropEvent( QDropEvent* event )
{
QStringList list;
if ( QUrlDrag::decodeToUnicodeUris( event, list ) )
{
emit gotUrlDrop(list.first() );
}
else if ( QTextDrag::canDecode( event ) )
{
QMultiLineEdit::dropEvent( event );
}
}