INT_PTR DecryptDatabaseDialog7::callback(HWND dialog, UINT message, WPARAM wParam, LPARAM lParam)
{
	switch (message)
	{
		case WM_INITDIALOG:
		{
			SetDlgItemText(dialog, IDC_DECRYPT_CRYPT7_DATABASE, strtowstr(openDatabaseStruct.filename).c_str());
			SetDlgItemText(dialog, IDC_DECRYPT_CRYPT7_KEYFILE, strtowstr(openDatabaseStruct.keyFilename).c_str());
		} break;
		case WM_COMMAND:
		{
			switch (HIWORD(wParam))
			{
				case BN_CLICKED:
				{
					switch (LOWORD(wParam))
					{
						case IDC_DECRYPT_CRYPT7_SELECT_DATABASE:
						{
							selectDatabaseFile();
						} break;
						case IDC_DECRYPT_CRYPT7_SELECT_KEY:
						{
							selectKeyFile();
						} break;
						case IDOK:
						{
							clickOk(wParam);
							return TRUE;
						} break;
						case IDCANCEL:
						{
							close(LOWORD(wParam));
							return TRUE;
						} break;
					}
				} break;
			}
		} break;
	}

	return 0;
}
ServerDefinitionDialog::ServerDefinitionDialog( ConnectionParameters& params, QWidget *parent ) :
	QDialog( parent ), ui( new Ui::ServerDefinitionDialog ), m_params( params )
{
	ui->setupUi( this );
	if ( !params.isEmpty() )	{
		ui->nameEdit->setText( params.name );
	}

	ui->nameEdit->setText( params.name );
	ui->hostEdit->setText( params.host );
	if ( params.port == 0 )
		ui->portSpinBox->setValue( 7661 );
	else
		ui->portSpinBox->setValue( params.port );

	if ( params.SSL )	{
		ui->SSLcheck->setChecked( true );
		if ( params.clientCertificate )	{
			ui->clientCertCheck->setChecked( true );
			ui->certEdit->setText( params.SSLcertificate );
			ui->keyEdit->setText( params.SSLkey );
		}
		else	{
			ui->clientCertCheck->setChecked( false );
			ui->certEdit->setText( "" );
			ui->keyEdit->setText( "" );
		}
		if ( params.SSLverify )	{
			ui->SSLverifyCheck->setChecked( true );
			ui->CAbundleEdit->setText( params.SSLCAbundle );
		}
		else	{
			ui->SSLverifyCheck->setChecked( false );
			ui->CAbundleEdit->setText( "" );
		}
	}
	else	{
		ui->SSLcheck->setChecked( false );
		ui->clientCertCheck->setChecked( false );
		ui->certEdit->setText( "" );
		ui->keyEdit->setText( "" );
		ui->SSLverifyCheck->setChecked( false );
		ui->CAbundleEdit->setText( "" );
	}

	if ( params.timeout == 0 )
		ui->timeoutSpinBox->setValue( 15 );
	else
		ui->timeoutSpinBox->setValue( params.timeout );

	connect( ui->certFileBttn, SIGNAL( clicked() ), this, SLOT( selectCertFile() ));
	connect( ui->keyFileBttn, SIGNAL( clicked() ), this, SLOT( selectKeyFile() ));
	connect( ui->CAbundleFileBttn, SIGNAL( clicked() ), this, SLOT( selectCAbundleFile() ));
	connect( ui->SSLcheck, SIGNAL( clicked() ), this, SLOT( SSLtoggle() ));
	connect( ui->clientCertCheck, SIGNAL( clicked() ), this, SLOT( updateSSLfields() ));
	connect( ui->SSLverifyCheck, SIGNAL( clicked() ), this, SLOT( updateSSLfields() ));
	connect( ui->testBttn, SIGNAL( clicked() ), this, SLOT( testConnection() ));
	connect( ui->nameEdit, SIGNAL( textChanged( QString )), this, SLOT( updateButtons() ));
	connect( ui->hostEdit, SIGNAL( textChanged( QString )), this, SLOT( updateButtons() ));
	updateSSLfields();
	updateButtons();
}