1 /**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements. See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership. The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License. You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied. See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23
24 #include <stdio.h>
25 #include <vcl/msgbox.hxx>
26 #include <vcl/svapp.hxx>
27 #ifndef _PAD_RTSETUP_HRC_
28 #include <rtsetup.hrc>
29 #endif
30 #include <cmddlg.hxx>
31 #include <padialog.hxx>
32 #include <helper.hxx>
33 #include <prtsetup.hxx>
34
35 using namespace psp;
36 using namespace rtl;
37 using namespace padmin;
38
39 #define PRINTER_PERSISTENCE_GROUP "KnownPrinterCommands"
40 #define FAX_PERSISTENCE_GROUP "KnownFaxCommands"
41 #define PDF_PERSISTENCE_GROUP "KnowPdfCommands"
42 #define MAX_COMMANDS 50
43
getSystemPrintCommands(::std::list<String> & rCommands)44 void CommandStore::getSystemPrintCommands( ::std::list< String >& rCommands )
45 {
46 static ::std::list< OUString > aSysCommands;
47 static bool bOnce = false;
48 if( ! bOnce )
49 {
50 bOnce = true;
51 PrinterInfoManager::get().getSystemPrintCommands( aSysCommands );
52 }
53
54 ::std::list< OUString >::const_iterator it;
55 for( it = aSysCommands.begin(); it != aSysCommands.end(); ++it )
56 rCommands.push_back( *it );
57 }
58
getSystemPdfCommands(::std::list<String> & rCommands)59 void CommandStore::getSystemPdfCommands( ::std::list< String >& rCommands )
60 {
61 static bool bOnce = false;
62 static ::std::list< String > aSysCommands;
63
64 if( ! bOnce )
65 {
66 bOnce = true;
67 char pBuffer[1024];
68 FILE* pPipe;
69 String aCommand;
70 rtl_TextEncoding aEncoding = osl_getThreadTextEncoding();
71
72 pPipe = popen( "which gs 2>/dev/null", "r" );
73 if( pPipe )
74 {
75 if (fgets( pBuffer, sizeof( pBuffer ), pPipe ) != NULL)
76 {
77 int nLen = strlen( pBuffer );
78 if( pBuffer[nLen-1] == '\n' ) // strip newline
79 pBuffer[--nLen] = 0;
80 aCommand = String( ByteString( pBuffer ), aEncoding );
81 if( ( ( aCommand.GetChar( 0 ) == '/' )
82 || ( aCommand.GetChar( 0 ) == '.' && aCommand.GetChar( 1 ) == '/' )
83 || ( aCommand.GetChar( 0 ) == '.' && aCommand.GetChar( 1 ) == '.' && aCommand.GetChar( 2 ) == '/' ) )
84 && nLen > 2
85 && aCommand.GetChar( nLen-2 ) == 'g'
86 && aCommand.GetChar( nLen-1 ) == 's' )
87 {
88 aCommand.AppendAscii( " -q -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=\"(OUTFILE)\" -" );
89 aSysCommands.push_back( aCommand );
90 }
91 }
92 pclose( pPipe );
93 }
94
95 pPipe = popen( "which distill 2>/dev/null", "r" );
96 if( pPipe )
97 {
98 if (fgets( pBuffer, sizeof( pBuffer ), pPipe ) != NULL)
99 {
100 int nLen = strlen( pBuffer );
101 if( pBuffer[nLen-1] == '\n' ) // strip newline
102 pBuffer[--nLen] = 0;
103 aCommand = String( ByteString( pBuffer ), aEncoding );
104 if( ( ( aCommand.GetChar( 0 ) == '/' )
105 || ( aCommand.GetChar( 0 ) == '.' && aCommand.GetChar( 1 ) == '/' )
106 || ( aCommand.GetChar( 0 ) == '.' && aCommand.GetChar( 1 ) == '.' && aCommand.GetChar( 2 ) == '/' ) )
107 && nLen > 7
108 && aCommand.Copy( nLen - 8 ).EqualsAscii( "/distill" ) )
109 {
110 aCommand.AppendAscii( " (TMP) ; mv `echo (TMP) | sed s/\\.ps\\$/.pdf/` \"(OUTFILE)\"" );
111 aSysCommands.push_back( aCommand );
112 }
113 }
114 pclose( pPipe );
115 }
116 }
117 ::std::list< String >::const_iterator it;
118 for( it = aSysCommands.begin(); it != aSysCommands.end(); ++it )
119 rCommands.push_back( *it );
120 }
121
122
123
getStoredCommands(const char * pGroup,::std::list<String> & rCommands)124 void CommandStore::getStoredCommands( const char* pGroup, ::std::list< String >& rCommands )
125 {
126 Config& rConfig( getPadminRC() );
127 rConfig.SetGroup( pGroup );
128 int nKeys = rConfig.GetKeyCount();
129 ::std::list< String >::const_iterator it;
130 while( nKeys-- )
131 {
132 String aCommand( rConfig.ReadKey( ByteString::CreateFromInt32( nKeys ), RTL_TEXTENCODING_UTF8 ) );
133 if( aCommand.Len() )
134 {
135 for( it = rCommands.begin(); it != rCommands.end() && *it != aCommand; ++it )
136 ;
137 if( it == rCommands.end() )
138 rCommands.push_back( aCommand );
139 }
140 }
141 }
142
setCommands(const char * pGroup,const::std::list<String> & rCommands,const::std::list<String> & rSysCommands)143 void CommandStore::setCommands(
144 const char* pGroup,
145 const ::std::list< String >& rCommands,
146 const ::std::list< String >& rSysCommands
147 )
148 {
149 Config& rConfig( getPadminRC() );
150 rConfig.DeleteGroup( pGroup );
151 rConfig.SetGroup( pGroup );
152 ::std::list< String >::const_iterator it, loop;
153 ::std::list< String > aWriteList;
154
155 int nWritten = 0;
156 for( it = rCommands.begin(); it != rCommands.end(); ++it )
157 {
158 if( it->Len() )
159 {
160 for( loop = rSysCommands.begin(); loop != rSysCommands.end() && *loop != *it; ++loop )
161 ;
162 if( loop == rSysCommands.end() )
163 {
164 aWriteList.push_back( *it );
165 nWritten++;
166 }
167 }
168 }
169 while( nWritten > MAX_COMMANDS )
170 {
171 aWriteList.pop_front();
172 nWritten--;
173 }
174 for( nWritten = 0, it = aWriteList.begin(); it != aWriteList.end(); ++it, ++nWritten )
175 rConfig.WriteKey( ByteString::CreateFromInt32( nWritten ), ByteString( *it, RTL_TEXTENCODING_UTF8 ) );
176 }
177
178
getPrintCommands(::std::list<String> & rCommands)179 void CommandStore::getPrintCommands( ::std::list< String >& rCommands )
180 {
181 rCommands.clear();
182 getSystemPrintCommands( rCommands );
183 getStoredCommands( PRINTER_PERSISTENCE_GROUP, rCommands );
184 }
185
getPdfCommands(::std::list<String> & rCommands)186 void CommandStore::getPdfCommands( ::std::list< String >& rCommands )
187 {
188 rCommands.clear();
189 getSystemPdfCommands( rCommands );
190 getStoredCommands( PDF_PERSISTENCE_GROUP, rCommands );
191 }
192
getFaxCommands(::std::list<String> & rCommands)193 void CommandStore::getFaxCommands( ::std::list< String >& rCommands )
194 {
195 rCommands.clear();
196 getStoredCommands( FAX_PERSISTENCE_GROUP, rCommands );
197 }
198
setPrintCommands(const::std::list<String> & rCommands)199 void CommandStore::setPrintCommands( const ::std::list< String >& rCommands )
200 {
201 ::std::list< String > aSysCmds;
202 getSystemPrintCommands( aSysCmds );
203 setCommands( PRINTER_PERSISTENCE_GROUP, rCommands, aSysCmds );
204 }
205
setPdfCommands(const::std::list<String> & rCommands)206 void CommandStore::setPdfCommands( const ::std::list< String >& rCommands )
207 {
208 ::std::list< String > aSysCmds;
209 getSystemPdfCommands( aSysCmds );
210 setCommands( PDF_PERSISTENCE_GROUP, rCommands, aSysCmds );
211 }
212
setFaxCommands(const::std::list<String> & rCommands)213 void CommandStore::setFaxCommands( const ::std::list< String >& rCommands )
214 {
215 ::std::list< String > aSysCmds;
216 setCommands( FAX_PERSISTENCE_GROUP, rCommands, aSysCmds );
217 }
218
219
RTSCommandPage(RTSDialog * pParent)220 RTSCommandPage::RTSCommandPage( RTSDialog* pParent ) :
221 TabPage( &pParent->m_aTabControl, PaResId( RID_RTS_COMMANDPAGE ) ),
222 m_pParent( pParent ),
223 m_aCommandsCB( this, PaResId( RID_RTS_CMD_CB_COMMANDS ) ),
224 m_aExternalCB( this, PaResId( RID_RTS_CMD_CB_EXTERNAL ) ),
225 m_aQuickFT( this, PaResId( RID_RTS_CMD_FT_QUICKCMD ) ),
226 m_aQuickCB( this, PaResId( RIT_RTS_CMD_CB_QUICKCMD ) ),
227 m_aCommandTitle( this, PaResId( RID_RTS_CMD_FL_INSTALL ) ),
228 m_aPrinterName( this, PaResId( RID_RTS_CMD_TXT_PRTNAME ) ),
229 m_aConnectedTo( this, PaResId( RID_RTS_CMD_TXT_CONNECT ) ),
230 m_aPrinterFL( this, PaResId( RID_RTS_CMD_FL_DEFAULT ) ),
231 m_aConfigureText( this, PaResId( RID_RTS_CMD_TXT_CONFIGURE ) ),
232 m_aConfigureBox( this, PaResId( RID_RTS_CMD_LB_CONFIGURE ) ),
233 m_aPdfDirectoryText( this, PaResId( RID_RTS_CMD_TXT_PDFDIR ) ),
234 m_aPdfDirectoryButton( this, PaResId( RID_RTS_CMD_BTN_PDFDIR ) ),
235 m_aPdfDirectoryEdit( this, PaResId( RID_RTS_CMD_EDT_PDFDIR ) ),
236 m_aFaxSwallowBox( this, PaResId( RID_RTS_CMD_BOX_SWALLOWFAXNO ) ),
237 m_aHelpButton( this, PaResId( RID_RTS_CMD_BTN_HELP ) ),
238 m_aRemovePB( this, PaResId( RID_RTS_CMD_BTN_REMOVE ) ),
239 m_aFaxHelp( PaResId( RID_RTS_CMD_STR_FAXHELP ) ),
240 m_aPrinterHelp( PaResId( RID_RTS_CMD_STR_PRINTERHELP ) ),
241 m_aPdfHelp( PaResId( RID_RTS_CMD_STR_PDFHELP ) )
242 {
243 // configuring as printer is only sensible in default print system
244 PrinterInfoManager& rMgr( PrinterInfoManager::get() );
245 if( rMgr.getType() == PrinterInfoManager::Default || rMgr.isCUPSDisabled() )
246 m_nPrinterEntry = m_aConfigureBox.InsertEntry( String( PaResId( RID_RTS_CMD_STR_CONFIGURE_PRINTER ) ) );
247 else
248 m_nPrinterEntry = ~0;
249 m_nFaxEntry = m_aConfigureBox.InsertEntry( String( PaResId( RID_RTS_CMD_STR_CONFIGURE_FAX ) ) );
250 m_nPdfEntry = m_aConfigureBox.InsertEntry( String( PaResId( RID_RTS_CMD_STR_CONFIGURE_PDF ) ) );
251
252 FreeResource();
253
254 CommandStore::getPrintCommands( m_aPrinterCommands );
255 CommandStore::getFaxCommands( m_aFaxCommands );
256 CommandStore::getPdfCommands( m_aPdfCommands );
257
258 m_aPrinterName.SetText( m_pParent->m_aPrinter );
259
260 m_aCommandsCB.SetDoubleClickHdl( LINK( this, RTSCommandPage, DoubleClickHdl ) );
261 m_aCommandsCB.SetSelectHdl( LINK( this, RTSCommandPage, SelectHdl ) );
262 m_aCommandsCB.SetModifyHdl( LINK( this, RTSCommandPage, ModifyHdl ) );
263 m_aConfigureBox.SetSelectHdl( LINK( this, RTSCommandPage, SelectHdl ) );
264 m_aHelpButton.SetClickHdl( LINK( this, RTSCommandPage, ClickBtnHdl ) );
265 m_aRemovePB.SetClickHdl( LINK( this, RTSCommandPage, ClickBtnHdl ) );
266 m_aPdfDirectoryButton.SetClickHdl( LINK( this, RTSCommandPage, ClickBtnHdl ) );
267 m_aExternalCB.SetToggleHdl( LINK( this, RTSCommandPage, ClickBtnHdl ) );
268
269 m_aPdfDirectoryButton.Show( sal_False );
270 m_aPdfDirectoryEdit.Show( sal_False );
271 m_aPdfDirectoryText.Show( sal_False );
272 m_aFaxSwallowBox.Show( sal_False );
273 m_aCommandsCB.SetText( m_pParent->m_aJobData.m_aCommand );
274 m_aQuickCB.SetText( m_pParent->m_aJobData.m_aQuickCommand );
275
276 m_bWasFax = false;
277 m_bWasPdf = false;
278 m_aConfigureBox.SelectEntryPos( m_nPrinterEntry );
279 sal_Int32 nIndex = 0;
280 while( nIndex != -1 )
281 {
282 OUString aToken( m_pParent->m_aJobData.m_aFeatures.getToken( 0, ',', nIndex ) );
283 if( ! aToken.compareToAscii( "fax", 3 ) )
284 {
285 m_bWasFax = true;
286 m_aFaxSwallowBox.Show( sal_True );
287 sal_Int32 nPos = 0;
288 m_aFaxSwallowBox.Check( ! aToken.getToken( 1, '=', nPos ).compareToAscii( "swallow", 7 ) ? sal_True : sal_False );
289 m_aConfigureBox.SelectEntryPos( m_nFaxEntry );
290 }
291 else if( ! aToken.compareToAscii( "pdf=", 4 ) )
292 {
293 m_bWasPdf = true;
294 sal_Int32 nPos = 0;
295 m_aPdfDirectoryEdit.SetText( aToken.getToken( 1, '=', nPos ) );
296 m_aPdfDirectoryEdit.Show( sal_True );
297 m_aPdfDirectoryButton.Show( sal_True );
298 m_aPdfDirectoryText.Show( sal_True );
299 m_aConfigureBox.SelectEntryPos( m_nPdfEntry );
300 }
301 else if( ! aToken.compareToAscii( "external_dialog" ) )
302 {
303 m_aExternalCB.Check();
304 m_bWasExternalDialog = true;
305 }
306 }
307
308 m_aQuickCB.Enable( m_aExternalCB.IsChecked() );
309
310 String aString( m_aConnectedTo.GetText() );
311 aString += String( m_pParent->m_aJobData.m_aCommand );
312 m_aConnectedTo.SetText( aString );
313
314 UpdateCommands();
315 }
316
~RTSCommandPage()317 RTSCommandPage::~RTSCommandPage()
318 {
319 }
320
save()321 void RTSCommandPage::save()
322 {
323 String aCommand,aQuickCommand;
324 bool bHaveFax = m_aConfigureBox.GetSelectEntryPos() == m_nFaxEntry ? true : false;
325 bool bHavePdf = m_aConfigureBox.GetSelectEntryPos() == m_nPdfEntry ? true : false;
326 ::std::list< String >::iterator it;
327
328 String aFeatures;
329 sal_Int32 nIndex = 0;
330 String aOldPdfPath;
331 bool bOldFaxSwallow = false;
332 bool bFaxSwallow = m_aFaxSwallowBox.IsChecked() ? true : false;
333 bool bOldExternalDialog = false, bExternalDialog = m_aExternalCB.IsChecked() ? true : false;
334
335 while( nIndex != -1 )
336 {
337 OUString aToken( m_pParent->m_aJobData.m_aFeatures.getToken( 0, ',', nIndex ) );
338 if( aToken.compareToAscii( "fax", 3 ) &&
339 aToken.compareToAscii( "pdf", 3 ) &&
340 aToken.compareToAscii( "external_dialog" )
341 )
342 {
343 if( aToken.getLength() )
344 {
345 if( aFeatures.Len() )
346 aFeatures += ',';
347 aFeatures += String( aToken );
348 }
349 }
350 else if( ! aToken.compareToAscii( "pdf=", 4 ) )
351 {
352 sal_Int32 nPos = 0;
353 aOldPdfPath = aToken.getToken( 1, '=', nPos );
354 }
355 else if( ! aToken.compareToAscii( "fax=", 4 ) )
356 {
357 sal_Int32 nPos = 0;
358 bOldFaxSwallow = aToken.getToken( 1, '=', nPos ).compareToAscii( "swallow", 7 ) ? false : true;
359 }
360 else if( ! aToken.compareToAscii( "external_dialog" ) )
361 {
362 bOldExternalDialog = true;
363 }
364 }
365 ::std::list< String >* pList = &m_aPrinterCommands;
366 if( bExternalDialog )
367 {
368 if( aFeatures.Len() )
369 aFeatures += ',';
370 aFeatures.AppendAscii( "external_dialog" );
371 }
372 if( bHaveFax )
373 {
374 if( aFeatures.Len() )
375 aFeatures += ',';
376 aFeatures.AppendAscii( "fax=" );
377 if( bFaxSwallow )
378 aFeatures.AppendAscii( "swallow" );
379 pList = &m_aFaxCommands;
380 }
381 if( bHavePdf )
382 {
383 if( aFeatures.Len() )
384 aFeatures += ',';
385 aFeatures.AppendAscii( "pdf=" );
386 aFeatures.Append( m_aPdfDirectoryEdit.GetText() );
387 pList = &m_aPdfCommands;
388 }
389 aCommand = m_aCommandsCB.GetText();
390 aQuickCommand = m_aQuickCB.GetText();
391 for( it = pList->begin(); it != pList->end() && *it != aCommand; ++it )
392 ;
393 if( it == pList->end() )
394 pList->push_back( aCommand );
395
396 if( aCommand != String( m_pParent->m_aJobData.m_aCommand ) ||
397 aQuickCommand != String( m_pParent->m_aJobData.m_aQuickCommand ) ||
398 ( m_bWasFax && ! bHaveFax ) ||
399 ( ! m_bWasFax && bHaveFax ) ||
400 ( m_bWasPdf && ! bHavePdf ) ||
401 ( ! m_bWasPdf && bHavePdf ) ||
402 ( bHavePdf && aOldPdfPath != m_aPdfDirectoryEdit.GetText() ) ||
403 ( bHaveFax && bFaxSwallow != bOldFaxSwallow ) ||
404 ( m_bWasExternalDialog && ! bExternalDialog ) ||
405 ( ! m_bWasExternalDialog && bExternalDialog )
406 )
407 {
408 m_pParent->m_aJobData.m_aCommand = aCommand;
409 m_pParent->m_aJobData.m_aQuickCommand = aQuickCommand;
410 m_pParent->m_aJobData.m_aFeatures = aFeatures;
411
412 PrinterInfoManager::get().changePrinterInfo( m_pParent->m_aPrinter, m_pParent->m_aJobData );
413 }
414 CommandStore::setPrintCommands( m_aPrinterCommands );
415 CommandStore::setFaxCommands( m_aFaxCommands );
416 CommandStore::setPdfCommands( m_aPdfCommands );
417 }
418
419
IMPL_LINK(RTSCommandPage,SelectHdl,Control *,pBox)420 IMPL_LINK( RTSCommandPage, SelectHdl, Control*, pBox )
421 {
422 if( pBox == &m_aConfigureBox )
423 {
424 sal_Bool bEnable = m_aConfigureBox.GetSelectEntryPos() == m_nPdfEntry ? sal_True : sal_False;
425 m_aPdfDirectoryButton.Show( bEnable );
426 m_aPdfDirectoryEdit.Show( bEnable );
427 m_aPdfDirectoryText.Show( bEnable );
428 bEnable = m_aConfigureBox.GetSelectEntryPos() == m_nFaxEntry ? sal_True : sal_False;
429 m_aFaxSwallowBox.Show( bEnable );
430 UpdateCommands();
431 }
432 else if( pBox == &m_aCommandsCB )
433 {
434 m_aRemovePB.Enable( sal_True );
435 }
436
437 return 0;
438 }
439
IMPL_LINK(RTSCommandPage,ClickBtnHdl,Button *,pButton)440 IMPL_LINK( RTSCommandPage, ClickBtnHdl, Button*, pButton )
441 {
442 if( pButton == & m_aPdfDirectoryButton )
443 {
444 String aPath( m_aPdfDirectoryEdit.GetText() );
445 if( chooseDirectory( aPath ) )
446 m_aPdfDirectoryEdit.SetText( aPath );
447 }
448 else if( pButton == &m_aRemovePB )
449 {
450 String aEntry( m_aCommandsCB.GetText() );
451 ::std::list< String >* pList;
452 if( m_aConfigureBox.GetSelectEntryPos() == m_nPrinterEntry )
453 pList = &m_aPrinterCommands;
454 else if( m_aConfigureBox.GetSelectEntryPos() == m_nFaxEntry )
455 pList = &m_aFaxCommands;
456 else
457 pList = &m_aPdfCommands;
458
459 pList->remove( aEntry );
460 m_aCommandsCB.RemoveEntry( aEntry );
461 m_aQuickCB.RemoveEntry( aEntry );
462 }
463 else if( pButton == &m_aHelpButton )
464 {
465 String aHelpText;
466 if( m_aConfigureBox.GetSelectEntryPos() == m_nPrinterEntry )
467 aHelpText = m_aPrinterHelp;
468 else if( m_aConfigureBox.GetSelectEntryPos() == m_nFaxEntry )
469 aHelpText = m_aFaxHelp;
470 else if( m_aConfigureBox.GetSelectEntryPos() == m_nPdfEntry )
471 aHelpText = m_aPdfHelp;
472
473 InfoBox aBox( this, aHelpText );
474 aBox.Execute();
475 }
476 else if( pButton == &m_aExternalCB )
477 {
478 m_aQuickCB.Enable( m_aExternalCB.IsChecked() );
479 }
480 return 0;
481 }
482
IMPL_LINK(RTSCommandPage,DoubleClickHdl,ComboBox *,pComboBox)483 IMPL_LINK( RTSCommandPage, DoubleClickHdl, ComboBox*, pComboBox )
484 {
485 if( pComboBox == &m_aCommandsCB )
486 ConnectCommand();
487 return 0;
488 }
489
IMPL_LINK(RTSCommandPage,ModifyHdl,Edit *,pEdit)490 IMPL_LINK( RTSCommandPage, ModifyHdl, Edit*, pEdit )
491 {
492 if( pEdit == &m_aCommandsCB )
493 m_aRemovePB.Enable( m_aCommandsCB.GetEntryPos( m_aCommandsCB.GetText() ) != LISTBOX_ENTRY_NOTFOUND );
494
495 return 0;
496 }
497
UpdateCommands()498 void RTSCommandPage::UpdateCommands()
499 {
500 m_aCommandsCB.Clear();
501 ::std::list< String >::iterator it;
502 if( m_aConfigureBox.GetSelectEntryPos() == m_nPrinterEntry )
503 {
504 for( it = m_aPrinterCommands.begin(); it != m_aPrinterCommands.end(); ++it )
505 {
506 m_aCommandsCB.InsertEntry( *it );
507 m_aQuickCB.InsertEntry( *it );
508 }
509 if( ! m_bWasFax )
510 m_aCommandsCB.SetText( m_pParent->m_aJobData.m_aCommand );
511 else
512 m_aCommandsCB.SetText( String() );
513 }
514 else if( m_aConfigureBox.GetSelectEntryPos() == m_nFaxEntry )
515 {
516 for( it = m_aFaxCommands.begin(); it != m_aFaxCommands.end(); ++it )
517 {
518 m_aCommandsCB.InsertEntry( *it );
519 m_aQuickCB.InsertEntry( *it );
520 }
521 if( m_bWasFax )
522 m_aCommandsCB.SetText( m_pParent->m_aJobData.m_aCommand );
523 else
524 m_aCommandsCB.SetText( String() );
525 }
526 else if( m_aConfigureBox.GetSelectEntryPos() == m_nPdfEntry )
527 {
528 for( it = m_aPdfCommands.begin(); it != m_aPdfCommands.end(); ++it )
529 {
530 m_aCommandsCB.InsertEntry( *it );
531 m_aQuickCB.InsertEntry( *it );
532 }
533 if( m_bWasPdf )
534 m_aCommandsCB.SetText( m_pParent->m_aJobData.m_aCommand );
535 else
536 m_aCommandsCB.SetText( String() );
537 }
538 }
539
ConnectCommand()540 void RTSCommandPage::ConnectCommand()
541 {
542 String aString( m_aConnectedTo.GetText().GetToken( 0, ':' ) );
543 aString.AppendAscii( ": " );
544 aString += m_aCommandsCB.GetText();
545
546 m_aConnectedTo.SetText( aString );
547 }
548