Changeset 58
- Timestamp:
- Jul 15, 2017, 1:19:09 PM (8 years ago)
- Author:
- Alex Taylor
- Message:
-
Incremented version to 0.7.
Fix population of shipped driver list when opening Install Driver dialog.
Fix installation of non-PostScript drivers from Drivers tab (parsing of DFFF EA type).
Refresh properly when deleting the only printer, driver, or port.
Add 'ArcaOS' to branding logic.
Added more logging (still needs work).
- Location:
- trunk/gui
- Files:
-
- 4 edited
- printer/manager/PRINTOOL.VRP (modified) (1 diff)
- printer/manager/PRINTOOL.VRX (modified) (22 diffs)
- printer/manager/PRINTOOL.VRY (modified) ( previous)
- shared/PrManUtl.VRS (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/gui/printer/manager/PRINTOOL.VRP
r57 r58 4 4 MacroPath: VRM:E:\DEVELOPMENT\VXREXX\Projects\PrintTool 5 5 EXEPath: E:\Development\VXREXX\Projects\PrintTool\PRINTMAN.EXE 6 RunParameters: (削除) (削除ここまで)6 RunParameters: (追記) /D (追記ここまで) 7 7 RunDirectory: 8 VRXWindow: __VREMainWindow,1, (削除) 506,4095 (削除ここまで),6697,80469 VRXWindow: __VRESectionListWindow,1, (削除) 614 (削除ここまで),16044,4204,405910 VRXWindow: __VREToolsWindow,1, (削除) 638,14309,5469,1665 (削除ここまで)11 VRXWindow: __VREWindListWindow,1, (削除) 4854 (削除ここまで),16044,3505,40598 VRXWindow: __VREMainWindow,1,(追記) 687,4192 (追記ここまで),6697,8046 9 VRXWindow: __VRESectionListWindow,1,(追記) 795 (追記ここまで),16044,4204,4059 10 VRXWindow: __VREToolsWindow,1,(追記) 819,14309,5469,1661 (追記ここまで) 11 VRXWindow: __VREWindListWindow,1,(追記) 5035 (追記ここまで),16044,3505,4059 12 12 UserFile: 1 13 13 UserWindow: WN_MAIN,1 -
trunk/gui/printer/manager/PRINTOOL.VRX
r57 r58 277 277 */ 278 278 DDCB_DEVICE_3RDPARTY_Click: PROCEDURE EXPOSE globals. shipped. 279 (追記) IF VRGet('DDCB_DEVICE_3RDPARTY', 'Enabled') == 0 THEN RETURN (追記ここまで) 280 (追記) (追記ここまで) 279 281 new_path = TRANSLATE( STRIP( VRGet('DDCB_DEVICE_3RDPARTY', 'SelectedString'))) 280 282 IF new_path == '' THEN RETURN … … 289 291 */ 290 292 DDCB_DEVICE_3RDPARTY_Verify: PROCEDURE EXPOSE globals. shipped. 293 (追記) IF VRGet('DDCB_DEVICE_3RDPARTY', 'Enabled') == 0 THEN RETURN (追記ここまで) 294 (追記) (追記ここまで) 291 295 old_path = VRGet('DDCB_DEVICE_3RDPARTY', 'UserData') 292 296 new_path = TRANSLATE( STRIP( VRGet('DDCB_DEVICE_3RDPARTY', 'Value'))) … … 363 367 IF _confirm == 1 THEN DO 364 368 success = DeletePrintDriver( _driver, _name ) 369 (追記) CALL LINEOUT globals.!log1, 'Deleting installed driver' device_name':' success (追記ここまで) 365 370 IF success == 1 THEN CALL RefreshDevices 371 (追記) (追記ここまで) 366 372 /* TODO check if any other _driver definitions exist and if not, offer to delete _driver files & profile */ 367 373 END … … 382 388 IF globals.!prdrv == '' THEN RETURN 0 383 389 384 IF globals.!is_ecs == 1 THEN _osname = 'eComStation' 390 IF globals.!oem_os == 1 THEN _osname = 'eComStation' 391 ELSE IF globals.!oem_os == 2 THEN _osname = 'ArcaOS' 385 392 ELSE _osname = 'OS/2' 386 393 … … 499 506 shipped.0 = count 500 507 CALL VRSortStem 'shipped.' 508 (追記) (追記ここまで) 509 (追記) CALL LINEOUT globals.!log1, 'Enumerated' count 'shipped printer devices.' (追記ここまで) 501 510 502 511 RETURN count … … 902 911 LoadSettings: PROCEDURE EXPOSE globals. 903 912 904 globals.!version = '0. (削除) 61 (削除ここまで)'913 globals.!version = '0.(追記) 7 (追記ここまで)' 905 914 globals.!copyright = '2013-2017' 906 915 … … 960 969 /* Determine the OS. 961 970 */ 971 (追記) globals.!oem_os = 0 (追記ここまで) 972 (追記) oem_osdir = VALUE('OSDIR',,'OS2ENVIRONMENT') (追記ここまで) 973 (追記) IF oem_osdir == '' THEN oem_osdir = globals.!os2dir (追記ここまで) 962 974 IF VRFileExists( globals.!os2dir'\INSTALL\SYSLEVEL.ECS') THEN 963 globals.!is_ecs = 1 964 ELSE 965 globals.!is_ecs = 0 975 globals.!oem_os = 1 976 IF VRFileExists( oem_osdir'\INSTALL\INSTALL.FLG') THEN DO 977 PARSE VALUE LINEIN( oem_osdir'\INSTALL\INSTALL.FLG') WITH p_os p_release p_nlv . 978 CALL STREAM oem_osdir'\INSTALL\INSTALL.FLG', 'C', 'CLOSE' 979 IF p_os == 'ArcaOS' THEN globals.!oem_os = 2 980 END 966 981 967 982 globals.!create_mode = '' … … 1801 1816 _confirm = VRMessage('WN_MAIN', NLSGetMessage( 202, _name ), NLSGetMessage( 200 ), 'Q', '_btns.', 2, 2 ) 1802 1817 IF _confirm == 1 THEN DO 1818 (追記) CALL LINEOUT globals.!log1, 'Deleting port' _name (追記ここまで) 1803 1819 success = RPUPortDelete( _name ) 1804 IF success == 1 THEN CALL RefreshPorts 1820 IF success <> 1 THEN CALL LINEOUT globals.!log1, 'Error deleting port:' RPUERROR 1821 CALL RefreshPorts 1805 1822 END 1806 1823 … … 1851 1868 _confirm = VRMessage('WN_MAIN', NLSGetMessage( 201, _title ), NLSGetMessage( 200 ), 'Q', '_btns.', 2, 2 ) 1852 1869 IF _confirm == 1 THEN DO 1853 IF _queue == '' THEN 1870 1871 IF _queue == '' THEN DO 1872 CALL LINEOUT globals.!log1, 'Printer' _device '(no queue) will be deleted.' 1854 1873 success = RPUDeviceDelete( _device ) 1855 ELSE 1874 END 1875 ELSE DO 1876 CALL LINEOUT globals.!log1, 'Printer' _device 'with queue' _queue 'will be deleted.' 1856 1877 success = RPUPrinterDelete( _queue ) 1878 (追記) END (追記ここまで) 1879 (追記) CALL LINEOUT globals.!log1, 'Deletion status:' success (追記ここまで) 1880 (追記) (追記ここまで) 1857 1881 CALL RPUPortInfo _port, 'port.' 1858 1882 IF port.!driver == 'CUPS' THEN DO … … 1866 1890 PARSE VAR _cups_queue cups_queue '00'x . 1867 1891 IF ( TRANSLATE( cups_host ) == 'LOCALHOST') | cups_host = '127.0.0.1' THEN DO 1892 (追記) CALL LINEOUT globals.!log1, 'Printer points to local CUPS queue' cups_queue 'via port:' _port (追記ここまで) 1868 1893 _confirm = VRMessage('WN_MAIN', NLSGetMessage( 204, _title, cups_queue, _port ),, 1869 1894 NLSGetMessage( 200 ), 'Q', '_btns.', 2, 2 ) 1870 1895 IF _confirm == 1 THEN DO 1896 (追記) CALL LINEOUT globals.!log1, 'Deleting CUPS printer' cups_queue 'on host' cups_host'.' (追記ここまで) 1871 1897 success = CupsDeletePrinter( cups_host, cups_queue ) 1898 (追記) CALL LINEOUT globals.!log1, 'CUPS deletion status:' success (追記ここまで) 1872 1899 IF success == 0 THEN DO 1873 1900 CALL RPUPortDelete _port … … 2040 2067 2041 2068 ok = RPUEnumDrivers('drivers.') 2069 (追記) CALL LINEOUT globals.!log1, 'Enumerating drivers:' ok (追記ここまで) 2070 (追記) (追記ここまで) 2071 (追記) CALL VRSet 'CN_DEVICES', 'Painting', 0 (追記ここまで) 2072 (追記) CALL VRMethod 'CN_DEVICES', 'RemoveRecord', 'All' (追記ここまで) 2073 (追記) (追記ここまで) 2042 2074 IF rc <> 0 THEN DO 2043 CALL VRSet 'CN_DEVICES', 'Painting', 0 2044 CALL VRMethod 'CN_DEVICES', 'RemoveRecord', 'All' 2075 CALL LINEOUT globals.!log1, drivers.0 'drivers found.' 2045 2076 DO i = 1 TO drivers.0 2046 2077 PARSE VAR drivers.i _pdrv'.'_model … … 2056 2087 DROP drivers. 2057 2088 DROP driverinfo. 2058 (削除) CALL VRSet 'CN_DEVICES', 'Painting', 1 (削除ここまで)2059 (削除) END (削除ここまで)2089 (追記) END (追記ここまで) 2090 (追記) CALL VRSet 'CN_DEVICES', 'Painting', 1 (追記ここまで) 2060 2091 2061 2092 RETURN … … 2066 2097 2067 2098 ok = RPUEnumPorts('ports.') 2099 (追記) CALL LINEOUT globals.!log1, 'Enumerating ports:' ok (追記ここまで) 2100 (追記) (追記ここまで) 2101 (追記) CALL VRSet 'CN_PORTS', 'Painting', 0 (追記ここまで) 2102 (追記) CALL VRMethod 'CN_PORTS', 'RemoveRecord', 'All' (追記ここまで) 2103 (追記) (追記ここまで) 2068 2104 IF rc <> 0 THEN DO 2069 CALL VRSet 'CN_PORTS', 'Painting', 0 2070 CALL VRMethod 'CN_PORTS', 'RemoveRecord', 'All' 2105 CALL LINEOUT globals.!log1, ports.0 'ports found.' 2071 2106 DO i = 1 TO ports.0 2072 2107 PARSE VAR ports.i _name _driver _path … … 2096 2131 DROP ports. 2097 2132 DROP portinfo. 2098 (削除) CALL VRSet 'CN_PORTS', 'Painting', 1 (削除ここまで)2099 (削除) END (削除ここまで)2133 (追記) END (追記ここまで) 2134 (追記) CALL VRSet 'CN_PORTS', 'Painting', 1 (追記ここまで) 2100 2135 2101 2136 RETURN … … 2105 2140 RefreshPrinters: PROCEDURE EXPOSE globals. 2106 2141 ok = RPUEnumPrinters('printers.') 2142 (追記) CALL LINEOUT globals.!log1, 'Enumerating printers:' ok (追記ここまで) 2143 (追記) (追記ここまで) 2144 (追記) CALL VRSet 'CN_PRINTERS', 'Painting', 0 (追記ここまで) 2145 (追記) CALL VRMethod 'CN_PRINTERS', 'RemoveRecord', 'All' (追記ここまで) 2146 (追記) (追記ここまで) 2107 2147 IF ok <> 0 THEN DO 2108 CALL VRSet 'CN_PRINTERS', 'Painting', 0 2109 CALL VRMethod 'CN_PRINTERS', 'RemoveRecord', 'All' 2148 CALL LINEOUT globals.!log1, printers.0 'printers found.' 2110 2149 2111 2150 DO i = 1 TO printers.0 … … 2145 2184 DROP details. 2146 2185 2147 (削除) CALL VRSet 'CN_PRINTERS', 'Painting', 1 (削除ここまで)2148 (削除) END (削除ここまで)2186 (追記) END (追記ここまで) 2187 (追記) CALL VRSet 'CN_PRINTERS', 'Painting', 1 (追記ここまで) 2149 2188 2150 2189 RETURN … … 2159 2198 2160 2199 IF VRGet('RB_DEVICE_SHIPPED', 'Set') == 1 THEN DO 2200 (追記) CALL LINEOUT globals.!log1, 'Refreshing shipped driver list ('shipped.0' devices).' (追記ここまで) 2161 2201 CALL VRMethod 'CN_DEVICE_LIST', 'AddRecordList',,, 'shipped.' 2162 2202 END … … 2165 2205 driver_path = TRANSLATE( STRIP( VRGet('DDCB_DEVICE_3RDPARTY', 'Value'))) 2166 2206 IF driver_path <> '' THEN DO 2207 (追記) CALL LINEOUT globals.!log1, 'Refreshing third-party driver list for' driver_path'.' (追記ここまで) 2167 2208 drivers.0 = 0 2168 2209 _total = 0 … … 2209 2250 */ 2210 2251 execPath = VRGet('Application', 'Program') 2211 execDir = VRParseFileName( execPath, 'DP') 2252 IF execPath <> '' THEN 2253 execDir = VRParseFileName( execPath, 'DP') 2254 ELSE 2255 execDir = DIRECTORY() 2212 2256 2213 2257 /* … … 2320 2364 SW_ABOUT_Init: PROCEDURE EXPOSE globals. 2321 2365 2322 IF globals.! (削除) is_ec (削除ここまで)s == 1 THEN2366 IF globals.!(追記) oem_o (追記ここまで)s == 1 THEN 2323 2367 _platform = 'eComStation' 2324 2368 ELSE … … 2383 2427 fld_driver = VRMethod('CN_DEVICE_LIST', 'AddField', 'String', NLSGetMessage( 266 ), 'DRIVER') 2384 2428 2385 IF globals.! (削除) is_ec (削除ここまで)s == 1 THEN2429 IF globals.!(追記) oem_o (追記ここまで)s == 1 THEN 2386 2430 _platform = 'eComStation' 2431 (追記) ELSE IF globals.!oem_os == 2 THEN (追記ここまで) 2432 (追記) _platform = 'ArcaOS' (追記ここまで) 2387 2433 ELSE 2388 2434 _platform = 'OS/2' … … 2430 2476 2431 2477 IF GetShippedDrivers() > 0 THEN DO 2432 /* CALL VRMethod 'CN_DEVICE_LIST', 'AddRecordList',,, 'shipped.' */ 2478 /* 2479 CALL VRSet 'RB_DEVICE_SHIPPED', 'Set', 1 2480 */ 2481 CALL VRMethod 'CN_DEVICE_LIST', 'AddRecordList',,, 'shipped.' 2433 2482 END 2434 2483 -
trunk/gui/shared/PrManUtl.VRS
r51 r58 11 11 drv_path = STREAM( drv_path, 'C', 'QUERY EXISTS') 12 12 RETURN drv_path 13 (追記) (追記ここまで) 14 (追記) (追記ここまで) 15 (追記) /*:VRX GetDriverFileList (追記ここまで) 16 (追記) */ (追記ここまで) 17 (追記) GetDriverFileList: PROCEDURE (追記ここまで) 18 (追記) PARSE ARG eaname, driver (追記ここまで) 19 (追記) filelist = '' (追記ここまで) 20 (追記) (追記ここまで) 21 (追記) /* Read the list of required driver files from the EAs, and copy them (追記ここまで) 22 (追記) * all to the target directory. (追記ここまで) 23 (追記) */ (追記ここまで) 24 (追記) IF SysGetEA( driver, eaname, 'reqfiles') == 0 THEN DO (追記ここまで) 25 (追記) PARSE VAR reqfiles 1 eatype 3 . (追記ここまで) 26 (追記) eatype = C2X( eatype ) (追記ここまで) 27 (追記) (追記ここまで) 28 (追記) IF eatype == 'FDFF' THEN DO /* Single ASCII value from byte 5 */ (追記ここまで) 29 (追記) PARSE VAR reqfiles 5 filelist (追記ここまで) 30 (追記) END (追記ここまで) 31 (追記) ELSE IF eatype = 'DEFF' THEN DO /* Single-type list from byte 7 */ (追記ここまで) 32 (追記) PARSE VAR reqfiles 7 fl_type 9 fl_items (追記ここまで) 33 (追記) (追記ここまで) 34 (追記) /* Parse the first value out of the list. The first two bytes are the (追記ここまで) 35 (追記) * length of the value. (追記ここまで) 36 (追記) */ (追記ここまで) 37 (追記) PARSE VAR fl_items 1 i_len 3 i_val (追記ここまで) 38 (追記) len = C2D( REVERSE( i_len )) (追記ここまで) 39 (追記) filelist = SUBSTR( i_val, 1, len ) (追記ここまで) 40 (追記) END (追記ここまで) 41 (追記) ELSE IF eatype = 'DFFF' THEN DO /* Multi-type list from byte 7 */ (追記ここまで) 42 (追記) PARSE VAR reqfiles 7 fl_items (追記ここまで) 43 (追記) (追記ここまで) 44 (追記) /* Parse the first value out of the list. The first two bytes are the (追記ここまで) 45 (追記) * data type; this should always be ASCII ('FDFF') so we can skip it. (追記ここまで) 46 (追記) * The following word holds the length of the value. (追記ここまで) 47 (追記) */ (追記ここまで) 48 (追記) PARSE VAR fl_items 3 i_len 5 i_val (追記ここまで) 49 (追記) len = C2D( REVERSE( i_len )) (追記ここまで) 50 (追記) filelist = SUBSTR( i_val, 1, len ) (追記ここまで) 51 (追記) END (追記ここまで) 52 (追記) filelist = TRANSLATE( filelist, ' ', ',') (追記ここまで) 53 (追記) END (追記ここまで) 54 (追記) (追記ここまで) 55 (追記) RETURN filelist (追記ここまで) 13 56 14 57 … … 244 287 * all to the target directory. 245 288 */ 289 (追記) /**** OLD (追記ここまで) 246 290 IF SysGetEA( driver, 'REQUIREDDRIVERFILES', 'reqfiles') == 0 THEN DO 247 291 PARSE VAR reqfiles 5 filelist … … 255 299 DROP filelist 256 300 END 301 (追記) ****/ (追記ここまで) 302 (追記) filelist = GetDriverFileList('REQUIREDDRIVERFILES', driver ) (追記ここまで) 303 (追記) IF filelist <> '' THEN DO (追記ここまで) 304 (追記) DO i = 1 TO WORDS( filelist ) (追記ここまで) 305 (追記) copyfile = drv_dir'\' || WORD( filelist, i ) (追記ここまで) 306 (追記) ok = VRCopyFile( copyfile, newdrvdir'\' || WORD( filelist, i )) (追記ここまで) 307 (追記) CALL LINEOUT globals.!log1, ' -' copyfile '(REQUIRED):' ok (追記ここまで) 308 (追記) END (追記ここまで) 309 (追記) DROP copyfile (追記ここまで) 310 (追記) DROP filelist (追記ここまで) 311 (追記) END (追記ここまで) 257 312 ELSE RETURN 0 258 313 259 314 /* If there are optional files defined as well, try to copy those also. 260 315 */ 316 (追記) /**** OLD (追記ここまで) 261 317 IF SysGetEA( driver, 'OPTIONALDRIVERFILES', 'reqfiles') == 0 THEN DO 262 318 PARSE VAR reqfiles 5 filelist … … 265 321 copyfile = drv_dir'\' || WORD( filelist, i ) 266 322 IF STREAM( copyfile, 'C', 'QUERY EXISTS') == '' THEN ITERATE 323 (追記) ok = VRCopyFile( copyfile, newdrvdir'\' || WORD( filelist, i )) (追記ここまで) 324 (追記) CALL LINEOUT globals.!log1, ' -' copyfile '(OPTIONAL):' ok (追記ここまで) 325 (追記) END (追記ここまで) 326 (追記) DROP copyfile (追記ここまで) 327 (追記) DROP filelist (追記ここまで) 328 (追記) END (追記ここまで) 329 (追記) ****/ (追記ここまで) 330 (追記) filelist = GetDriverFileList('OPTIONALDRIVERFILES', driver ) (追記ここまで) 331 (追記) IF filelist <> '' THEN DO (追記ここまで) 332 (追記) DO i = 1 TO WORDS( filelist ) (追記ここまで) 333 (追記) copyfile = drv_dir'\' || WORD( filelist, i ) (追記ここまで) 267 334 ok = VRCopyFile( copyfile, newdrvdir'\' || WORD( filelist, i )) 268 335 CALL LINEOUT globals.!log1, ' -' copyfile '(OPTIONAL):' ok
Note:
See TracChangeset
for help on using the changeset viewer.