Changeset 77


Ignore:
Timestamp:
Apr 2, 2006, 12:41:47 AM (19 years ago)
Author:
dmik
Message:

Implemented the OS/2 version of the QSessionManager class (see ticket:15 for more details); QT_NO_SESSIONMANAGER is no more defined by default.

Location:
trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/.qtos2defines

    r8 r77  
    55DEFINES *= \
    66        QT_NO_DRAGANDDROP \
    7         QT_NO_SESSIONMANAGER \
    87        QT_NO_PRINTER
    98
  • trunk/src/kernel/qapplication.cpp

    r8 r77  
    43954395 *****************************************************************************/
    43964396#ifndef QT_NO_SESSIONMANAGER
    4397 #if defined( QT_NO_SM_SUPPORT ) || defined( Q_WS_WIN ) || defined( Q_WS_MAC ) || defined( Q_WS_QWS )
     4397#if defined( QT_NO_SM_SUPPORT ) || defined( Q_WS_WIN ) || defined( Q_WS_MAC ) || defined( Q_WS_QWS ) || defined( Q_WS_PM )
    43984398
    43994399class QSessionManagerData
     
    44524452#endif
    44534453
    4454 #if !defined(Q_WS_WIN)
     4454#if !defined(Q_WS_WIN) && !defined(Q_WS_PM)
    44554455bool QSessionManager::allowsInteraction()
    44564456{
  • trunk/src/kernel/qapplication_pm.cpp

    r64 r77  
    5151#include "qpixmapcache.h"
    5252#include "qdatetime.h"
    53 //@@TODO (dmik): later
    54 //#include "qsessionmanager.h"
     53#include "qsessionmanager.h"
    5554#include "qmime.h"
    5655#include "qguardedptr.h"
     
    6463#include "private/qinternal_p.h"
    6564#include "private/qcriticalsection_p.h"
    66 //@@TODO (dmik): remove?
     65/// @todo (dmik) remove?
    6766//#include "private/qinputcontext_p.h"
    6867#include "qstyle.h"
     
    7675extern void qt_ensure_pm();
    7776
    78 //@@TODO (dmik): how we can use buttons 4 and 5 on OS/2?
     77/// @todo (dmik) how we can use buttons 4 and 5 on OS/2?
    7978//// support for xbuttons
    8079//#ifndef WM_XBUTTONDOWN
     
    9089//#endif
    9190
    92 //@@TODO (dmik): hmm, extended keys under OS/2?
     91/// @todo (dmik) hmm, extended keys under OS/2?
    9392//// support for multi-media-keys on ME/2000/XP
    9493//#ifndef WM_APPCOMMAND
     
    179178                buf[realLen+1] = 0;
    180179                strupr( dot2 );
    181 //@@TODO (dmik): currently, simulated bold and italic font styles are not
     180/// @todo (dmik) currently, simulated bold and italic font styles are not
    182181//  supported by Qt/OS2 because Qt doesn't support style simulation
    183182//  explicitly. the code below is commented out to prevent selecting
     
    231230 *****************************************************************************/
    232231
    233 //@@TODO (dmik): later (guess remove)
    234 //static HMODULE appInst          = 0;
    235 //
    236 //static HINSTANCE appInst      = 0;            // handle to app instance
    237 //static HINSTANCE appPrevInst  = 0;            // handle to prev app instance
    238 //static int     appCmdShow     = 0;            // main window show command
    239232static HWND      curWin         = 0;            // current window
    240233static HPS       displayPS      = 0;            // display presentation space
    241 //@@TODO (dmik): later (guess remove)
    242 //#ifdef Q_OS_TEMP
    243 //static UINT    appUniqueID    = 0;            // application id
    244 //#endif
    245 
    246 //@@TODO (dmik): later
    247 //// Session management
    248 //static bool   sm_blockUserInput    = FALSE;
    249 //static bool   sm_smActive          = FALSE;
    250 //extern QSessionManager* qt_session_manager_self;
    251 //static bool   sm_cancel;
     234
     235#if !defined (QT_NO_SESSIONMANAGER)
     236
     237// Session management
     238static bool     sm_blockUserInput    = FALSE;
     239static bool     sm_smActive          = FALSE;
     240extern QSessionManager* qt_session_manager_self;
     241static bool     sm_cancel            = FALSE;
     242static bool     sm_gracefulShutdown  = FALSE;
     243bool            qt_about_to_destroy_wnd = FALSE;
     244
     245//#define DEBUG_SESSIONMANAGER
     246
     247#endif
    252248
    253249static bool replayPopupMouseEvent = FALSE; // replay handling when popups close
     
    298294}
    299295
    300 // ### Remove 4.0 [end] --------------------
    301296bool qt_pmEventFilter( QMSG* msg, MRESULT &result )
    302297{
     
    969964
    970965static bool inLoop = FALSE;
    971 //@@TODO (dmik): remove
    972 //static int inputcharset = CP_ACP;
    973966
    974967#define RETURN(x) { inLoop = FALSE; return (MRESULT) (x); }
     
    10211014    qmsg.ptl.y = QApplication::desktop()->height() - (qmsg.ptl.y + 1);
    10221015
    1023 //@@TODO (dmik): do we need this?
     1016/// @todo (dmik) do we need this?
    10241017//    /*
    10251018//    // sometimes the autograb is not released, so the clickevent is sent
     
    10391032
    10401033    switch ( msg ) {
    1041 //@@TODO (dmik): later
    1042 //#ifndef Q_OS_TEMP
    1043 //    case WM_QUERYENDSESSION: {
    1044 //      if ( sm_smActive ) // bogus message from windows
    1045 //          RETURN(TRUE);
    1046 //
    1047 //      sm_smActive = TRUE;
    1048 //      sm_blockUserInput = TRUE; // prevent user-interaction outside interaction windows
    1049 //      sm_cancel = FALSE;
    1050 //      if ( qt_session_manager_self )
    1051 //          qApp->commitData( *qt_session_manager_self );
    1052 //      if ( lParam == (LPARAM)ENDSESSION_LOGOFF ) {
    1053 //          _flushall();
    1054 //      }
    1055 //      RETURN(!sm_cancel);
    1056 //    }
    1057 //    case WM_ENDSESSION: {
    1058 //      sm_smActive = FALSE;
    1059 //      sm_blockUserInput = FALSE;
    1060 //      bool endsession = (bool) wParam;
    1061 //
    1062 //      if ( endsession ) {
    1063 //          // since the process will be killed immediately quit() has no real effect
    1064 //          int index = qApp->metaObject()->findSignal( "aboutToQuit()", TRUE );
    1065 //          qApp->qt_emit(index,0);
    1066 //          qApp->quit();
    1067 //      }
    1068 //
    1069 //      RETURN(0);
    1070 //    }
    1071 //    case WM_DISPLAYCHANGE:
    1072 //      if ( qApp->type() == QApplication::Tty )
    1073 //          break;
    1074 //      if ( qt_desktopWidget ) {
    1075 //          int x = GetSystemMetrics( 76 );
    1076 //          int y = GetSystemMetrics( 77 );
    1077 //          QMoveEvent mv( QPoint(x, y), qt_desktopWidget->pos() );
    1078 //          QApplication::sendEvent( qt_desktopWidget, &mv );
    1079 //          x = GetSystemMetrics( 78 );
    1080 //          y = GetSystemMetrics( 79 );
    1081 //          QResizeEvent re( QSize(x, y), qt_desktopWidget->size() );
    1082 //          QApplication::sendEvent( qt_desktopWidget, &re );
    1083 //      }
    1084 //      break;
    1085 //#endif
    1086 //
     1034#if !defined (QT_NO_SESSIONMANAGER)
     1035        case WM_SAVEAPPLICATION: {
     1036#if defined (DEBUG_SESSIONMANAGER)               
     1037            qDebug( "WM_SAVEAPPLICATION: sm_gracefulShutdown=%d "
     1038                    "qt_about_to_destroy_wnd=%d",
     1039                    sm_gracefulShutdown, qt_about_to_destroy_wnd );
     1040#endif           
     1041            // PM seems to post this message to all top-level windows on system
     1042            // shutdown, so react only to the first one. Also, this message is
     1043            // always sent by WinDestroyWindow(), where it must be also ignored.
     1044            if ( !sm_gracefulShutdown && !qt_about_to_destroy_wnd ) {
     1045                sm_gracefulShutdown = TRUE;
     1046            }
     1047            // PMREF recommends to pass it to WinDefWindowProc()
     1048            rc = WinDefWindowProc( hwnd, msg, mp1, mp2 );
     1049            RETURN( rc );
     1050        }
     1051#endif
     1052       
     1053/// @todo (dmik) later
    10871054//    case WM_SETTINGCHANGE:
    10881055//#ifdef Q_OS_TEMP
     
    11191086        case WM_BUTTON2DOWN:
    11201087        case WM_BUTTON3DOWN:
    1121 //@@TODO (dmik): later (extra buttons)
     1088/// @todo (dmik) later (extra buttons)
    11221089//        case WM_XBUTTONDOWN:
    11231090            if ( ignoreNextMouseReleaseEvent )
     
    11271094        case WM_BUTTON2UP:
    11281095        case WM_BUTTON3UP:
    1129 //@@TODO (dmik): later (extra buttons)
     1096/// @todo (dmik) later (extra buttons)
    11301097//        case WM_XBUTTONUP:
    11311098            if ( ignoreNextMouseReleaseEvent ) {
     
    11551122
    11561123    if ( widget->pmEvent( &qmsg ) )             // send through widget filter
    1157 //@@TODO (dmik): should we always return TRUE as MRESULT here?
    11581124        RETURN( TRUE );
    11591125
     
    16191585#endif
    16201586
    1621 /// @todo (dmik) later
    1622 //#if defined(QT_ACCESSIBILITY_SUPPORT)
    1623 //      case WM_GETOBJECT:
    1624 //          {
    1625 //              // Ignoring all requests while starting up
    1626 //              if ( qApp->startingUp() || !qApp->loopLevel() || lParam != OBJID_CLIENT ) {
    1627 //                  result = FALSE;
    1628 //                  break;
    1629 //              }
    1630 //
    1631 //              typedef LRESULT (WINAPI *PtrLresultFromObject)(REFIID, WPARAM, LPUNKNOWN );
    1632 //              static PtrLresultFromObject ptrLresultFromObject = 0;
    1633 //              static bool oleaccChecked = FALSE;
    1634 //
    1635 //              if ( !oleaccChecked ) {
    1636 //                  oleaccChecked = TRUE;
    1637 //                  ptrLresultFromObject = (PtrLresultFromObject)QLibrary::resolve( "oleacc.dll", "LresultFromObject" );
    1638 //              }
    1639 //              if ( ptrLresultFromObject ) {
    1640 //                  QAccessibleInterface *acc = 0;
    1641 //                  QAccessible::queryAccessibleInterface( widget, &acc );
    1642 //                  if ( !acc ) {
    1643 //                      result = FALSE;
    1644 //                      break;
    1645 //                  }
    1646 //
    1647 //                  QCustomEvent e( QEvent::Accessibility, acc );
    1648 //                  QApplication::sendEvent( widget, &e );
    1649 //
    1650 //                  // and get an instance of the IAccessibile implementation
    1651 //                  IAccessible *iface = qt_createWindowsAccessible( acc );
    1652 //                  acc->release();
    1653 //                  LRESULT res = ptrLresultFromObject( IID_IAccessible, wParam, iface );  // ref == 2
    1654 //                  iface->Release(); // the client will release the object again, and then it will destroy itself
    1655 //
    1656 //                  if ( res > 0 )
    1657 //                      RETURN(res);
    1658 //              }
    1659 //          }
    1660 //          result = FALSE;
    1661 //          break;
    1662 //#endif
    1663 
    1664 //@@TODO (dmik): remove. functionality is implemented in WM_SETFOCUS above.
     1587/// @todo (dmik) remove? functionality is implemented in WM_SETFOCUS above.
    16651588//      case WM_KILLFOCUS:
    16661589//          if ( !QWidget::find( (HWND)wParam ) ) { // we don't get focus, so unset it now
     
    16951618//          break;
    16961619//
    1697 //#ifndef Q_OS_TEMP
    1698 //      case WM_INPUTLANGCHANGE: {
    1699 //          char info[7];
    1700 //          if ( !GetLocaleInfoA( MAKELCID(lParam, SORT_DEFAULT), LOCALE_IDEFAULTANSICODEPAGE, info, 6 ) ) {
    1701 //              inputcharset = CP_ACP;
    1702 //          } else {
    1703 //              inputcharset = QString( info ).toInt();
    1704 //          }
    1705 //            break;
    1706 //        }
    1707 //#else
    17081620//      case WM_COMMAND:
    17091621//          result = (wParam == 0x1);
     
    17411653            break;
    17421654
    1743 //@@TODO (dmik): remove. functionality is implemented in WM_SETFOCUS above.
     1655/// @todo (dmik) remove? functionality is implemented in WM_SETFOCUS above.
    17441656//      case WM_CANCELMODE:
    17451657//          if ( qApp->focusWidget() ) {
     
    17661678do_default:
    17671679    RETURN( WinDefWindowProc( hwnd, msg, mp1, mp2 ) );
    1768 //@@TODO (dmik): remove
     1680/// @todo (dmik) remove?
    17691681//    RETURN( QInputContext::DefWindowProc(hwnd,message,wParam,lParam) )
    17701682}
     
    23772289    static HWND dblClickCandidateWin = 0;
    23782290   
    2379 //@@TODO (dmik): later
    2380 //    if ( sm_blockUserInput ) //block user interaction during session management
    2381 //      return TRUE;
     2291    if ( sm_blockUserInput ) //block user interaction during session management
     2292        return TRUE;
    23822293
    23832294    // Compress mouse move events
     
    29862897    QString text;
    29872898
    2988 //@@TODO (dmik): later
    2989 //    if ( sm_blockUserInput ) // block user interaction during session management
    2990 //      return TRUE;
     2899    if ( sm_blockUserInput ) // block user interaction during session management
     2900        return TRUE;
    29912901
    29922902    translateKeyCode( chm, code, ascii, state, text );
    2993 //@@TODO (dmik): currently WM_CHARs chars with zero virtual code or zero
     2903/// @todo (dmik) currently WM_CHARs chars with zero virtual code or zero
    29942904//  scancode are totally ignored. -- are they?
    29952905//    if ( !code || !chm.scancode ) return FALSE;
     
    30752985    enum { WHEEL_DELTA = 120 };
    30762986
    3077 //@@TODO (dmik): later
    3078 //    if ( sm_blockUserInput ) // block user interaction during session management
    3079 //      return TRUE;
     2987    if ( sm_blockUserInput ) // block user interaction during session management
     2988        return TRUE;
    30802989
    30812990    // consume duplicate wheel events sent by the AMouse driver to emulate
     
    35173426}
    35183427
    3519 //@@TODO (dmik): later
    3520 //bool QSessionManager::allowsInteraction()
    3521 //{
    3522 //    sm_blockUserInput = FALSE;
    3523 //    return TRUE;
    3524 //}
    3525 //
    3526 //bool QSessionManager::allowsErrorInteraction()
    3527 //{
    3528 //    sm_blockUserInput = FALSE;
    3529 //    return TRUE;
    3530 //}
    3531 //
    3532 //void QSessionManager::release()
    3533 //{
    3534 //    if ( sm_smActive )
    3535 //      sm_blockUserInput = TRUE;
    3536 //}
    3537 //
    3538 //void QSessionManager::cancel()
    3539 //{
    3540 //    sm_cancel = TRUE;
    3541 //}
    3542 
     3428#if !defined (QT_NO_SESSIONMANAGER)
     3429
     3430bool qt_app_canQuit()
     3431{
     3432#if defined (DEBUG_SESSIONMANAGER)               
     3433    qDebug( "qt_app_canQuit(): sm_smActive=%d qt_about_to_destroy_wnd=%d "
     3434            "sm_gracefulShutdown=%d sm_cancel=%d",
     3435            sm_smActive, qt_about_to_destroy_wnd,
     3436            sm_gracefulShutdown, sm_cancel );               
     3437#endif
     3438
     3439    BOOL answer = FALSE;
     3440
     3441    // We can get multiple WM_QUIT messages while the "session termination
     3442    // procedure" (i.e. the QApplication::commitData() call) is still in
     3443    // progress. Ignore them.
     3444    if ( !sm_smActive ) {
     3445        sm_smActive = TRUE;
     3446        sm_blockUserInput = TRUE; // prevent user-interaction outside interaction windows
     3447        sm_cancel = FALSE;
     3448        if ( qt_session_manager_self )
     3449            qApp->commitData( *qt_session_manager_self );
     3450        sm_smActive = FALSE;
     3451        sm_gracefulShutdown = FALSE;
     3452        answer = !sm_cancel;
     3453    }
     3454   
     3455#if defined (DEBUG_SESSIONMANAGER)               
     3456    qDebug( "qt_app_canQuit(): answer=%ld", answer );
     3457#endif
     3458
     3459    return answer;
     3460}
     3461
     3462bool QSessionManager::allowsInteraction()
     3463{
     3464    // Allow interation only when the system is being normally shutdown
     3465    // and informs us using WM_SAVEAPPLICATION. When we receive WM_QUIT directly
     3466    // (so sm_gracefulShutdown is FALSE), interaction is disallowed.
     3467    if ( sm_smActive && sm_gracefulShutdown ) {
     3468        sm_blockUserInput = FALSE;
     3469        return TRUE;
     3470    }
     3471
     3472    return FALSE;
     3473}
     3474
     3475bool QSessionManager::allowsErrorInteraction()
     3476{
     3477    // Allow interation only when the system is being normally shutdown
     3478    // and informs us using WM_SAVEAPPLICATION. When we receive WM_QUIT directly
     3479    // (so sm_gracefulShutdown is FALSE), interaction is disallowed.
     3480    if ( sm_smActive && sm_gracefulShutdown ) {
     3481        sm_blockUserInput = FALSE;
     3482        return TRUE;
     3483    }
     3484
     3485    return FALSE;
     3486}
     3487
     3488void QSessionManager::release()
     3489{
     3490    if ( sm_smActive && sm_gracefulShutdown )
     3491        sm_blockUserInput = TRUE;
     3492}
     3493
     3494void QSessionManager::cancel()
     3495{
     3496    if ( sm_smActive && sm_gracefulShutdown )
     3497        sm_cancel = TRUE;
     3498}
     3499
     3500#endif
  • trunk/src/kernel/qeventloop_pm.cpp

    r8 r77  
    5151extern bool qt_pmEventFilter( QMSG* msg, MRESULT &result );
    5252
     53#if !defined (QT_NO_SESSIONMANAGER)
     54extern bool qt_app_canQuit(); // defined in qapplication_pm.cpp
     55#endif
     56
    5357static HAB qt_gui_hab = 0;
    5458static HMQ qt_gui_queue = 0;
    55 //@@TODO (dmik): later
    56 //// Simpler timers are needed when Qt does not have the event loop,
    57 //// such as for plugins.
     59
     60/// @todo (dmik) later
     61//  Simpler timers are needed when Qt does not have the event loop,
     62//  such as for plugins.
    5863//#ifndef Q_OS_TEMP
    5964//Q_EXPORT bool qt_win_use_simple_timers = TRUE;
     
    433438// recursive mutex to serialize access to socket notifier data
    434439static QMutex ss_mutex( TRUE );
    435 // flag to indicate a presence of sockets to do select() (we use QSemaphore
     440// flag to indicate the presence of sockets to do select() (we use QSemaphore
    436441// instead of QWaitCondition because we need the "level-triggered" semantics,
    437 // the "edge-triggered" one can produce deadlocks)
     442// the "edge-triggered" semantics can produce deadlocks)
    438443static QSemaphore ss_flag( 1 );
    439444
     
    786791            locker.mutex()->unlock();
    787792#endif // QT_THREAD_SUPPORT
    788             if ( !WinGetMsg( 0, &msg, 0, 0, 0 ) ) {
     793            if ( !WinGetMsg( 0, &msg, 0, 0, 0 ) ) {     // WM_QUIT received
     794#if !defined (QT_NO_SESSIONMANAGER)
     795                if ( qt_app_canQuit() ) {
     796#endif                   
    789797#ifdef QT_THREAD_SUPPORT
    790                 locker.mutex()->lock();
    791 #endif // QT_THREAD_SUPPORT
    792                 exit( 0 );                              // WM_QUIT received
    793                 return FALSE;
     798                    locker.mutex()->lock();
     799#endif // QT_THREAD_SUPPORT
     800                    exit( 0 );
     801                    return FALSE;
     802#if !defined (QT_NO_SESSIONMANAGER)
     803                } else {
     804                    WinCancelShutdown( d->hmq, FALSE );
     805                }
     806#endif                   
    794807            }
    795808#ifdef QT_THREAD_SUPPORT
  • trunk/src/kernel/qt_kernel.pri

    r72 r77  
    284284        HEADERS -= \
    285285                $$KERNEL_P/qinputcontext_p.h \
    286                 $$KERNEL_H/qprinter.h \
    287                 $$KERNEL_H/qsessionmanager.h
     286                $$KERNEL_H/qprinter.h
    288287
    289288        SOURCES -= \
  • trunk/src/kernel/qwidget_pm.cpp

    r75 r77  
    6464// defined in qapplication_pm.cpp
    6565extern void qt_sendBlocked( QObject *obj, QWidget *modal, QEvent *e, bool override );
     66#if !defined (QT_NO_SESSIONMANAGER)
     67extern bool qt_about_to_destroy_wnd;
     68#endif
    6669
    6770static QWidget *mouseGrb    = 0;
     
    598601#endif
    599602
     603/*!
     604 * \internal
     605 * For some unknown reason, PM sends WM_SAVEAPPLICATION to every window
     606 * being destroyed, which makes it indistinguishable from WM_SAVEAPPLICATION
     607 * sent to top level windows during system shutdown. We use our own version of
     608 * WinDestroyWindow() and a special flag (qt_about_to_destroy_wnd) to
     609 * distinguish it in qapplication_pm.cpp.
     610 */
     611static BOOL qt_WinDestroyWindow( HWND hwnd )
     612{
     613#if !defined (QT_NO_SESSIONMANAGER)
     614    qt_about_to_destroy_wnd = TRUE;
     615#endif
     616    BOOL rc = WinDestroyWindow( hwnd );
     617#if !defined (QT_NO_SESSIONMANAGER)
     618    qt_about_to_destroy_wnd = FALSE;
     619#endif
     620    return rc;
     621}
     622
    600623static void removeSysMenuAccels( HWND frame )
    601624{
     
    808831            fcData.idResources = 0;
    809832#if !defined(QT_NO_DEBUG) && defined(QT_DEBUGWINCREATEDESTROY)
    810             qDebug(
    811                 "|Creating top level window [%s] (frame):\n"
    812                 "|  owner = %08lX\n"
    813                 "|  title = '%s'\n"
    814                 "|  style = %08lX\n"
    815                 "|  fcFlags = %08lX",
    816                 name(), ownerw, title, fStyle, fcFlags
    817             );
     833            qDebug ( "|Creating top level window [%s/%s] (frame):\n"
     834                     "|  owner = %08lX\n"
     835                     "|  title = '%s'\n"
     836                     "|  style = %08lX\n"
     837                     "|  fcFlags = %08lX",
     838                     name(), this->className(), ownerw, title, fStyle, fcFlags );
    818839#endif
    819840            fId = WinCreateWindow(
     
    838859            // create client
    839860#if !defined(QT_NO_DEBUG) && defined(QT_DEBUGWINCREATEDESTROY)
    840             qDebug(
    841                 "|Creating top level window [%s] (client):\n"
    842                 "|  owner & parent = %08lX\n"
    843                 "|  class = '%s'\n"
    844                 "|  title = '%s'\n"
    845                 "|  style = %08lX",
    846                 name(), fId, pszClassName, title, style
    847             );
     861            qDebug( "|Creating top level window [%s/%s] (client):\n"
     862                    "|  owner & parent = %08lX\n"
     863                    "|  class = '%s'\n"
     864                    "|  title = '%s'\n"
     865                    "|  style = %08lX",
     866                    name(), this->className(), fId, pszClassName, title, style );
    848867#endif
    849868            // note that we place the client on top (HWND_TOP) to exclude other
     
    855874        } else {
    856875#if !defined(QT_NO_DEBUG) && defined(QT_DEBUGWINCREATEDESTROY)
    857             qDebug(
    858                 "|Creating top level window [%s]:\n"
    859                 "|  owner = %08lX\n"
    860                 "|  class = '%s'\n"
    861                 "|  title = '%s'\n"
    862                 "|  style = %08lX",
    863                 name(), ownerw, pszClassName, title, style
    864             );
     876            qDebug( "|Creating top level window [%s/%s]:\n"
     877                    "|  owner = %08lX\n"
     878                    "|  class = '%s'\n"
     879                    "|  title = '%s'\n"
     880                    "|  style = %08lX",
     881                    name(), this->className(), ownerw, pszClassName, title, style );
    865882#endif
    866883            id = WinCreateWindow(
     
    894911        HWND parentw = parentWidget()->winId();
    895912#if !defined(QT_NO_DEBUG) && defined(QT_DEBUGWINCREATEDESTROY)
    896         qDebug(
    897             "|Creating child window [%s]:\n"
    898             "|  owner & parent = %08lX\n"
    899             "|  class = '%s'\n"
    900             "|  title = '%s'\n"
    901             "|  style = %08lX",
    902             name(), parentw, pszClassName, title, style
    903         );
     913        qDebug( "|Creating child window [%s/%s]:\n"
     914                "|  owner & parent = %08lX\n"
     915                "|  class = '%s'\n"
     916                "|  title = '%s'\n"
     917                "|  style = %08lX",
     918                name(), this->className(), parentw, pszClassName, title, style );
    904919#endif
    905920        id = WinCreateWindow(
     
    9981013            }
    9991014#if !defined(QT_NO_DEBUG) && defined(QT_DEBUGWINCREATEDESTROY)
    1000             qDebug(
    1001                 "|Destroying window:\n"
    1002                 "|  hwnd = %08lX",
    1003                 id
    1004             );
    1005 #endif
    1006             WinDestroyWindow( id );
     1015            qDebug( "|Destroying window [%s/%s]:\n"
     1016                    "|  hwnd = %08lX",
     1017                    name(), className(), id );
     1018#endif
     1019            qt_WinDestroyWindow( id );
    10071020        }
    10081021        setWinId( 0 );
     
    11281141        show();
    11291142    if ( old_winfid )
    1130         WinDestroyWindow( old_winfid );
     1143        qt_WinDestroyWindow( old_winfid );
    11311144
    11321145    reparentFocusWidgets( oldtlw );             // fix focus chains
Note: See TracChangeset for help on using the changeset viewer.