-
-
Notifications
You must be signed in to change notification settings - Fork 3k
/
qgis.g.browser.cpp
40 lines (38 loc) · 989 Bytes
/
qgis.g.browser.cpp
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
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <iostream>
#include <QUrl>
#include <QDesktopServices>
#include <QString>
#ifdef Q_OS_WIN
#include <windows.h>
#endif
// Open a URL by default browser
int main( int argc, char **argv )
{
if ( argc < 2 )
{
fprintf( stderr, "URL argument missing\n" );
exit( 1 );
}
QString urlStr ( argv[1] );
QUrl url ( urlStr );
#ifdef Q_OS_WIN
// openUrl on windows fails to open 'file://c:...' it must be 'file:///c:...' (3 slashes)
if ( url.scheme() == "file" ) {
// this does not work, the drive was already removed by QT:
//url.setPath ( "/" + url.path() );
urlStr.replace ( "file://", "file:///" );
url.setUrl ( urlStr );
std::cout << "path reset to: " << qPrintable(url.path()) << std::endl;
}
#endif
QDesktopServices::openUrl( url );
#ifdef Q_OS_WIN
Sleep( 1000 );
#else
sleep( 1 ); // not nice but if it exits immediately the page sometimes does not open
#endif
exit( 0 );
}