diff options
author | Philipp Lohmann <pl@openoffice.org> | 2002-03-01 13:43:36 +0000 |
---|---|---|
committer | Philipp Lohmann <pl@openoffice.org> | 2002-03-01 13:43:36 +0000 |
commit | b2bd677fca3348ab041c7cfba6f1be731f1d5477 (patch) | |
tree | e477cab0b5721453e1a5e0ef03e35a217ca70e9e /padmin/source/adddlg.cxx | |
parent | cc64a0d85089c2107e6abc48c113949c64863a41 (diff) |
#96578# disable next button if command is empty on fax or pdf command page
Diffstat (limited to 'padmin/source/adddlg.cxx')
-rw-r--r-- | padmin/source/adddlg.cxx | 62 |
1 files changed, 41 insertions, 21 deletions
diff --git a/padmin/source/adddlg.cxx b/padmin/source/adddlg.cxx index 913bfb2fab40..6e85422cbc77 100644 --- a/padmin/source/adddlg.cxx +++ b/padmin/source/adddlg.cxx @@ -2,9 +2,9 @@ * * $RCSfile: adddlg.cxx,v $ * - * $Revision: 1.9 $ + * $Revision: 1.10 $ * - * last change: $Author: pl $ $Date: 2002-03-01 08:30:02 $ + * last change: $Author: pl $ $Date: 2002-03-01 14:43:36 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -83,17 +83,21 @@ #include <osl/thread.h> #endif +#include <hash_set> + using namespace rtl; using namespace psp; using namespace padmin; +using namespace std; -APTabPage::APTabPage( Window* pParent, const ResId& rResId ) +APTabPage::APTabPage( AddPrinterDialog* pParent, const ResId& rResId ) : TabPage( pParent, rResId ), - m_aTitle( PaResId( RID_ADDP_STR_TITLE ) ) + m_aTitle( PaResId( RID_ADDP_STR_TITLE ) ), + m_pParent( pParent ) { } -APChooseDevicePage::APChooseDevicePage( Window* pParent ) : +APChooseDevicePage::APChooseDevicePage( AddPrinterDialog* pParent ) : APTabPage( pParent, PaResId( RID_ADDP_PAGE_CHOOSEDEV ) ), m_aPrinterBtn( this, PaResId( RID_ADDP_CHDEV_BTN_PRINTER ) ), m_aFaxBtn( this, PaResId( RID_ADDP_CHDEV_BTN_FAX ) ), @@ -135,7 +139,7 @@ void APChooseDevicePage::fill( PrinterInfo& rInfo ) //-------------------------------------------------------------------- -APChooseDriverPage::APChooseDriverPage( Window* pParent ) +APChooseDriverPage::APChooseDriverPage( AddPrinterDialog* pParent ) : APTabPage( pParent, PaResId( RID_ADDP_PAGE_CHOOSEDRIVER ) ), m_aDriverTxt( this, PaResId( RID_ADDP_CHDRV_TXT_DRIVER ) ), m_aDriverBox( this, PaResId( RID_ADDP_CHDRV_BOX_DRIVER ) ), @@ -336,7 +340,7 @@ IMPL_LINK( APChooseDriverPage, ClickBtnHdl, PushButton*, pButton ) //-------------------------------------------------------------------- -APNamePage::APNamePage( Window* pParent, const String& rInitName, DeviceKind::type eKind ) +APNamePage::APNamePage( AddPrinterDialog* pParent, const String& rInitName, DeviceKind::type eKind ) : APTabPage( pParent, PaResId( RID_ADDP_PAGE_NAME ) ), m_aNameTxt( this, @@ -384,7 +388,7 @@ void APNamePage::fill( PrinterInfo& rInfo ) //-------------------------------------------------------------------- -APCommandPage::APCommandPage( Window* pParent, DeviceKind::type eKind ) +APCommandPage::APCommandPage( AddPrinterDialog* pParent, DeviceKind::type eKind ) : APTabPage( pParent, PaResId( RID_ADDP_PAGE_COMMAND ) ), m_aCommandTxt( this, PaResId( RID_ADDP_CMD_TXT_COMMAND ) ), m_aCommandBox( this, PaResId( eKind == DeviceKind::Pdf ? RID_ADDP_CMD_BOX_PDFCOMMAND : RID_ADDP_CMD_BOX_COMMAND ) ), @@ -437,6 +441,11 @@ APCommandPage::APCommandPage( Window* pParent, DeviceKind::type eKind ) m_aHelpBtn.SetClickHdl( LINK( this, APCommandPage, ClickBtnHdl ) ); m_aPdfDirBtn.SetClickHdl( LINK( this, APCommandPage, ClickBtnHdl ) ); + if( m_eKind != DeviceKind::Printer ) + { + m_aCommandBox.SetModifyHdl( LINK( this, APCommandPage, ModifyHdl ) ); + m_pParent->enableNext( false ); + } } APCommandPage::~APCommandPage() @@ -474,6 +483,15 @@ IMPL_LINK( APCommandPage, ClickBtnHdl, PushButton*, pButton ) return 0; } +IMPL_LINK( APCommandPage, ModifyHdl, ComboBox*, pBox ) +{ + if( pBox == &m_aCommandBox ) + { + m_pParent->enableNext( m_aCommandBox.GetText().Len() ); + } + return 0; +} + bool APCommandPage::check() { return true; @@ -486,7 +504,7 @@ void APCommandPage::fill( PrinterInfo& rInfo ) //-------------------------------------------------------------------- -APOldPrinterPage::APOldPrinterPage( Window* pParent ) +APOldPrinterPage::APOldPrinterPage( AddPrinterDialog* pParent ) : APTabPage( pParent, PaResId( RID_ADDP_PAGE_OLDPRINTERS ) ), m_aOldPrinterTxt( this, PaResId( RID_ADDP_OLD_TXT_PRINTERS ) ), m_aOldPrinterBox( this, PaResId( RID_ADDP_OLD_BOX_PRINTERS ) ), @@ -682,7 +700,7 @@ void APOldPrinterPage::fill( PrinterInfo& rInfo ) //-------------------------------------------------------------------- -APFaxDriverPage::APFaxDriverPage( Window* pParent ) +APFaxDriverPage::APFaxDriverPage( AddPrinterDialog* pParent ) : APTabPage( pParent, PaResId( RID_ADDP_PAGE_FAXDRIVER ) ), m_aFaxTxt( this, PaResId( RID_ADDP_FAXDRV_TXT_DRIVER ) ), m_aDefBtn( this, PaResId( RID_ADDP_FAXDRV_BTN_DEFAULT ) ), @@ -714,7 +732,7 @@ void APFaxDriverPage::fill( PrinterInfo& rInfo ) //-------------------------------------------------------------------- -APPdfDriverPage::APPdfDriverPage( Window* pParent ) +APPdfDriverPage::APPdfDriverPage( AddPrinterDialog* pParent ) : APTabPage( pParent, PaResId( RID_ADDP_PAGE_PDFDRIVER ) ), m_aPdfTxt( this, PaResId( RID_ADDP_PDFDRV_TXT_DRIVER ) ), m_aDefBtn( this, PaResId( RID_ADDP_PDFDRV_BTN_DEFAULT ) ), @@ -970,6 +988,7 @@ void AddPrinterDialog::back() else if( m_pCurrentPage == m_pFaxCommandPage ) { m_pCurrentPage = m_pFaxDriverPage->isDefault() ? (APTabPage*)m_pFaxDriverPage : (APTabPage*)m_pFaxSelectDriverPage; + m_aNextPB.Enable( TRUE ); } else if( m_pCurrentPage == m_pPdfDriverPage ) { @@ -988,6 +1007,7 @@ void AddPrinterDialog::back() else if( m_pCurrentPage == m_pPdfCommandPage ) { m_pCurrentPage = m_pPdfDriverPage->isDefault() || m_pPdfDriverPage->isDist() ? (APTabPage*)m_pPdfDriverPage : (APTabPage*)m_pPdfSelectDriverPage; + m_aNextPB.Enable( TRUE ); } m_pCurrentPage->Show( TRUE ); m_aTitleImage.SetText( m_pCurrentPage->getTitle() ); @@ -1067,17 +1087,17 @@ String AddPrinterDialog::uniquePrinterName( const String& rBase ) int nVersion = 1; bool bDoublet; - do + list< OUString > aPrinterList; + rManager.listPrinters( aPrinterList ); + hash_set< OUString, OUStringHash > aPrinters; + for( list< OUString >::const_iterator it = aPrinterList.begin(); it != aPrinterList.end(); ++it ) + aPrinters.insert( *it ); + while( aPrinters.find( aResult ) != aPrinters.end() ) { - const PrinterInfo& rInfo( rManager.getPrinterInfo( aResult ) ); - bDoublet = aResult == String( rInfo.m_aPrinterName ); - if( bDoublet ) - { - aResult = rBase; - aResult.AppendAscii( "_" ); - aResult += String::CreateFromInt32( nVersion++ ); - } - } while( bDoublet ); + aResult = rBase; + aResult.AppendAscii( "_" ); + aResult += String::CreateFromInt32( nVersion++ ); + } return aResult; } |