Kaydet (Commit) f6cd982a authored tarafından Caolán McNamara's avatar Caolán McNamara

move the cups password dialog from padmin to vcl

now we don't have to dlopen padmin to get it so we can drop that complicated
stuff.

Change-Id: I2f01bd104aae8f17ada9a445da653b441a927c70
üst 42aeaee8
......@@ -10,7 +10,6 @@
$(eval $(call gb_UIConfig_UIConfig,spa))
$(eval $(call gb_UIConfig_add_uifiles,spa,\
padmin/uiconfig/ui/cupspassworddialog \
padmin/uiconfig/ui/printerdevicepage \
padmin/uiconfig/ui/printerpaperpage \
padmin/uiconfig/ui/printerpropertiesdialog \
......
......@@ -472,43 +472,6 @@ void RTSDevicePage::FillValueBox( const PPDKey* pKey )
m_pPPDValueBox->SelectEntryPos( m_pPPDValueBox->GetEntryPos( (void*)pValue ) );
}
class RTSPWDialog : public ModalDialog
{
FixedText* m_pText;
Edit* m_pUserEdit;
Edit* m_pPassEdit;
public:
RTSPWDialog(const OString& rServer, const OString& rUserName, Window* pParent);
OString getUserName() const;
OString getPassword() const;
};
RTSPWDialog::RTSPWDialog( const OString& rServer, const OString& rUserName, Window* pParent )
: ModalDialog(pParent, "CUPSPasswordDialog",
"spa/ui/cupspassworddialog.ui")
{
get(m_pText, "text");
get(m_pUserEdit, "user");
get(m_pPassEdit, "pass");
OUString aText(m_pText->GetText());
aText = aText.replaceFirst("%s", OStringToOUString(rServer, osl_getThreadTextEncoding()));
m_pText->SetText(aText);
m_pUserEdit->SetText( OStringToOUString(rUserName, osl_getThreadTextEncoding()));
}
OString RTSPWDialog::getUserName() const
{
return OUStringToOString( m_pUserEdit->GetText(), osl_getThreadTextEncoding() );
}
OString RTSPWDialog::getPassword() const
{
return OUStringToOString( m_pPassEdit->GetText(), osl_getThreadTextEncoding() );
}
extern "C" {
int SPA_DLLPUBLIC Sal_SetupPrinterDriver( ::psp::PrinterInfo& rJobData )
......@@ -524,21 +487,6 @@ extern "C" {
return nRet;
}
bool SPA_DLLPUBLIC Sal_authenticateQuery( const OString& rServer, OString& rUserName, OString& rPassword )
{
bool bRet = false;
RTSPWDialog aDialog( rServer, rUserName, NULL );
if( aDialog.Execute() )
{
rUserName = aDialog.getUserName();
rPassword = aDialog.getPassword();
bRet = true;
}
return bRet;
}
} // extern "C"
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
......@@ -10,6 +10,7 @@
$(eval $(call gb_UIConfig_UIConfig,vcl))
$(eval $(call gb_UIConfig_add_uifiles,vcl,\
vcl/uiconfig/ui/cupspassworddialog \
vcl/uiconfig/ui/errornocontentdialog \
vcl/uiconfig/ui/errornoprinterdialog \
vcl/uiconfig/ui/printdialog \
......
......@@ -35,6 +35,10 @@
#include <officecfg/Office/Common.hxx>
#include <vcl/button.hxx>
#include <vcl/dialog.hxx>
#include <vcl/fixed.hxx>
#include <algorithm>
using namespace psp;
......@@ -827,36 +831,76 @@ bool CUPSManager::writePrinterConfig()
return PrinterInfoManager::writePrinterConfig();
}
const char* CUPSManager::authenticateUser( const char* /*pIn*/ )
namespace
{
const char* pRet = NULL;
oslModule pLib = osl_loadModuleAscii( _XSALSET_LIBNAME, SAL_LOADMODULE_LAZY );
if( pLib )
class RTSPWDialog : public ModalDialog
{
OUString aSym( "Sal_authenticateQuery" );
bool (*getpw)( const OString& rServer, OString& rUser, OString& rPw) =
(bool(*)(const OString&,OString&,OString&))osl_getFunctionSymbol( pLib, aSym.pData );
if( getpw )
{
osl::MutexGuard aGuard( m_aCUPSMutex );
FixedText* m_pText;
Edit* m_pUserEdit;
Edit* m_pPassEdit;
OString aUser = cupsUser();
OString aServer = cupsServer();
OString aPassword;
if( getpw( aServer, aUser, aPassword ) )
{
m_aPassword = aPassword;
m_aUser = aUser;
cupsSetUser( m_aUser.getStr() );
pRet = m_aPassword.getStr();
}
public:
RTSPWDialog(const OString& rServer, const OString& rUserName, Window* pParent);
OString getUserName() const;
OString getPassword() const;
};
RTSPWDialog::RTSPWDialog( const OString& rServer, const OString& rUserName, Window* pParent )
: ModalDialog(pParent, "CUPSPasswordDialog",
"vcl/ui/cupspassworddialog.ui")
{
get(m_pText, "text");
get(m_pUserEdit, "user");
get(m_pPassEdit, "pass");
OUString aText(m_pText->GetText());
aText = aText.replaceFirst("%s", OStringToOUString(rServer, osl_getThreadTextEncoding()));
m_pText->SetText(aText);
m_pUserEdit->SetText( OStringToOUString(rUserName, osl_getThreadTextEncoding()));
}
OString RTSPWDialog::getUserName() const
{
return OUStringToOString( m_pUserEdit->GetText(), osl_getThreadTextEncoding() );
}
OString RTSPWDialog::getPassword() const
{
return OUStringToOString( m_pPassEdit->GetText(), osl_getThreadTextEncoding() );
}
bool AuthenticateQuery(const OString& rServer, OString& rUserName, OString& rPassword)
{
bool bRet = false;
RTSPWDialog aDialog(rServer, rUserName, NULL);
if (aDialog.Execute())
{
rUserName = aDialog.getUserName();
rPassword = aDialog.getPassword();
bRet = true;
}
osl_unloadModule( pLib );
return bRet;
}
else
}
const char* CUPSManager::authenticateUser( const char* /*pIn*/ )
{
const char* pRet = NULL;
osl::MutexGuard aGuard( m_aCUPSMutex );
OString aUser = cupsUser();
OString aServer = cupsServer();
OString aPassword;
if (AuthenticateQuery(aServer, aUser, aPassword))
{
SAL_WARN("vcl.unx.print",
"loading of module " << _XSALSET_LIBNAME << " failed\n");
m_aPassword = aPassword;
m_aUser = aUser;
cupsSetUser( m_aUser.getStr() );
pRet = m_aPassword.getStr();
}
return pRet;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment