Changeset 38
- Timestamp:
- May 8, 2013, 5:56:26 PM (13 years ago)
- Author:
- Alex Taylor
- Message:
-
Printer Manager: various fixes & updates.
- Location:
- trunk/gui
- Files:
-
- 2 added
- 4 edited
- printer/manager/COPYING (added)
- printer/manager/PRINTOOL.VRX (modified) (13 diffs)
- printer/manager/printm_en.txt (modified) (1 diff)
- printer/manager/readme.txt (added)
- shared/PrManUtl.VRS (modified) (2 diffs)
- shared/PrintUtl.VRS (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/gui/printer/manager/PRINTOOL.VRX
r37 r38 98 98 CheckPrograms: PROCEDURE EXPOSE globals. 99 99 100 (追記) globals.!hascups = 0 (追記ここまで) 101 (追記) (追記ここまで) 100 102 /* See if CUPSLPR.EXE (required by CUPS.PDR) is installed. 101 103 */ … … 111 113 globals.!programs.!cupslpr = STREAM( globals.!mydir'\cupslpr.exe', 'C', 'QUERY EXISTS') 112 114 115 (追記) /* See if CUPS.PDR is installed. (追記ここまで) 116 (追記) */ (追記ここまで) 117 (追記) IF globals.!programs.!cupslpr <> '' THEN DO (追記ここまで) 118 (追記) cups_pdr = VRGetIni('PM_PORT_DRIVER', 'CUPS', 'System') (追記ここまで) 119 (追記) IF cups_pdr == '' THEN DO (追記ここまで) 120 (追記) cups_pdr = STREAM( globals.!bootdrv'\OS2\DLL\CUPS.PDR', 'C', 'QUERY EXISTS') (追記ここまで) 121 (追記) IF cups_pdr <> '' THEN CALL VRSetIni('PM_PORT_DRIVER', 'CUPS', cups_pdr, 'System') (追記ここまで) 122 (追記) END (追記ここまで) 123 (追記) IF cups_pdr <> '' THEN (追記ここまで) 124 (追記) globals.!hascups = 1 (追記ここまで) 125 (追記) END (追記ここまで) 126 (追記) (追記ここまで) 113 127 /* See if GZIP.EXE is installed (required for unpacking CUPS PPDs). 114 128 */ … … 119 133 globals.!programs.!gzip = STREAM( globals.!mydir'\gzip.exe', 'C', 'QUERY EXISTS') 120 134 121 (削除) IF globals.!hascups THEN DO (削除ここまで)122 (削除) globals.!programs.!lpadmin = STREAM( globals.!cupsdir'\sbin\lpadmin.exe', 'C', 'QUERY EXISTS') (削除ここまで)123 (削除) globals.!programs.!lpinfo = STREAM( globals.!cupsdir'\sbin\lpinfo.exe', (削除ここまで)'C', 'QUERY EXISTS')124 (削除) globals.!programs.!lpoptions = STREAM( globals.!cupsdir'\bin\lpoptions.exe', (削除ここまで)'C', 'QUERY EXISTS')125 (削除) globals.!programs.!lpstat = STREAM( globals.!cupsdir'\bin\lpstat.exe', (削除ここまで)'C', 'QUERY EXISTS')126 (削除) END (削除ここまで)135 (追記) /* Try and find some other CUPS programs we use. (追記ここまで) 136 (追記) */ (追記ここまで) 137 (追記) globals.!programs.!lpadmin = STREAM( globals.!cupsdir'\sbin\lpadmin.exe', (追記ここまで) 'C', 'QUERY EXISTS') 138 (追記) globals.!programs.!lpinfo = STREAM( globals.!cupsdir'\sbin\lpinfo.exe', (追記ここまで) 'C', 'QUERY EXISTS') 139 (追記) globals.!programs.!lpoptions = STREAM( globals.!cupsdir'\bin\lpoptions.exe', (追記ここまで) 'C', 'QUERY EXISTS') 140 (追記) globals.!programs.!lpstat = STREAM( globals.!cupsdir'\bin\lpstat.exe', 'C', 'QUERY EXISTS') (追記ここまで) 127 141 128 142 RETURN … … 202 216 203 217 IF TRANSLATE( _host ) <> 'LOCALHOST' THEN 204 del_cmd = globals.!programs.!lpadmin '-h' _host '- (削除) d (削除ここまで)' _dest218 del_cmd = globals.!programs.!lpadmin '-h' _host '-(追記) x (追記ここまで)' _dest 205 219 ELSE 206 del_cmd = globals.!programs.!lpadmin '- (削除) d (削除ここまで)' _dest220 del_cmd = globals.!programs.!lpadmin '-(追記) x (追記ここまで)' _dest 207 221 CALL LINEOUT globals.!log1, 'Delete CUPS destination' _dest' with:' del_cmd 208 222 223 (追記) /* (追記ここまで) 209 224 nq = RXQUEUE('CREATE') 210 225 oq = RXQUEUE('SET', nq ) … … 213 228 PARSE PULL _output 214 229 CALL LINEOUT globals.!log2, _output 215 IF LEFT( _output, (削除) 8 ) == 'Password (削除ここまで)' & RIGHT( STRIP( _output ), 1 ) == '?' THEN DO230 IF LEFT( _output, (追記) 12 ) == 'Password for (追記ここまで)' & RIGHT( STRIP( _output ), 1 ) == '?' THEN DO 216 231 CALL SysSleep 1 217 (削除) CALL CHAROUT, (削除ここまで)'0d0a'x232 (追記) PUSH (追記ここまで) '0d0a'x 218 233 END 219 234 END 220 235 CALL RXQUEUE 'SET', oq 221 236 CALL RXQUEUE 'DELETE', nq 222 /* 237 */ 238 239 _od = DIRECTORY() 240 CALL DIRECTORY VRParseFileName( globals.!programs.!lpadmin, 'DP') 223 241 ADDRESS CMD '@' del_cmd '2>&1 >>' globals.!log2 224 */ 242 CALL DIRECTORY _od 225 243 226 244 CALL LINEOUT globals.!log2, '' … … 238 256 /*:VRX DriverDelete 239 257 */ 240 DriverDelete: PROCEDURE EXPOSE globals 258 DriverDelete: PROCEDURE EXPOSE globals. 259 PARSE ARG record 260 IF record == '' THEN DO 261 ok = VRMethod( "CN_DEVICES", "GetRecordList", "Selected", "recs." ) 262 IF ok == 0 | recs.0 < 1 THEN RETURN 263 record = recs.1 264 END 265 CALL VRMethod 'CN_DEVICES', 'SetRecordAttr', record, 'Source', 0 266 267 _name = VRMethod('CN_DEVICES', 'GetFieldData', record, globals.!hcfDevices.!model ) 268 _driver = VRMethod('CN_DEVICES', 'GetFieldData', record, globals.!hcfDevices.!driver ) 269 IF _name == '' THEN RETURN 270 IF _driver == '' THEN RETURN 271 272 IF _driver == 'IBMNULL' THEN DO 273 CALL VRMessage 'WN_MAIN', NLSGetMessage( 212 ), NLSGetMessage( 209 ), 'W' 274 RETURN 275 END 276 277 device_name = _driver'.'_name 278 device_in_use = 0 279 printers.0 = 0 280 CALL RPUEnumPrinters 'printers.' 281 DO i = 1 TO printers.0 282 CALL RPUPrinterQuery printers.i.!name, 'details.' 283 CALL StringTokenize details.!drivers, ',', 'used_dev.' 284 DO j = 1 TO used_dev.0 285 IF used_dev.j == device_name THEN DO 286 device_in_use = 1 287 LEAVE 288 END 289 END 290 IF device_in_use == 1 THEN DO 291 _title = TRANSLATE( printers.i.!description, ' ', '0d0a'x) 292 CALL VRMessage 'WN_MAIN', NLSGetMessage( 208, device_name, _title ), NLSGetMessage( 209 ), 'W' 293 RETURN 294 END 295 END 296 297 _btns.0 = 2 298 _btns.1 = NLSGetMessage( 14 ) 299 _btns.2 = NLSGetMessage( 15 ) 300 _confirm = VRMessage('WN_MAIN', NLSGetMessage( 203, device_name ), NLSGetMessage( 200 ), 'Q', '_btns.', 2, 2 ) 301 IF _confirm == 1 THEN DO 302 success = DeletePrintDriver( _driver, _name ) 303 IF success == 1 THEN CALL RefreshDevices 304 /* TODO check if any other _driver definitions exist and if not, offer to delete _driver files & profile */ 305 END 241 306 242 307 RETURN … … 739 804 LoadSettings: PROCEDURE EXPOSE globals. 740 805 741 globals.!version = '0.3 (削除) (削除ここまで)'806 globals.!version = '0.3(追記) 1 (追記ここまで)' 742 807 globals.!copyright = '2013' 743 808 … … 754 819 cupsdrv = STRIP( cupsdrv, 'T', '\') 755 820 globals.!cupsdir = cupsdrv'\cups' 756 (削除) globals.!hascups = VRIsDir( globals.!cupsdir ) (削除ここまで)757 821 758 822 /* Get system paths. … … 1126 1190 CALL New_CUPS new_ppd 1127 1191 CALL SW_IMPORT_Close 1192 (追記) CALL VRSet 'WN_MAIN', 'Shutdown', 1 (追記ここまで) 1128 1193 RETURN 1129 1194 END … … 1418 1483 /*:VRX PortDelete 1419 1484 */ 1420 PortDelete: PARSE ARG record 1485 PortDelete: PROCEDURE EXPOSE globals. 1486 PARSE ARG record 1421 1487 IF record == '' THEN DO 1422 1488 ok = VRMethod( "CN_PORTS", "GetRecordList", "Selected", "recs." ) … … 1424 1490 record = recs.1 1425 1491 END 1492 (追記) CALL VRMethod 'CN_PORTS', 'SetRecordAttr', record, 'Source', 0 (追記ここまで) 1426 1493 1427 1494 _name = VRMethod('CN_PORTS', 'GetFieldData', record, globals.!hcfPorts.!name ) 1495 (追記) (追記ここまで) 1496 (追記) printers.0 = 0 (追記ここまで) 1497 (追記) CALL RPUEnumPrinters 'printers.' (追記ここまで) 1498 (追記) DO i = 1 TO printers.0 (追記ここまで) 1499 (追記) CALL RPUPrinterQuery printers.i.!name, 'details.' (追記ここまで) 1500 (追記) IF _name == details.!port THEN DO (追記ここまで) 1501 (追記) _title = TRANSLATE( printers.i.!description, ' ', '0d0a'x) (追記ここまで) 1502 (追記) CALL VRMessage 'WN_MAIN', NLSGetMessage( 206, _name, _title ), NLSGetMessage( 207 ), 'W' (追記ここまで) 1503 (追記) RETURN (追記ここまで) 1504 (追記) END (追記ここまで) 1505 (追記) END (追記ここまで) 1506 (追記) (追記ここまで) 1428 1507 IF _name == '' THEN RETURN 1429 1508 _btns.0 = 2 … … 1435 1514 IF success == 1 THEN CALL RefreshPorts 1436 1515 END 1437 (削除) (削除ここまで)1438 (削除) CALL VRMethod 'CN_PRINTERS', 'SetRecordAttr', record, 'Source', 0 (削除ここまで)1439 1516 1440 1517 RETURN … … 1499 1576 IF _confirm == 1 THEN DO 1500 1577 success = CupsDeletePrinter( cups_host, cups_queue ) 1501 IF success == 0 THEN (削除) (削除ここまで)1578 IF success == 0 THEN (追記) DO (追記ここまで) 1502 1579 CALL RPUPortDelete _port 1580 (追記) CALL RefreshPorts (追記ここまで) 1581 (追記) END (追記ここまで) 1503 1582 ELSE 1504 1583 CALL VRMessage 'WN_MAIN', NLSGetMessage( 251, cups_queue, success ), NLSGetMessage( 18 ), 'E' -
trunk/gui/printer/manager/printm_en.txt
r37 r38 218 218 PTM0204I: Printer "%1" points to the local CUPS queue "%2" via port %3. Delete this CUPS queue and port as well? 219 219 PTM0205I: Add a new port of type %1? 220 PTM0206 (削除) ?: (削除ここまで)221 PTM0207 (削除) ?: (削除ここまで)222 PTM0208 (削除) ?: (削除ここまで)223 PTM0209 (削除) ?: (削除ここまで)220 PTM0206(追記) I: Port %1 cannot be deleted, as it is currently assigned to the printer "%2". (追記ここまで) 221 PTM0207(追記) I: Port In Use (追記ここまで) 222 PTM0208(追記) I: Driver "%1" cannot be deleted, as it is currently in use by the printer "%2". (追記ここまで) 223 PTM0209(追記) I: Device In Use (追記ここまで) 224 224 PTM0210I: No Properties 225 225 PTM0211I: There are no properties available for the port %1. 226 PTM0212 (削除) ?: (削除ここまで)226 PTM0212(追記) I: The IBMNULL driver cannot be deleted. (追記ここまで) 227 227 PTM0213?: 228 228 PTM0214?: -
trunk/gui/shared/PrManUtl.VRS
r33 r38 491 491 CALL VRSetIni 'PM_SPOOLER_DD', driver'.'model, driver'.DRV;;;'||'00'x, 'SYSTEM' 492 492 END 493 (追記) RETURN ok (追記ここまで) 494 (追記) (追記ここまで) 495 (追記) /*:VRX DeletePrintDriver (追記ここまで) 496 (追記) */ (追記ここまで) 497 (追記) /* Removes (that is to say, de-registers with the spooler) a PM printer (追記ここまで) 498 (追記) * device driver/model. (追記ここまで) 499 (追記) * (追記ここまで) 500 (追記) * driver - The name of the printerpak driver (without path or extension) (追記ここまで) 501 (追記) * model - The printer make/model name used by the driver (追記ここまで) 502 (追記) * (追記ここまで) 503 (追記) * Returns: 0 on success, 1 on error (追記ここまで) 504 (追記) */ (追記ここまで) 505 (追記) DeletePrintDriver: PROCEDURE EXPOSE globals. (追記ここまで) 506 (追記) PARSE ARG driver, model (追記ここまで) 507 (追記) (追記ここまで) 508 (追記) ok = VRDelIni('PM_SPOOLER_DD', driver'.'model, 'SYSTEM') (追記ここまで) 493 509 RETURN ok 494 510 … … 807 823 RETURN success 808 824 825 (追記) /*:VRX StringTokenize (追記ここまで) 826 (追記) */ (追記ここまで) 827 (追記) StringTokenize: (追記ここまで) 828 (追記) PARSE ARG string, separator, __stem (追記ここまで) 829 (追記) CALL __StringTokenize string, separator, __stem (追記ここまで) 830 (追記) DROP __stem (追記ここまで) 831 (追記) RETURN (追記ここまで) 832 (追記) (追記ここまで) 833 (追記) /*:VRX __StringTokenize (追記ここまで) 834 (追記) */ (追記ここまで) 835 (追記) __StringTokenize: PROCEDURE EXPOSE (__stem) (追記ここまで) 836 (追記) PARSE ARG string, separator, tokens (追記ここまで) 837 (追記) (追記ここまで) 838 (追記) /* Note: this differs slightly from my usual implementation in that (追記ここまで) 839 (追記) * each token is STRIPped of leading and trailing spaces. (追記ここまで) 840 (追記) */ (追記ここまで) 841 (追記) (追記ここまで) 842 (追記) IF ( string = '') THEN RETURN string (追記ここまで) 843 (追記) IF ( separator = '') THEN separator = ' ' (追記ここまで) 844 (追記) (追記ここまで) 845 (追記) i = 0 (追記ここまで) 846 (追記) CALL VALUE tokens || '0', i (追記ここまで) 847 (追記) DO WHILE LENGTH( string ) > 0 (追記ここまで) 848 (追記) x = 1 (追記ここまで) 849 (追記) y = POS( separator, string, x ) (追記ここまで) 850 (追記) IF y > 0 THEN DO (追記ここまで) 851 (追記) current = SUBSTR( string, 1, y-1 ) (追記ここまで) 852 (追記) x = y + 1 (追記ここまで) 853 (追記) i = i + 1 (追記ここまで) 854 (追記) CALL VALUE tokens || 'i', STRIP( current ) (追記ここまで) 855 (追記) END (追記ここまで) 856 (追記) ELSE DO (追記ここまで) 857 (追記) current = STRIP( string, 'B', separator ) (追記ここまで) 858 (追記) i = i + 1 (追記ここまで) 859 (追記) CALL VALUE tokens || 'i', STRIP( current ) (追記ここまで) 860 (追記) x = LENGTH( string ) + 1 (追記ここまで) 861 (追記) END (追記ここまで) 862 (追記) string = SUBSTR( string, x ) (追記ここまで) 863 (追記) END (追記ここまで) 864 (追記) CALL VALUE tokens || '0', i (追記ここまで) 865 (追記) (追記ここまで) 866 (追記) RETURN (追記ここまで) 867 (追記) (追記ここまで) -
trunk/gui/shared/PrintUtl.VRS
r27 r38 182 182 printer_name = TRANSLATE( printer_name, '_', '.') 183 183 184 printer_drv = globals.! (削除) bootdrv'\OS2 (削除ここまで)\DLL\'driver_name'\'driver_name'.DRV'184 printer_drv = globals.!(追記) os2dir' (追記ここまで)\DLL\'driver_name'\'driver_name'.DRV' 185 185 /* ?? TODO: install driver_name if not found (prompt first) ?? */ 186 186 … … 535 535 WHEN LEFT( line, 18 ) == '*StpResolutionMap:' THEN NOP 536 536 WHEN LEFT( line, 14 ) == '*OPOptionHints' THEN NOP 537 (追記) WHEN LEFT( line, 4 ) == '*da.' THEN NOP (追記ここまで) 537 538 WHEN LEFT( line, 4 ) == '*de.' THEN NOP 538 539 WHEN LEFT( line, 4 ) == '*es.' THEN NOP 540 (追記) WHEN LEFT( line, 4 ) == '*fi.' THEN NOP (追記ここまで) 539 541 WHEN LEFT( line, 4 ) == '*fr.' THEN NOP 540 542 WHEN LEFT( line, 4 ) == '*it.' THEN NOP 541 543 WHEN LEFT( line, 4 ) == '*ja.' THEN NOP 542 544 WHEN LEFT( line, 4 ) == '*ko.' THEN NOP 545 (追記) WHEN LEFT( line, 4 ) == '*nb.' THEN NOP (追記ここまで) 543 546 WHEN LEFT( line, 4 ) == '*nl.' THEN NOP 544 547 WHEN LEFT( line, 4 ) == '*pt.' THEN NOP … … 581 584 PARSE UPPER ARG driver_name, printer_name 582 585 printer_name = TRANSLATE( printer_name, '_', '.') 583 printer_drv = globals.! (削除) bootdrv'\OS2 (削除ここまで)\DLL\'driver_name'\'driver_name'.DRV'586 printer_drv = globals.!(追記) os2dir' (追記ここまで)\DLL\'driver_name'\'driver_name'.DRV' 584 587 models.0 = 0 585 588
Note:
See TracChangeset
for help on using the changeset viewer.