added lockfile path info to the multiple-instances warning window in rs-

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4098 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
chrisparker126 2011-03-16 23:25:57 +00:00
parent 49aad683b1
commit 2dd6581f14
5 changed files with 21 additions and 13 deletions

View file

@ -118,7 +118,7 @@ class RsInit
* This wrapper is used to lock the profile first before * This wrapper is used to lock the profile first before
* finalising the login * finalising the login
*/ */
static int LockAndLoadCertificates(bool autoLoginNT); static int LockAndLoadCertificates(bool autoLoginNT, std::string& lockFilePath);
/*! /*!
@ -155,7 +155,7 @@ class RsInit
static bool RsTryAutoLogin() ; static bool RsTryAutoLogin() ;
/* Lock/unlock profile directory */ /* Lock/unlock profile directory */
static int LockConfigDirectory(const std::string& accountDir); static int LockConfigDirectory(const std::string& accountDir, std::string& lockFilePath);
static void UnlockConfigDirectory(); static void UnlockConfigDirectory();
/* The true LoadCertificates() method */ /* The true LoadCertificates() method */

View file

@ -1053,10 +1053,11 @@ int RsInit::GetPGPLoginDetails(std::string id, std::string &name, std::stri
* 1 : Another instance already has the lock * 1 : Another instance already has the lock
* 2 : Unexpected error * 2 : Unexpected error
*/ */
int RsInit::LockConfigDirectory(const std::string& accountDir) int RsInit::LockConfigDirectory(const std::string& accountDir, std::string& lockFilePath)
{ {
const std::string lockFile = accountDir + RsInitConfig::dirSeperator + "lock"; const std::string lockFile = accountDir + RsInitConfig::dirSeperator + "lock";
lockFilePath = lockFile;
/******************************** WINDOWS/UNIX SPECIFIC PART ******************/ /******************************** WINDOWS/UNIX SPECIFIC PART ******************/
#ifndef WINDOWS_SYS #ifndef WINDOWS_SYS
if(RsInitConfig::lockHandle != -1) if(RsInitConfig::lockHandle != -1)
@ -1418,9 +1419,9 @@ bool RsInit::LoadPassword(std::string id, std::string inPwd)
* 2 : unexpected error while locking * 2 : unexpected error while locking
* 3 : unexpected error while loading certificates * 3 : unexpected error while loading certificates
*/ */
int RsInit::LockAndLoadCertificates(bool autoLoginNT) int RsInit::LockAndLoadCertificates(bool autoLoginNT, std::string& lockFilePath)
{ {
int retVal = LockConfigDirectory(RsInitConfig::configDir); int retVal = LockConfigDirectory(RsInitConfig::configDir, lockFilePath);
if(retVal != 0) if(retVal != 0)
return retVal; return retVal;

View file

@ -322,7 +322,8 @@ void GenCertDialog::checkChanged(int i)
void GenCertDialog::loadCertificates() void GenCertDialog::loadCertificates()
{ {
int retVal = RsInit::LockAndLoadCertificates(false); std::string lockFile;
int retVal = RsInit::LockAndLoadCertificates(false, lockFile);
switch(retVal) switch(retVal)
{ {
case 0: close(); case 0: close();

View file

@ -152,7 +152,8 @@ void StartDialog::loadPerson()
void StartDialog::loadCertificates() void StartDialog::loadCertificates()
{ {
/* Final stage of loading */ /* Final stage of loading */
int retVal = RsInit::LockAndLoadCertificates(ui.autologin_checkbox->isChecked()); std::string lockFile;
int retVal = RsInit::LockAndLoadCertificates(ui.autologin_checkbox->isChecked(), lockFile);
switch(retVal) switch(retVal)
{ {
case 0: close(); case 0: close();
@ -161,12 +162,14 @@ void StartDialog::loadCertificates()
tr("Multiple instances"), tr("Multiple instances"),
tr("Another RetroShare using the same profile is " tr("Another RetroShare using the same profile is "
"already running on your system. Please close " "already running on your system. Please close "
"that instance first, or choose another profile") ); "that instance first, or choose another profile\n"
"lock file:\n ")+ QString::fromStdString(lockFile));
break; break;
case 2: QMessageBox::warning( this, case 2: QMessageBox::warning( this,
tr("Multiple instances"), tr("Multiple instances"),
tr("An unexpected error occurred when Retroshare" tr("An unexpected error occurred when Retroshare"
"tried to acquire the single instance lock") ); "tried to acquire the single instance lock\n"
"lock file:\n ")+ QString::fromStdString(lockFile));
break; break;
case 3: QMessageBox::warning( this, case 3: QMessageBox::warning( this,
tr("Login Failure"), tr("Login Failure"),

View file

@ -166,7 +166,8 @@ int main(int argc, char *argv[])
} }
// true: note auto-login is active // true: note auto-login is active
int retVal = RsInit::LockAndLoadCertificates(true); std::string lockFile;
int retVal = RsInit::LockAndLoadCertificates(true, lockFile);
switch(retVal) switch(retVal)
{ {
case 0: break; case 0: break;
@ -174,12 +175,14 @@ int main(int argc, char *argv[])
QObject::tr("Multiple instances"), QObject::tr("Multiple instances"),
QObject::tr("Another RetroShare using the same profile is " QObject::tr("Another RetroShare using the same profile is "
"already running on your system. Please close " "already running on your system. Please close "
"that instance first") ); "that instance first\n Lock file:\n") +
QString::fromStdString(lockFile));
return 1; return 1;
case 2: QMessageBox::critical( 0, case 2: QMessageBox::critical( 0,
QObject::tr("Multiple instances"), QObject::tr("Multiple instances"),
QObject::tr("An unexpected error occurred when Retroshare" QObject::tr("An unexpected error occurred when Retroshare"
"tried to acquire the single instance lock") ); "tried to acquire the single instance lock\n Lock file:\n") +
QString::fromStdString(lockFile));
return 1; return 1;
case 3: QMessageBox::critical( 0, case 3: QMessageBox::critical( 0,
QObject::tr("Login Failure"), QObject::tr("Login Failure"),