From c49434e3b6ca9458af5173e8ca37d340421a7fab Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Tue, 26 May 2009 20:01:23 +0000 Subject: [PATCH] added new command line argument for connecting on startup, fix for window title buttons on Ubuntu --- src/llconclientdlg.cpp | 29 +++++++++++++++++++++++++---- src/llconclientdlg.h | 4 ++-- src/main.cpp | 26 +++++++++++++++++++++++++- 3 files changed, 52 insertions(+), 7 deletions(-) diff --git a/src/llconclientdlg.cpp b/src/llconclientdlg.cpp index dc0a09f3..49f78d6e 100755 --- a/src/llconclientdlg.cpp +++ b/src/llconclientdlg.cpp @@ -26,11 +26,22 @@ /* Implementation *************************************************************/ -CLlconClientDlg::CLlconClientDlg ( CClient* pNCliP, QWidget* parent, - Qt::WindowFlags f ) : +CLlconClientDlg::CLlconClientDlg ( CClient* pNCliP, + const bool bNewConnectOnStartup, + QWidget* parent, Qt::WindowFlags f ) : pClient ( pNCliP ), QDialog ( parent, f ), - ClientSettingsDlg ( pNCliP, parent, Qt::WindowMinMaxButtonsHint ), - ChatDlg ( parent, Qt::WindowMinMaxButtonsHint ) + ClientSettingsDlg ( pNCliP, parent +#ifdef _WIN32 + // this somehow only works reliable on Windows + , Qt::WindowMinMaxButtonsHint +#endif + ), + ChatDlg ( parent +#ifdef _WIN32 + // this somehow only works reliable on Windows + , Qt::WindowMinMaxButtonsHint +#endif + ) { setupUi ( this ); @@ -143,6 +154,16 @@ CLlconClientDlg::CLlconClientDlg ( CClient* pNCliP, QWidget* parent, } + // connect on startup --- + if ( bNewConnectOnStartup ) + { + // since the software starts up right now, the previous state was + // "not connected" so that a call to "OnConnectDisconBut()" will + // start the connection + OnConnectDisconBut(); + } + + // Settings menu ---------------------------------------------------------- pSettingsMenu = new QMenu ( "&View", this ); pSettingsMenu->addAction ( tr ( "&Chat..." ), this, diff --git a/src/llconclientdlg.h b/src/llconclientdlg.h index 9eefddab..faf2ee76 100755 --- a/src/llconclientdlg.h +++ b/src/llconclientdlg.h @@ -66,8 +66,8 @@ class CLlconClientDlg : public QDialog, private Ui_CLlconClientDlgBase Q_OBJECT public: - CLlconClientDlg ( CClient* pNCliP, QWidget* parent = 0, - Qt::WindowFlags f = 0 ); + CLlconClientDlg ( CClient* pNCliP, const bool bNewConnectOnStartup, + QWidget* parent = 0, Qt::WindowFlags f = 0 ); virtual ~CLlconClientDlg(); protected: diff --git a/src/main.cpp b/src/main.cpp index 713f3e26..81fb3010 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -52,6 +52,7 @@ int main ( int argc, char** argv ) // check if server or client application shall be started bool bIsClient = true; bool bUseGUI = true; + bool bConnectOnStartup = false; int iUploadRateLimitKbps = DEF_MAX_UPLOAD_RATE_KBPS; quint16 iPortNumber = LLCON_DEFAULT_PORT_NUMBER; std::string strIniFileName = ""; @@ -72,6 +73,7 @@ int main ( int argc, char** argv ) continue; } + // use GUI flag -------------------------------------------------------- if ( GetFlagArgument ( argc, argv, i, "-n", "--nogui" ) ) { @@ -80,6 +82,7 @@ int main ( int argc, char** argv ) continue; } + // use logging --------------------------------------------------------- if ( GetStringArgument ( argc, argv, i, "-l", "--log", strArgument ) ) { @@ -88,6 +91,7 @@ int main ( int argc, char** argv ) continue; } + // force low upload data rate flag ------------------------------------- if ( GetNumericArgument ( argc, argv, i, "-u", "--maxuploadrate", 100, 1000000, rDbleArgument ) ) @@ -98,6 +102,7 @@ int main ( int argc, char** argv ) continue; } + // port number --------------------------------------------------------- if ( GetNumericArgument ( argc, argv, i, "-p", "--port", 0, 65535, rDbleArgument ) ) @@ -107,6 +112,7 @@ int main ( int argc, char** argv ) continue; } + // HTML status file ---------------------------------------------------- if ( GetStringArgument ( argc, argv, i, "-m", "--htmlstatus", strArgument ) ) { @@ -122,6 +128,7 @@ int main ( int argc, char** argv ) continue; } + // initialization file ------------------------------------------------- if ( GetStringArgument ( argc, argv, i, "-i", "--inifile", strArgument ) ) { @@ -130,6 +137,16 @@ int main ( int argc, char** argv ) continue; } + + // connect on startup -------------------------------------------------- + if ( GetFlagArgument ( argc, argv, i, "-c", "--connect" ) ) + { + bConnectOnStartup = true; + cout << "connect on startup enabled" << std::endl; + continue; + } + + // help (usage) flag --------------------------------------------------- if ( ( !strcmp ( argv[i], "--help" ) ) || ( !strcmp ( argv[i], "-h" ) ) || ( !strcmp ( argv[i], "-?" ) ) ) @@ -182,7 +199,13 @@ int main ( int argc, char** argv ) // GUI object CLlconClientDlg ClientDlg ( - &Client, 0, Qt::WindowMinMaxButtonsHint ); + &Client, bConnectOnStartup, + 0 +#ifdef _WIN32 + // this somehow only works reliable on Windows + , Qt::WindowMinMaxButtonsHint +#endif + ); // set main window pMainWindow = &ClientDlg; @@ -269,6 +292,7 @@ std::string UsageArguments ( char **argv ) " -p, --port local port number (only avaiable for server)\n" " -m, --htmlstatus enable HTML status file, set file name (only avaiable for server)\n" " -u, --maxuploadrate maximum upload rate (only avaiable for server)\n" + " -c, --connect connect to last server on startup (only available for client)\n" " -h, -?, --help this help text\n" "Example: " + std::string ( argv[0] ) + " -l -inifile myinifile.ini\n"; }