File: MYODBCSetupDriverConnectPrompt.cpp

package info (click to toggle)
myodbc 3.51.11-6.1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 5,056 kB
  • ctags: 1,933
  • sloc: ansic: 31,656; sh: 10,955; cpp: 2,439; makefile: 1,120
file content (79 lines) | stat: -rw-r--r-- 2,800 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
/* Copyright (C) 2000-2005 MySQL AB

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2 of the License, or
   (at your option) any later version.

   There are special exceptions to the terms and conditions of the GPL as it
   is applied to this software. View the full text of the exception in file
   EXCEPTIONS in the directory of this software distribution.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */

#include "MYODBCSetupDataSourceDialog.h"

/*!
    OSX

    We get an alarming warning from qt when we fail to provide
    the app name with a fully qualified absolute path. And the
    problem is that we do not have any real app path to give -
    so we make one up. Perhaps the real app name can be found
    but this seems to work. (busy busy so moveon.org)
*/
static char *pszAppName = "/myodbcinst";

BOOL MYODBCSetupDriverConnectPrompt( SQLHDBC hDBC, HWND hWnd, MYODBCUTIL_DATASOURCE *pDataSource )
{
    BOOL bReturn = FALSE;

    /*!
        MYODBC RULE

        No window handle - no gui - regardless of the fact that we may not 
        use the window handle anyway :) 

        We will provide a GUI for any non-zero value but on XP the DM tries to be 
        too smart for us - and complains about an invalid window handle. This 
        prevents this trick from working on XP which in turn prevents console
        applications from invoking GUI (unless they can come up with a viable
        window handle).
    */    
    if ( !hWnd )
        return FALSE;

    if ( !qApp )
    {
        int     argc    = 1;
        char *  argv[]  = { pszAppName, NULL };

        static QApplication app( argc, argv );

        // We are most likely to come in this route as caller is unlikely to have a qApp */ 
        MYODBCSetupDataSourceDialog *pdialogDataSource = new MYODBCSetupDataSourceDialog( NULL, hDBC, pDataSource );

        app.setMainWidget( pdialogDataSource );
        if ( pdialogDataSource->exec() == QDialog::Accepted )
            bReturn = TRUE; 
    }
    else
    {
        MYODBCSetupDataSourceDialog *pdialogDataSource = new MYODBCSetupDataSourceDialog( NULL, hDBC, pDataSource );

        if ( pdialogDataSource->exec() == QDialog::Accepted )
            bReturn = TRUE; 
    }

    return bReturn;
}