summaryrefslogtreecommitdiffabout
authorulf69 <ulf69>2004-10-28 00:07:51 (UTC)
committer ulf69 <ulf69>2004-10-28 00:07:51 (UTC)
commit0766b449ccdcc125c18c401d87cc51c277464728 (patch) (side-by-side diff)
tree5279c7c3f441f448ecb82f1400439e4a7498dde3
parent5afbc6ae0908ce12fd5abb1c4eadf9c61a01503c (diff)
downloadkdepimpi-0766b449ccdcc125c18c401d87cc51c277464728.zip
kdepimpi-0766b449ccdcc125c18c401d87cc51c277464728.tar.gz
kdepimpi-0766b449ccdcc125c18c401d87cc51c277464728.tar.bz2
bugfix: KListView did not recognize singleclicks
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--microkde/kdeui/klistview.cpp86
-rw-r--r--microkde/kdeui/klistview.h7
2 files changed, 64 insertions, 29 deletions
diff --git a/microkde/kdeui/klistview.cpp b/microkde/kdeui/klistview.cpp
index 3c809b4..32483bb 100644
--- a/microkde/kdeui/klistview.cpp
+++ b/microkde/kdeui/klistview.cpp
@@ -516,8 +516,30 @@ void KListView::slotSettingsChanged(int category)
{
//qDebug("KListView::slotSettingsChanged has to be verified");
-/*US
+
switch (category)
{
+ //US I create my private category (=1) to set the settings
+ case 1:
+ d->dragDelay = 2;
+ //US set explicitly d->bUseSingle = KGlobalSettings::singleClick();
+ qDebug("KListView::slotSettingsChanged: single%i", d->bUseSingle);
+
+ disconnect(this, SIGNAL (mouseButtonClicked (int, QListViewItem*, const QPoint &, int)),
+ this, SLOT (slotMouseButtonClicked (int, QListViewItem*, const QPoint &, int)));
+
+ if( d->bUseSingle )
+ connect (this, SIGNAL (mouseButtonClicked (int, QListViewItem*, const QPoint &, int)),
+ this, SLOT (slotMouseButtonClicked( int, QListViewItem*, const QPoint &, int)));
+
+ //US d->bChangeCursorOverItem = KGlobalSettings::changeCursorOverIcon();
+ //US d->autoSelectDelay = KGlobalSettings::autoSelectDelay();
+
+ if( !d->bUseSingle || !d->bChangeCursorOverItem )
+ viewport()->unsetCursor();
+
+ break;
+
+ /*US
case KApplication::SETTINGS_MOUSE:
d->dragDelay = KGlobalSettings::dndEventDelay();
@@ -538,5 +560,4 @@ void KListView::slotSettingsChanged(int category)
break;
-
case KApplication::SETTINGS_POPUPMENU:
d->contextMenuKey = KGlobalSettings::contextMenuKey ();
@@ -558,13 +579,9 @@ void KListView::slotSettingsChanged(int category)
}
break;
+ */
default:
break;
}
-*/
-
- if( d->bUseSingle )
- connect (this, SIGNAL (mouseButtonClicked (int, QListViewItem*, const QPoint &, int)),
- this, SLOT (slotMouseButtonClicked( int, QListViewItem*, const QPoint &, int)));
}
@@ -659,6 +676,7 @@ void KListView::slotHeaderChanged()
}
-void KListView::emitExecute( QListViewItem *item, const QPoint &pos, int c )
+void KListView::emitExecute( int buttonstate, QListViewItem *item, const QPoint &pos, int c)
{
+ // qDebug("KListView::emitExecute buttonstate=%i", buttonstate);
if( isExecuteArea( viewport()->mapFromGlobal(pos) ) ) {
@@ -671,23 +689,14 @@ void KListView::emitExecute( QListViewItem *item, const QPoint &pos, int c )
else
{
-#if 0
-#ifndef Q_WS_QWS
- // FIXME(E): Implement for Qt Embedded
- Window root;
- Window child;
- int root_x, root_y, win_x, win_y;
- uint keybstate;
- XQueryPointer( qt_xdisplay(), qt_xrootwin(), &root, &child,
- &root_x, &root_y, &win_x, &win_y, &keybstate );
-
+ //US special implementation for embedded systems
d->autoSelect.stop();
//Dont emit executed if in SC mode and Shift or Ctrl are pressed
- if( !( ((keybstate & ShiftMask) || (keybstate & ControlMask)) ) ) {
+ if( !( (buttonstate==ShiftButton) || (buttonstate==ControlButton) )) {
+ // if( !( ((keybstate & ShiftMask) || (keybstate & ControlMask)) ) ) {
+
emit executed( item );
emit executed( item, pos, c );
}
-#endif
-#endif
}
}
@@ -743,5 +752,5 @@ bool KListView::event( QEvent *e )
{
if (e->type() == QEvent::ApplicationPaletteChange) {
-qDebug("KListView::event make alternate color configurable");
+ //qDebug("KListView::event make alternate color configurable");
//US d->alternateBackground=KGlobalSettings::alternateBackgroundColor();
d->alternateBackground = QColor(240, 240, 240);
@@ -753,4 +762,5 @@ qDebug("KListView::event make alternate color configurable");
void KListView::contentsMousePressEvent( QMouseEvent *e )
{
+ //qDebug("KListView::contentsMousePressEvent");
if( (selectionModeExt() == Extended) && (e->state() & ShiftButton) && !(e->state() & ControlButton) )
{
@@ -816,5 +826,5 @@ void KListView::contentsMouseMoveEvent( QMouseEvent *e )
{
d->cursorInExecuteArea = isExecuteArea(vp);
-qDebug("KListView::contentsMouseMoveEvent drag&drop not supported yet");
+ //qDebug("KListView::contentsMouseMoveEvent drag&drop not supported yet");
/*US
if( d->cursorInExecuteArea ) //cursor moved in execute area
@@ -877,4 +887,5 @@ void KListView::contentsMouseReleaseEvent( QMouseEvent *e )
void KListView::contentsMouseDoubleClickEvent ( QMouseEvent *e )
{
+ //qDebug("KListView::contentsMouseDoubleClickEvent");
// We don't want to call the parent method because it does setOpen,
// whereas we don't do it in single click mode... (David)
@@ -888,8 +899,13 @@ void KListView::contentsMouseDoubleClickEvent ( QMouseEvent *e )
if( item ) {
+ //qDebug("KListView::contentsMouseDoubleClickEvent: emit doubleClicked");
+
emit doubleClicked( item, e->globalPos(), col );
- if( (e->button() == LeftButton) && !d->bUseSingle )
- emitExecute( item, e->globalPos(), col );
+ if( (e->button() == LeftButton) && !d->bUseSingle ) {
+ //qDebug("KListView::contentsMouseDoubleClickEvent: emitExecute");
+
+ emitExecute( e->button(), item, e->globalPos(), col);
+ }
}
}
@@ -897,6 +913,11 @@ void KListView::contentsMouseDoubleClickEvent ( QMouseEvent *e )
void KListView::slotMouseButtonClicked( int btn, QListViewItem *item, const QPoint &pos, int c )
{
- if( (btn == LeftButton) && item )
- emitExecute(item, pos, c);
+ //qDebug("KListView::slotMouseButtonClicked");
+
+ if( (btn == LeftButton) && item ) {
+ //qDebug("KListView::slotMouseButtonClicked: emitExecute");
+
+ emitExecute(btn, item, pos, c);
+ }
}
@@ -1889,5 +1910,5 @@ void KListView::emitContextMenu (KListView*, QListViewItem* i)
void KListView::emitContextMenu (QListViewItem* i, const QPoint& p, int col)
{
- qDebug("KListView::emitContextMenu col");
+ // qDebug("KListView::emitContextMenu col");
emit contextRequest( i, p, col );
emit contextMenu (this, i, p);
@@ -2183,4 +2204,13 @@ void KListViewItem::paintCell(QPainter *p, const QColorGroup &cg, int column, in
}
+//US we do not have a "global KDE" variable to setup singleClick functionality
+void KListView::setSingleClick(bool s)
+{
+ d->bUseSingle = s;
+ slotSettingsChanged(1);
+ // qDebug("KListView::setSingleClick: single %i", d->bUseSingle);
+}
+
+
void KListView::virtual_hook( int, void* )
{ /*BASE::virtual_hook( id, data );*/ }
diff --git a/microkde/kdeui/klistview.h b/microkde/kdeui/klistview.h
index 8d933f6..d559ce7 100644
--- a/microkde/kdeui/klistview.h
+++ b/microkde/kdeui/klistview.h
@@ -373,4 +373,8 @@ public:
bool ascendingSort(void) const;
+ //US we do not have a "global KDE" variable to setup singleClick functionality
+ void setSingleClick(bool s);
+
+
signals:
@@ -684,5 +688,6 @@ protected:
* @internal
*/
- void emitExecute( QListViewItem *item, const QPoint &pos, int c );
+ //US I added buttonstate to pass the current keyboard status
+ void emitExecute( int buttonstate, QListViewItem *item, const QPoint &pos, int c);
/**