Switch to side-by-side view

--- a/src/qtgui/ssearch_w.cpp
+++ b/src/qtgui/ssearch_w.cpp
@@ -1,5 +1,5 @@
 #ifndef lint
-static char rcsid[] = "@(#$Id: ssearch_w.cpp,v 1.20 2007-02-06 10:19:40 dockes Exp $ (C) 2006 J.F.Dockes";
+static char rcsid[] = "@(#$Id: ssearch_w.cpp,v 1.21 2007-06-12 10:33:48 dockes Exp $ (C) 2006 J.F.Dockes";
 #endif
 /*
  *   This program is free software; you can redistribute it and/or modify
@@ -56,7 +56,11 @@
 	    queryText->lineEdit(), SLOT(clear()));
     connect(searchPB, SIGNAL(clicked()), this, SLOT(startSimpleSearch()));
 
+#if QT_VERSION >= 0x040000
+    queryText->installEventFilter(this);
+#else
     queryText->lineEdit()->installEventFilter(this);
+#endif
     m_escape = false;
 }
 
@@ -248,12 +252,247 @@
     }
 }
 
+#undef SHOWEVENTS
+#if defined(SHOWEVENTS)
+#if QT_VERSION < 0x040000
+static const char *eventTypeToStr(int tp)
+{
+    switch (tp) {
+    case 0: return "None";
+    case 1: return "Timer";
+    case 2: return "MouseButtonPress";
+    case 3: return "MouseButtonRelease";
+    case 4: return "MouseButtonDblClick";
+    case 5: return "MouseMove";
+    case 6: return "KeyPress";
+    case 7: return "KeyRelease";
+    case 8: return "FocusIn";
+    case 9: return "FocusOut";
+    case 10: return "Enter";
+    case 11: return "Leave";
+    case 12: return "Paint";
+    case 13: return "Move";
+    case 14: return "Resize";
+    case 15: return "Create";
+    case 16: return "Destroy";
+    case 17: return "Show";
+    case 18: return "Hide";
+    case 19: return "Close";
+    case 20: return "Quit";
+    case 21: return "Reparent";
+    case 22: return "ShowMinimized";
+    case 23: return "ShowNormal";
+    case 24: return "WindowActivate";
+    case 25: return "WindowDeactivate";
+    case 26: return "ShowToParent";
+    case 27: return "HideToParent";
+    case 28: return "ShowMaximized";
+    case 29: return "ShowFullScreen";
+    case 30: return "Accel";
+    case 31: return "Wheel";
+    case 32: return "AccelAvailable";
+    case 33: return "CaptionChange";
+    case 34: return "IconChange";
+    case 35: return "ParentFontChange";
+    case 36: return "ApplicationFontChange";
+    case 37: return "ParentPaletteChange";
+    case 38: return "ApplicationPaletteChange";
+    case 39: return "PaletteChange";
+    case 40: return "Clipboard";
+    case 42: return "Speech";
+    case 50: return "SockAct";
+    case 51: return "AccelOverride";
+    case 52: return "DeferredDelete";
+    case 60: return "DragEnter";
+    case 61: return "DragMove";
+    case 62: return "DragLeave";
+    case 63: return "Drop";
+    case 64: return "DragResponse";
+    case 70: return "ChildInserted";
+    case 71: return "ChildRemoved";
+    case 72: return "LayoutHint";
+    case 73: return "ShowWindowRequest";
+    case 74: return "WindowBlocked";
+    case 75: return "WindowUnblocked";
+    case 80: return "ActivateControl";
+    case 81: return "DeactivateControl";
+    case 82: return "ContextMenu";
+    case 83: return "IMStart";
+    case 84: return "IMCompose";
+    case 85: return "IMEnd";
+    case 86: return "Accessibility";
+    case 87: return "TabletMove";
+    case 88: return "LocaleChange";
+    case 89: return "LanguageChange";
+    case 90: return "LayoutDirectionChange";
+    case 91: return "Style";
+    case 92: return "TabletPress";
+    case 93: return "TabletRelease";
+    case 94: return "OkRequest";
+    case 95: return "HelpRequest";
+    case 96: return "WindowStateChange";
+    case 97: return "IconDrag";
+    case 1000: return "User";
+    case 65535: return "MaxUser";
+    default: return "Unknown";
+    }
+}
+#else
+static const char *eventTypeToStr(int tp)
+{
+    switch (tp) {
+    case  0: return "None";
+    case  1: return "Timer";
+    case  2: return "MouseButtonPress";
+    case  3: return "MouseButtonRelease";
+    case  4: return "MouseButtonDblClick";
+    case  5: return "MouseMove";
+    case  6: return "KeyPress";
+    case  7: return "KeyRelease";
+    case  8: return "FocusIn";
+    case  9: return "FocusOut";
+    case  10: return "Enter";
+    case  11: return "Leave";
+    case  12: return "Paint";
+    case  13: return "Move";
+    case  14: return "Resize";
+    case  15: return "Create";
+    case  16: return "Destroy";
+    case  17: return "Show";
+    case  18: return "Hide";
+    case  19: return "Close";
+    case  20: return "Quit";
+    case  21: return "ParentChange";
+    case  131: return "ParentAboutToChange";
+    case  22: return "ThreadChange";
+    case  24: return "WindowActivate";
+    case  25: return "WindowDeactivate";
+    case  26: return "ShowToParent";
+    case  27: return "HideToParent";
+    case  31: return "Wheel";
+    case  33: return "WindowTitleChange";
+    case  34: return "WindowIconChange";
+    case  35: return "ApplicationWindowIconChange";
+    case  36: return "ApplicationFontChange";
+    case  37: return "ApplicationLayoutDirectionChange";
+    case  38: return "ApplicationPaletteChange";
+    case  39: return "PaletteChange";
+    case  40: return "Clipboard";
+    case  42: return "Speech";
+    case   43: return "MetaCall";
+    case  50: return "SockAct";
+    case  132: return "WinEventAct";
+    case  52: return "DeferredDelete";
+    case  60: return "DragEnter";
+    case  61: return "DragMove";
+    case  62: return "DragLeave";
+    case  63: return "Drop";
+    case  64: return "DragResponse";
+    case  68: return "ChildAdded";
+    case  69: return "ChildPolished";
+    case  70: return "ChildInserted";
+    case  72: return "LayoutHint";
+    case  71: return "ChildRemoved";
+    case  73: return "ShowWindowRequest";
+    case  74: return "PolishRequest";
+    case  75: return "Polish";
+    case  76: return "LayoutRequest";
+    case  77: return "UpdateRequest";
+    case  78: return "UpdateLater";
+    case  79: return "EmbeddingControl";
+    case  80: return "ActivateControl";
+    case  81: return "DeactivateControl";
+    case  82: return "ContextMenu";
+    case  83: return "InputMethod";
+    case  86: return "AccessibilityPrepare";
+    case  87: return "TabletMove";
+    case  88: return "LocaleChange";
+    case  89: return "LanguageChange";
+    case  90: return "LayoutDirectionChange";
+    case  91: return "Style";
+    case  92: return "TabletPress";
+    case  93: return "TabletRelease";
+    case  94: return "OkRequest";
+    case  95: return "HelpRequest";
+    case  96: return "IconDrag";
+    case  97: return "FontChange";
+    case  98: return "EnabledChange";
+    case  99: return "ActivationChange";
+    case  100: return "StyleChange";
+    case  101: return "IconTextChange";
+    case  102: return "ModifiedChange";
+    case  109: return "MouseTrackingChange";
+    case  103: return "WindowBlocked";
+    case  104: return "WindowUnblocked";
+    case  105: return "WindowStateChange";
+    case  110: return "ToolTip";
+    case  111: return "WhatsThis";
+    case  112: return "StatusTip";
+    case  113: return "ActionChanged";
+    case  114: return "ActionAdded";
+    case  115: return "ActionRemoved";
+    case  116: return "FileOpen";
+    case  117: return "Shortcut";
+    case  51: return "ShortcutOverride";
+    case  30: return "Accel";
+    case  32: return "AccelAvailable";
+    case  118: return "WhatsThisClicked";
+    case  120: return "ToolBarChange";
+    case  121: return "ApplicationActivated";
+    case  122: return "ApplicationDeactivated";
+    case  123: return "QueryWhatsThis";
+    case  124: return "EnterWhatsThisMode";
+    case  125: return "LeaveWhatsThisMode";
+    case  126: return "ZOrderChange";
+    case  127: return "HoverEnter";
+    case  128: return "HoverLeave";
+    case  129: return "HoverMove";
+    case  119: return "AccessibilityHelp";
+    case  130: return "AccessibilityDescription";
+    case  150: return "EnterEditFocus";
+    case  151: return "LeaveEditFocus";
+    case  152: return "AcceptDropsChange";
+    case  153: return "MenubarUpdated";
+    case  154: return "ZeroTimerEvent";
+    case  155: return "GraphicsSceneMouseMove";
+    case  156: return "GraphicsSceneMousePress";
+    case  157: return "GraphicsSceneMouseRelease";
+    case  158: return "GraphicsSceneMouseDoubleClick";
+    case  159: return "GraphicsSceneContextMenu";
+    case  160: return "GraphicsSceneHoverEnter";
+    case  161: return "GraphicsSceneHoverMove";
+    case  162: return "GraphicsSceneHoverLeave";
+    case  163: return "GraphicsSceneHelp";
+    case  164: return "GraphicsSceneDragEnter";
+    case  165: return "GraphicsSceneDragMove";
+    case  166: return "GraphicsSceneDragLeave";
+    case  167: return "GraphicsSceneDrop";
+    case  168: return "GraphicsSceneWheel";
+    case  169: return "KeyboardLayoutChange";
+    case  170: return "DynamicPropertyChange";
+    case  171: return "TabletEnterProximity";
+    case  172: return "TabletLeaveProximity";
+    default: return "UnknownEvent";
+    }
+}
+#endif
+#endif
 
 bool SSearch::eventFilter(QObject *target, QEvent *event)
 {
+#if defined(SHOWEVENTS)
+    if (event->type() == QEvent::Timer || 
+	event->type() == QEvent::UpdateRequest ||
+	event->type() == QEvent::Paint)
+	return false;
+    LOGDEB2(("SSearch::eventFilter: target %p (%p) type %s\n", 
+	    target, queryText->lineEdit(),
+	    eventTypeToStr(event->type())));
+#endif
+
     if (event->type() == QEvent::KeyPress)  {
 	QKeyEvent *ke = (QKeyEvent *)event;
-	LOGDEB1(("SSearch::eventFilter: keyPress escape %d key %d\n", 
+	LOGDEB1(("SSearch::eventFilter: keyPress (m_escape %d) key %d\n", 
 		 m_escape, ke->key()));
 	if (ke->key() == Qt::Key_Escape) {
 	    LOGDEB(("Escape\n"));
@@ -271,5 +510,5 @@
 	}
 	m_escape = false;
     }
-    return QWidget::eventFilter(target, event);
-}
+    return false;
+}