1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935
|
2018-11-09 Vita Humpa <vhumpa@redhat.com>
dogtail 1.0
==============
After more than five years of continuous experimentation and development, we are excited to finally release Dogtail 1.0—a Wayland-enabled version of Dogtail! How did we achieve this? It was made possible by the `gnome-ponytail-daemon`, originally crafted by Olivier Fourdan: https://gitlab.gnome.org/ofourdan/gnome-ponytail-daemon. This tool allows us to perform actions in a Wayland GNOME session in a similar way to how we have been doing so with X functions. See NEWS or README.md for more details!
2018-11-09 Vita Humpa <vhumpa@redhat.com>
dogtail 0.9.11
==============
A number of fixes related mainly to python3 and bilingual nature of dogtail.
Scripts (sniff and scripts/) get /usr/bin/python3 shebangs, so distros can
consider splitting those to subpackage.
2017-05-01 Vita Humpa <vhumpa@redhat.com>
dogtail 0.9.10
==============
There has been a good deal of fixes and improvements since last year's release. We're not really ready for 1.0
yet, which is why we release this important cumulative release as 0.9.10. We have also moved our homesite to
gitlab (fedoraproject has been discontinued). For the list of changes, simply go to:
https://gitlab.com/dogtail/dogtail/commits/master
2016-01-18 Vita Humpa <vhumpa@redhat.com>
dogtail 0.9.9
=============
A 1.0 pre-release. Contains a big number of fixes and changes done
since 0.9.0. Most important of these is framework's compatibility with
Python3. We've modified the code everywhere to run with both Python 2.7
and 3.3+. This means that from now on we maintain the same codebase and
are releasing the same tarball, which can be used to package both py2 and
py3 installations downstream. A complete list of fixes and changes will
be present here, when we release 1.0 after 0.9.9 has been thouroughly tested.
Though considered a pre-release, don'worry! 0.9.9 is considered stable and
have gone through some rigorious testing already. Thanks to newly extended
unit-test-set, it is actually the most self-tested release so far.
2014-04-16 Vita Humpa <vhumpa@redhat.com>
dogtail 0.9.0
=============
Over the last year we've made a good number of fixes, added some new features
and got overall stability to the point where we can make a new 'major minor'
release. With 0.9 we're finally getting only a step away from what we'd like
to get done with 1.0.
* Added a fix for situations when a previously crashed application
still registered with at-spi blocks search ('Broken' session problem)
Fixed for root.application(), root.applications() and for whenever
GeneralPredicate is used (.child()). Also done for Sniff. RHBZ 972257
* Added a support for gnome-continuous build-api (#36)
* Added a direct lambda support in the findChildren method, that allows
using non-predicate lambdas to create search properties. These can be
all pure dogtail Node properties (i.e. showing), not limiting to just
pyatspi ones as is when using Predicate.
* Added a GnomeShell 'helper' class into utils module allowing to work
with the new top-panel application menu.
* With GTK3.10+ Gdk changes, needed to tune the keyNameToKeyCode function
so that it provides valid keySym in as many cases possible - with both
pre-GTK3.10 as well as GTK3.11+ having the same behavior in typeText and
pressKey
* Sniff ui update: the info pane now stays down on resizing
* Got rid of some deprecated GObject calls
* Several updates to the dogtail-run-headless-next
- Any kind of session can now be used in any combination with both gdm/kdm
--session can be used to specify any xsession desktop file, 'kde' defaults
to 'kde-plasma' too keep pre-updated compatibility; default is now the previous user session
--dm - new param to pick either gdm (default) or kdm
--session-binary - new param to specify any in-session binary to grab script env from
- to be used with non gnome/kde session (lxde, ubuntu)
- do not confuse with session execs like gnome-session and starkde, that may
actually exit after session loadup; it should be everpresent (kwin, shell...)
- Added a --restart switch to force restart the previously running (often left-over) session before proceeding
- More logging of script execution (start/stop/PID), and some cleanups
* Trap GErrors in findAllDescendants and retry if it occurs: This fixes crashes in findChildren if elements are being added/removed quickly
* Unicode handling updates:
- Make sure safeDecode is not skipping any strings
- Don't crash when logging message contains unicode
* Error Handling for Attribute Error
* Fixed utils.run issue when having whitespace containing binary by
using shlex shell-like parsing split.
* Removed an always true if condition in i18n
* Log child description when clicking. The log will now print the element description when it will be clicked
* Trap TypeError in findAllDescendants: Sometimes pytaspi returns None as a Node if children are being removed too fast.
We should retry search in this case
* Extended the default TypingDelay from 0.075 to 0.1 seconds (helps working with certain high unicode charactes)
* Fixed an bug in sniff discovered by jmolet that made sniff crash when
run from /bin/sniff not /usr/bin/sniff
* Generate a better script method call for labels
* Fix for failing 'focus.application.node' seting
* Derive all classes from object explicitely
* Changed icons used in sniff that got moved to the gnome-icon-theme-legacy
recently for the ones from non-legacy package.
* Unified the 'isSth' vs. 'sth' properties for only 'sth' - added 'selected', but also introduced
'isChecked' property for 0.7.x compatibility
* Added instructions on how to enable accessibility into utils.bailBecauseA11yIsDisabled()
* Added a 'retry' option to the tree.root.application()
* Fixed the concurrent creation of sniff_refresh lock from both tree and procedural
* Switched to use environ value to get user in config. os.getlogin breaks when run scheduled from a testing system with no terminal.
* Patched the mouse related rawinput methods to prevent using negative coordinates
* Updated and added more unittests
2013-07-09 Vita Humpa <vhumpa@redhat.com>
dogtail 0.8.2
=============
Second update to the 0.8 series containing several fixes and improvements
* Added the dogtail-run-headless-next to replace the dogtail-run-headless in future.
-next, uses a diplay manager (kdm or gdm) for session management, should be used instead of older
headless on systemd systems already
* Unittests vastly improved and updated
* Fixed a missing reset of FocusWindow to None on application refocus
* Fixed the dogtail-logout to use gnome-shell instead of old gnome-panel
2012-09-07 Vita Humpa <vhumpa@redhat.com>
dogtail 0.8.1
=============
A first update to the new GNOME3 / KDE4 compatible release containing several fixes:
* Sniff's autorefresh made togglable, to help avoid collisions with potential
running dogtail scripts. Sniff checks at startup whether some script is running
and sets up the autorefresh off if it is.
* Added a locking mechanism into utils that can be used to solve situations when
multiple dogtail processes/thread are running (applied in tree/procedural and sniff
already)
* Removed the deprecated dependency on CORBA
* Icons no longer use absolute pathing in sniff (thx roignac)
* Deprecated .has_key() operator replaced with 'in'.
* Removed .svg inside sniff's .desktop file
2012-05-30 Vita Humpa <vhumpa@redhat.com>
dogtail 0.8.0
=============
Finally a big release updating dogtail after more than 2 years ! Dogtail
is developed and maintained now again.
Simply put, ported to be compatible with the new GNOME 3 and to work well in major
GNOME 3 (GTK3) distributions.
We'd like to make the 0.8.x version onward the GNOME 3 compatible branch usable
for Fedora, RHEL7 and others, while keeping 0.7.x releases for fixes in older GNOME2
systems.
--- What was done ---
Notably, Sniff's UI needed to ported completely to GTK3, yet there are
also several places in dogtail 'itself' that needed to be rewritten to go ahead
with the new technologies. Those were all the modules where the old pygtk was
used for various reasons (rawinput, utils, tree...). Incompatibilites were also
present due to the new version of pyatspi (notably with the doAction method).
Release highlights:
* A great number of fixes everywhere related to GTK/GNOME/At-Spi updates
* The dogtail-recorder was dropped for now, but might return in RC or 0.8.1
* Thanks to the qt-at-spi project, dogtail now works out-of-the-box for QT!
* Headless supports KDE sessions
* Headless working with full 3D-Accelerated GNOME session (no fallback anymore)
* Highlight used in sniff completely re-written and made toggleable (of by default)
* Makefile updated, 'make run' builds packages in homedir/rpmbuld now
* Several examples fixed for updated gedit
* Added tree.isChild() convenience method
* Renamed doAction to doActionNamed due to conflict with doAction inside pyatspi namespace
* Delay made configurable in absoluteMotion and relativeMotion functions
* Changed at-spi activation to use DConf instead of GConf
* A bit of code clean-up and modernization (using @property now etc.)
2009-12-07 Zack Cerza <zcerza@redhat.com>
* sniff/sniff: Add a little more error checking to avoid some cases
where sniff, if left running for long periods of time, would crash.
2009-10-27 Zack Cerza <zcerza@redhat.com>
* tests/Node.py: Add tests for getting labeler/labelee.
2009-10-27 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Refactor all Node properties, to clean up namespace
pollution.
2009-10-27 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Rewrite the Node.value property in a way that's
compatible with python 2.4 while still avoiding namespace pollution.
Add docstrings for the AccessibleValue-related properties.
2009-10-23 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Rewrite Node.findChildren() using
pyatspi.utils.findAllDescendants(). It's around 10% faster now and
allows you to use any kind of predicate you wish.
* tests/Node.py: Make one of the Node.findChildren() tests use
non-recursive mode.
2009-10-23 Zack Cerza <zcerza@redhat.com>
* tests/Node.py: Add another unit test for Node.findChildren(). Add
docs for the rest.
2009-10-23 Zack Cerza <zcerza@redhat.com>
* tests/Node.py: Add several unit tests for AccessibleValue-related
properties, since they were all broken a long time ago without anyone
noticing.
* dogtail/tree.py: Fix all the AccessibleValue-related properties.
2009-10-22 Zack Cerza <zcerza@redhat.com>
* tests/Node.py: Add another unit test for Node.findChildren().
2009-10-22 Zack Cerza <zcerza@redhat.com>
* tests/Node.py: Add unit test for Node.findChildren(), since I'm
going to rewrite it using the more-optimized
pyatspi.utils.findAllDescendants().
2009-10-20 Zack Cerza <zcerza@redhat.com>
* tests/procedural.py: Add more tests, make miscellaneous tweaks.
* dogtail/procedural.py: Fix a bug found by unit tests.
2009-10-19 Zack Cerza <zcerza@redhat.com>
* tests/procedural.py: Add some unit tests for the procedural
interface.
2009-10-19 Zack Cerza <zcerza@redhat.com>
* tests/Node.py: Add tests for Node.caretOffset and Node.combovalue;
minor tweaks to other tests.
2009-10-08 Zack Cerza <zcerza@redhat.com>
* setup.py, dogtail/__init__.py: Post-release version bump.
2009-10-08 Zack Cerza <zcerza@redhat.com>
* setup.py, dogtail/__init__.py: Bump version to 0.7.0. Remove
references to .svn directory. Reflect new site.
2009-10-08 Zack Cerza <zcerza@redhat.com>
* NEWS, README: Add notes about API docs.
2009-10-08 Zack Cerza <zcerza@redhat.com>
* NEWS: Update.
2009-10-08 Zack Cerza <zcerza@redhat.com>
* tests/Node.py: Remove tests for Node.version. This actually comes
straight from pyatspi, and is just plain not useful. It is also
inconsistent. For example, on RHEL5 it gives you the gail version,
while on Fedora 12 it gives you the gtk2 version.
2009-10-06 Zack Cerza <zcerza@redhat.com>
* dogtail/__init__.py: Don't import pyatspi so early.
2009-10-06 Zack Cerza <zcerza@redhat.com>
* dogtail/sessions.py: Make sure that binaries (at least those with
absolute or relative paths specified) exist and are executable long
before we try to execute them.
2009-10-06 Zack Cerza <zcerza@redhat.com>
* recorder/dogtail-recorder: Catch LookupErrors (e.g. quitting an app)
2009-09-30 Zack Cerza <zcerza@redhat.com>
* recorder/dogtail-recorder: Disable debug logging... again.
2009-09-29 Zack Cerza <zcerza@redhat.com>
* sniff/sniff: Remove an unused set object. Trying to stay compatible
with older pythons...
2009-09-29 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Add Node.contains(), which can be used to determine
if a given point onscreen lies inside a Node's extents. Also add
Node.getAccessibleAtPoint(), which tries to find the Node at a given
point on screen.
* recorder/dogtail-recorder: Use the new Node methods to reimplement
most of the click detection; the old method was too expensive and
fragile. Also turn on pyatspi's caching.
2009-09-24 Zack Cerza <zcerza@redhat.com>
* dogtail/procedural.py: Add FocusWindow class, and corresponding
focus.window() API. I think eventually I want focus.window() calls to
raise the window to the foreground.
2009-09-23 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Fix a bug in Node.typetext(). Actually, change its
behavior significantly: if we can't grab keyboard focus, fall back to
inserting text via the editabletext interface at the current caret
location. old behavior was to replace contents entirely, which doesn't
scale at all.
2009-09-11 Zack Cerza <zcerza@redhat.com>
* dogtail/procedural.py: Use specific Predicate subclasses where
available.
2009-09-11 Zack Cerza <zcerza@redhat.com>
* recorder/dogtail-recorder: Keyboard recording had been disabled by
accident. Reenable it.
2009-09-04 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Simplify Node.click(); add Node.doubleClick().
* tests/Node.py: Make GtkDemoTest.runDemo() use Node.doubleClick()
instead of the activate action, since gtk-demo doesn't appear to use
that action anymore. This will be backward-compatible anyway.
2009-09-04 Zack Cerza <zcerza@redhat.com>
* tests/Node.py: Look for at-spi instead of gail in testGetVersion
since Fedora no longer has a package called gail.
2009-09-04 Zack Cerza <zcerza@redhat.com>
* INSTALL: Update.
2009-09-04 Zack Cerza <zcerza@redhat.com>
* README: Update.
2009-09-04 Zack Cerza <zcerza@redhat.com>
* dogtail/distro.py, dogtail/tree.py: Fix some formatting that epydoc
doesn't like.
2009-09-04 Zack Cerza <zcerza@redhat.com>
* NEWS: Update.
2009-08-26 Zack Cerza <zcerza@redhat.com>
* scripts/dogtail-run-headless: Tweak usage output.
2009-08-26 Zack Cerza <zcerza@redhat.com>
* scripts/dogtail-run-headless: Require a script argument to be run!
2009-08-03 Zack Cerza <zcerza@redhat.com>
* recorder/dogtail-recorder: Refactor eventlistener (de)registration
code. Also move some logEvent calls.
2009-07-24 Zack Cerza <zcerza@redhat.com>
* examples/test-events.py: Update to pyatspi. Disable some events as
they just flood the terminal.
2009-05-08 Zack Cerza <zcerza@redhat.com>
* scripts/dogtail-logout: Work with RHEL5.
2009-05-05 Zack Cerza <zcerza@redhat.com>
* dogtail/sessions.py: Use os.kill() instead of Popen.terminate(),
since the latter doesn't exist before python 2.6...
2009-05-05 Zack Cerza <zcerza@redhat.com>
* dogtail/sessions.py: Oops, don't close() the xinitrc object!
2009-05-05 Zack Cerza <zcerza@redhat.com>
* dogtail/sessions.py: Let scratch files be deleted upon closing. Keep
Session.xinitrcFileOBj around until its start() method is next called,
so it can be read in the meantime.
2009-05-05 Zack Cerza <zcerza@redhat.com>
* scripts/dogtail-logout: Don't use raw clicks. Also add a little more
documentation.
2009-05-05 Zack Cerza <zcerza@redhat.com>
* dogtail/sessions.py: Fix path to dogtail-logout
2009-05-05 Zack Cerza <zcerza@redhat.com>
* dogtail/sessions.py: Remove/comment some debug output.
2009-05-05 Zack Cerza <zcerza@redhat.com>
* dogtail/sessions.py: Make scriptCmdList an optional argument to
Session.init()
2009-05-01 Zack Cerza <zcerza@redhat.com>
* scripts/dogtail-run-headless: Fix option application.
2009-05-01 Zack Cerza <zcerza@redhat.com>
* dogtail/sessions.py: Tweak the way we find the correct environment
for the script.
2009-05-01 Zack Cerza <zcerza@redhat.com>
* dogtail/sessions.py, scripts/dogtail-run-headless: Refactor most of
dogtail.sessions.
2009-04-30 Zack Cerza <zcerza@redhat.com>
* dogtail/sessions.py: Merge Session and GNOMESession; refactor
Session; add Script.
2009-04-29 Zack Cerza <zcerza@redhat.com>
* scripts/dogtail-logout: Add a note about the script still "working"
if gnome-session doesn't end up being accessible.
2009-04-29 Zack Cerza <zcerza@redhat.com>
* scripts/dogtail-run-headless: Give a choice of X servers.
2009-04-29 Zack Cerza <zcerza@redhat.com>
* scripts/dogtail-logout: Add a sleep(1), something's wrong...
2009-04-28 Zack Cerza <zcerza@redhat.com>
* scripts/dogtail-run-headless: Actually instantiate the session
object.
2009-04-28 Zack Cerza <zcerza@redhat.com>
* dogtail/sessions.py: Properly report exit code.
2009-04-28 Zack Cerza <zcerza@redhat.com>
* scripts/dogtail-run-headless: Draft of a rewrite using
dogtail.sessions
2009-04-28 Zack Cerza <zcerza@redhat.com>
* scripts/dogtail-logout: Add a new script, dogtail-logout. This is
for use with headless sessions. Currently doesn't work yet.
2009-04-28 Zack Cerza <zcerza@redhat.com>
* dogtail/sessions.py: Add a sessions module. This will become the
basis for a rewritten dogtail-run-headless.
2009-03-21 Zack Cerza <zcerza@redhat.com>
* epydoc.conf: Add the Epydoc config file.
2009-03-21 Zack Cerza <zcerza@redhat.com>
* Makefile: Add proper targets for generating/uploading API docs.
We're using Epydoc now.
2009-03-21 Zack Cerza <zcerza@redhat.com>
* dogtail/utils.py: If we're running under pydoc or epydoc, don't bail
if accessibility is disabled.
2008-12-31 Zack Cerza <zcerza@redhat.com>
* examples/appstartup.py: Add a new example that launches a given
application, then checks to see that it started correctly by looking
for a Node with the given roleName.
2008-08-18 Zack Cerza <zcerza@redhat.com>
* examples/gedit-test-utf8-procedural-api.py: Actually, handle the
file chooser's expander widget more gracefully by looking to see if it
has the 'checked' state before expanding it - apparently 'checked'
means it is expanded. Go figure.
2008-08-18 Zack Cerza <zcerza@redhat.com>
* dogtail/procedural.py: Make Click.__call__() work without arguments
again.
2008-08-11 Zack Cerza <zcerza@redhat.com>
* tests/Node.py: Don't import pyatspi unnecessarily.
2008-08-11 Zack Cerza <zcerza@redhat.com>
* dogtail/rawinput.py: Use config.actionDelay for click().
2008-08-11 Zack Cerza <zcerza@redhat.com>
* examples/gedit-test-utf8-procedural-api.py: Collapse the file
chooser's expander widget when we're done using it.
2008-08-11 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Don't log giant messages to the debug log if we're
setting a Node's text to a very large value. Also, use
config.actionDelay for Node.click().
2008-08-11 Zack Cerza <zcerza@redhat.com>
* dogtail/tc.py: Put a timestamp on TCImage's diff.png.
2008-08-08 Zack Cerza <zcerza@redhat.com>
* dogtail/tc.py: Eliminate double slashes in TCImage.diff. Also remove
do-nothing TCImage.__init__().
2008-08-08 Zack Cerza <zcerza@redhat.com>
* dogtail/tc.py: Rewrite TCImage to use PIL instead of ImageMagick.
Update unit tests to reflect this rewrite.
2008-08-08 Zack Cerza <zcerza@redhat.com>
* dogtail/tc.py: Make TC a new-style class. No particular reason.
2008-08-08 Zack Cerza <zcerza@redhat.com>
* dogtail/logging.py: Make ResultsLogger log to a file no matter what.
2008-07-24 Zack Cerza <zcerza@redhat.com>
* recorder/dogtail-recorder: Update to reflect API change in rawinput.
2008-02-19 Zack Cerza <zcerza@redhat.com>
* dogtail/config.py: Add new parameter: checkForA11y, which defaults
to True. If set to False, we assume accessibility is enabled.
* dogtail/utils.py: Don't import gconf until necessary.
* dogtail/tree.py, sniff/sniff: Don't check for accessibility unless
config.config.checkForA11y is True.
2008-02-19 Zack Cerza <zcerza@redhat.com>
* examples/gedit-test-utf8-procedural-api.py: Use click() instead of
activate().
2008-02-19 Zack Cerza <zcerza@redhat.com>
* dogtail/tc.py: Add TCBool and TCNode.
2008-02-19 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py, dogtail/dump.py: Allow tree.Node.dump() to output
to a file instead of stdout.
2008-02-19 Zack Cerza <zcerza@redhat.com>
* dogtail/utils.py: Use subprocess.Popen() instead of os.spawnvpe().
* dogtail/procedural.py: Make run() return the PID.
2008-02-19 Zack Cerza <zcerza@redhat.com>
* dogtail/i18n.py: Add loadAllTranslationsForLanguage().
2008-02-19 Zack Cerza <zcerza@redhat.com>
* dogtail/distro.py: Make distribution detection code a little less
ugly. Remove docstrings from the Distro subclasses. Clean up some other
documentation.
* dogtail/i18n.py: Don't import the distro module until we actually
need it.
* dogtail/logging.py: Add an optional 'newline' arg to Logger.log(),
which defaults to True. Passing False will cause the logger to not
print or write a newline at the end of the message. Also stop catching
some IOErrors, as that made the code awkward for no good reason.
2008-02-06 Zack Cerza <zcerza@redhat.com>
* dogtail/dump.py: Properly print Node.actions; ditch "xml" output as
it was not even really a good start.
* dogtail/tree.py: Strip some useless information of out
Action.__str__().
2008-02-06 Zack Cerza <zcerza@redhat.com>
* dogtail/__init__.py: Fix inconsistent version number.
2008-02-06 Zack Cerza <zcerza@redhat.com>
* dogtail/distro.py: Fix minor inconsistency.
2008-01-31 Zack Cerza <zcerza@redhat.com>
* setup.py, dogtail/__init__.py: Bump version to 0.6.90.
2008-01-31 Zack Cerza <zcerza@redhat.com>
* Makefile, MANIFEST.in: Remove mentions of debian/ and dogtail.spec.
2008-01-31 Zack Cerza <zcerza@redhat.com>
* dogtail.spec: Remove; see Fedora CVS for the canonical spec file.
2008-01-31 Zack Cerza <zcerza@redhat.com>
* debian/: Remove as it's so out-of-date it's probably dangerous, and
Debian doesn't use it anyway.
2008-01-31 Zack Cerza <zcerza@redhat.com>
* dogtail/rawinput.py: Refactor keyname <-> keysym conversion code.
Remove unnecessary code, including the ctypes/xlib-based
keyStringToKeyCode in favor of the gtk.gdk version. This completely
removes the ctypes dependency.
2008-01-21 Zack Cerza <zcerza@redhat.com>
* scripts/dogtail-run-headless: Use a real GNOME session instead of a
"fake" one.
2008-01-21 Zack Cerza <zcerza@redhat.com>
* dogtail/wrapped.py: Add dogtail.wrapped module, with superclasses
for Node and Application wrappers to use in custom application
wrappers. We need this because dogtail.tree.{Node,Application} are no
longer wrapper classes, and thus can't be subclasses directly.
2008-01-15 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Change Node.valueMin and valueMax to Node.minValue
and maxValue; add minValueIncrement.
2008-01-15 Zack Cerza <zcerza@redhat.com>
* sniff/sniff: Remove SniffModel.checkNodes() and
SniffModel.addDeadNode() as we're not using them now that we have
events working. While there are applications that don't have proper
event support, the performance hit on constantly crawling over nodes
is too large.
2008-01-15 Zack Cerza <zcerza@redhat.com>
* sniff/sniff: Make rows in the main TreeView expand/collapse on
pressing Enter.
2008-01-15 Zack Cerza <zcerza@redhat.com>
* sniff/sniff, sniff.glade: Add a new tab to the bottom pane that
lists the present states (just the ones supported by dogtail).
2008-01-14 Zack Cerza <zcerza@redhat.com>
* sniff/sniff, sniff/sniff.glade: Make the relation buttons only
visible when a target exists. Also prepare
SniffController.showRelationTarget() more prepared for when we add
more relations to dogtail and sniff.
2008-01-14 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Fix a stupid error in the Node.dead check.
2008-01-10 Zack Cerza <zcerza@redhat.com>
* sniff/glade, sniff/sniff: Split bottom pane into tabs: first is
name, roleName, description, actions; second is (editable)text; third
is relations. Currently there are only two relations: labeler and
labelee. Relations in sniff are currently represented as buttons,
which, when clicked, call the relation targets' blink() method. Also
fix a minor bug in SniffController.setUpTable() where sometimes we
would try to disconnect a signal handler multiple times.
2008-01-10 Zack Cerza <zcerza@redhat.com>
* NEWS: Add a note about a broken unit test due to #498563.
2008-01-10 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Add Node.dead property; useful if you're unsure if
the accessible you're about to poke at is still valid, and don't feel
like trying to catch 3 or more different exceptions.
2008-01-10 Zack Cerza <zcerza@redhat.com>
* sniff/sniff: Call SniffController.setUpTable() inside
selectionChanged() instead of buttonPress().
2008-01-10 Zack Cerza <zcerza@redhat.com>
* sniff/sniff: Instead of processing events synchronously, put them in
a queue to be processed during an idle function. Rewrite
SniffModel.getPath().
2007-12-18 Zack Cerza <zcerza@redhat.com>
* dogtail/logging.py: Remove IconLogger. Make Logger not create
logfiles until its log() method is called. This means sniff won't be
creating empty logs all the time.
* dogtail/config.py: Clean up some cruft and remove IconLogger stuff.
* dogtail/trayicon.py: Removed.
2007-12-18 Zack Cerza <zcerza@redhat.com>
* sniff/sniff: Remove the 'finally' from a try-except-finally, since
that would be the first time we broke compatibility with python 2.4,
and it's far from worth it :)
2007-12-17 Zack Cerza <zcerza@redhat.com>
* sniff/sniff: Overhaul sniff to use pyatspi events to be notified
when a node is renamed or gains/loses children. As a result,
SniffModel does not use its addDeadNode() and checkNodes() methods.
Those methods have not yet been removed, however. This change will
result in properly-written applications working far better than before
in sniff. Improperly-written apps (e.g. Firefox, but they know this)
will behave better than sniff in 0.6.1; checkNodes() was causing
serious slowdowns in some cases since it's fairly heavy code that
needs to be looped continuously. Since sniff now has to do a lot less
work than it did ever before, it should be somewhat faster in all
cases.
2007-12-11 Zack Cerza <zcerza@redhat.com>
* sniff/sniff, sniff/glade: Add 'Set Root' and 'Unset Root' menu items
to Sniff's View menu. Useful if you want to dig into a single app and
want to reduce the amount of scrolling around necessary slightly.
2007-12-11 Zack Cerza <zcerza@redhat.com>
* sniff/sniff: Improve the removal of dead nodes from SniffModel,
mainly by removing the highest-level dead node in the case that an
entire subtree is found to be dead. Thanks to Michal Babej for the
initial patch. Closes: #503056.
2007-12-10 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Make Action.__node public (i.e. rename to
Action.node).
2007-12-10 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Force Node._getChildren() to return an empty list
if the node's parent is a hyper link.
2007-12-10 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Er, fix typo in last commit.
2007-12-10 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Add AccessibleValue support. Thanks to Pelya for
submitting a patch before the port was merged.
2007-12-10 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Fix typo.
2007-12-10 Zack Cerza <zcerza@redhat.com>
* sniff/sniff: Show lines interconnecting TreeView rows.
2007-12-10 Zack Cerza <zcerza@redhat.com>
* sniff/sniff: Expand the root node of the TreeView on startup.
2007-12-10 Zack Cerza <zcerza@redhat.com>
* sniff/sniff: Move SniffModel.getNodeAttr() to SniffController, modify
it to be specific to the 'name' property of a node. That function is
now called nameDataFunc(). The behavior of nameDataFunc() has also
been changed: instead of changing the text of the TreeView cell
representing a defunct Node to '(broken node)', it now flags the row
for removal by adding a reference to it to SniffModel.deadNodes. Every
1000ms SniffModel will prune such rows from itself. In my tests, this
caused no extra measurable increase in CPU utilization. Also, remove
all columns in SniffModel other than the node column, as the rest were
not being used anyway.
2007-12-10 Zack Cerza <zcerza@redhat.com>
* sniff/sniff: Refactor sniff. Organize into 3 classes: SniffApp with
methods for setting up the application; SniffModel as a subclass of
gtk.TreeStore; SniffController for poking at the SniffModel and
gtk.TreeView instances.
2007-12-07 Zack Cerza <zcerza@redhat.com>
* dogtail/rawinput.py: Fall back to using a gtk.gdk.Keymap
implementation of keyStringToKeyCode() if ctypes is not available.
This will probably become the default implementation.
2007-12-07 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Add a patch from Michal Babej to fix a python 2.4
compatibility issue. Closes: #502324.
2007-12-06 Zack Cerza <zcerza@redhat.com>
* recorder/dogtail-recorder: Only write the script preamble once.
2007-12-06 Zack Cerza <zcerza@redhat.com>
* sniff/sniff: Make the Close button in sniff's About dialog actually
close the dialog.
2007-11-30 Zack Cerza <zcerza@redhat.com>
* Makefile: Minor update.
2007-11-30 Zack Cerza <zcerza@redhat.com>
* NEWS: Add a note about a broken unit test due to #498557.
2007-11-30 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Port Accessible.Hypertext and Hyperlink support.
tree.Link is now called LinkAnchor and is no longer a subclass of
Node. The new behavior is now that when a Hypertext interface is found
on a Node, that node will have one extra child Node per
Hyperlink/anchor pair. The child Nodes will have a role name of 'hyper
link' and the 'URL' property. Also, remove much dead code.
2007-10-31 Zack Cerza <zcerza@redhat.com>
* dogtail/procedural.py: Add a patch from Cole Robinson to both make
all focus.*() queries return a Boolean based on their success and to
make the failure warning more verbose.
* dogtail/config.py, dogtail/logging.py: Add a patch from Cole
Robinson to allow the logging of debug information to stdout to be
disabled via config.logDebugToStdOut. Still enabled by default.
2007-10-22 Zack Cerza <zcerza@redhat.com>
* examples/gedit-test-utf8-procedural-api.py,
examples/gedit-test-utf8-tree-api.py: Tweak slightly to work with the
new dogtail behavior of click() using raw mouse events.
2007-10-22 Zack Cerza <zcerza@redhat.com>
* dogtail/procedural.py: Remove all calls to time.sleep().
2007-10-22 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Add some missing doDelay()'s. Also remove a chunk
of dead code.
2007-10-22 Zack Cerza <zcerza@redhat.com>
* dogtail/errors.py, dogtail/tc.py: Fix encoding headers.
2007-10-22 Zack Cerza <zcerza@redhat.com>
* MAINTAINERS: Updated.
2007-08-29 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Update and clean up the toplevel docstring.
2007-08-29 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Rewrite Node.__doc__.
2007-08-29 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Remove some redundant documentation from
Node.__doc__.
2007-08-23 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Port the Action class over. Mainly needed to get at
keybindings.
2007-08-23 Zack Cerza <zcerza@redhat.com>
* dogtail/__init__.py: Make __init__.py import pyatspi.
2007-08-23 Zack Cerza <zcerza@redhat.com>
* tests/Node.py: Update unit tests with API changes: Node States (from
the old stateSet) are accessed directly, e.g. node.sensitive;
read-only attributes now raise AttributeError instead of
ReadOnlyError; atspi.SpiException has been replaced by
CORBA.COMM_FAILURE.
* dogtail/tree.py: Replace ReadOnlyError with AttributeError. Also
make Node.doAction() raise NotSensitiveError if necessary.
2007-08-23 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Fix Application.window() to not try to initialize
the Window class.
2007-08-10 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Port setting of Node.combovalue and additionally
allow retrieval of the value.
2007-08-10 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Port Node.caretOffset.
2007-08-10 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Add most of the rest of the checks from the old
Node.children into the new one, i.e. children limits and null-child
filtering. Also, when filtering null children, warn if
config.debugSearching is True.
2007-07-27 Zack Cerza <zcerza@redhat.com>
* sniff/sniff: Handle broken nodes more gracefully.
2007-07-27 Zack Cerza <zcerza@redhat.com>
* recorder/dogtail-recorder: Minor change in how we keep track of
keyboard press/release events.
2007-07-26 Zack Cerza <zcerza@redhat.com>
* recorder/dogtail-recorder: Port dogtail-recorder to pyatspi. Remove
some dead code. Add lots of comments. The keyboard modifier processing
had to be rewritten. As a bonus, things like <Shift><Home> should
actually get noticed now. Also, the madness that was FakeNode is no
more.
2007-07-25 Zack Cerza <zcerza@redhat.com>
* dogtail/i18n.py: Fix duplicate checking in
loadTranslationsFromPackageMoFiles(). Closes: #452232.
2007-06-22 Zack Cerza <zcerza@redhat.com>
* dogtail/dump.py: Remove SIGINT handler.
2007-06-22 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Port Selection stuff to pyatspi and convert to use
normal instance methods and properties.
2007-06-20 Zack Cerza <zcerza@redhat.com>
* examples/no-help-at-all.py: Add patch from Jan HutaÅ™ to use
cgi.escape() where necessary.
2007-06-20 Zack Cerza <zcerza@redhat.com>
* examples/filechooser-stress-test.py: Add patch from Jan HutaÅ™ to add
i18n support.
2007-05-31 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Fix a minor bug in Node._fastFindChild() that
caused a non-recursive search to halt completely if a null child was
encountered.
2007-05-30 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Move some documentation into the new properties.
Remove some unhelpful documentation. Further clean up bits of
documentation here and there. Note: not done with docs yet :)
2007-05-29 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Remove actual search code from Node.findChild() and
use pyatspi.utils.findDescendent, via a new Node._fastFindChild()
function.
2007-05-29 Zack Cerza <zcerza@redhat.com>
* dogtail/predicate.py: Turn all predicates' satisfiedByNode() functions
into pseudo-staticmethods, so we can pass those methods directly to the
search methods in pyatspi.utils.
2007-05-25 Zack Cerza <zcerza@redhat.com>
* sniff/sniff: Port Sniff to pyatspi. It should all work now, but
there could be a bug or two.
2007-05-25 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Begin port from pyspi to pyatspi. Disable __init__,
__getattr__, __setattr__, __str__ while their functionality is ported.
Attributes that were accessed via __[gs]attr__ are now declared as
properties, to make the code easier to read and document.
2007-05-25 Zack Cerza <zcerza@redhat.com>
* dogtail/logging.py: Actually obey config.logDebugToFile.
* dogtail/config.py: Implement runtime changing of logDebugToFile.
2007-05-25 Zack Cerza <zcerza@redhat.com>
* dogtail/config.py: Fix logic in first unit test.
2007-05-16 Zack Cerza <zcerza@redhat.com>
* dogtail/rawinput.py: Port from pyspi to pyatspi. Use ctypes and Xlib
to do the keystring -> keycode keycode conversion.
2007-05-11 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py, recorder/dogtail-recorder,
scripts/dogtail-run-headless, sniff/sniff: Replace 'except:' with
'except: Exception', since we don't want KeyboardInterrupt and
SystemExit to be ignored in any of those cases. See:
http://www.python.org/dev/peps/pep-0352/. Also catch only ImportError
in once case inside of dogtail-recorder.
2007-05-03 Zack Cerza <zcerza@redhat.com>
* sniff/sniff: Add patch from Michal Babej to correctly reset the
actions label when a Node with no actions is selected. Closes:
#432999.
2007-03-16 Zack Cerza <zcerza@redhat.com>
* setup.py: Add patch from Fernando Herrera to fix building from a
subversion checkout. Closes: #418923.
2007-02-20 Zack Cerza <zcerza@redhat.com>
* dogtail/predicate.py: Add unit tests for all predicates.
2007-02-13 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Add patch from Michal Babej to fix
Node.childLabelled().
2007-02-09 Zack Cerza <zcerza@redhat.com>
* examples/no-help-at-all.py: Add patch from Michal Babej to use
cgi.escape() to escape content for SGML.
2007-02-09 Zack Cerza <zcerza@redhat.com>
* dogtail/tc.py: Add patch from Michal Babej that removes some
confusion in TCImage.compare(), and also fixes a unit test.
2007-02-08 Daniel Drake <d.drake@mmm.com>
* dogtail/tree.py: Fix wrong logic in Node.selectedChildren
implementation
2007-02-08 Zack Cerza <zcerza@redhat.com>
* dogtail/utils.py: Make isA11yEnabled() look at $GTK_MODULES, too.
2006-11-28 Zack Cerza <zcerza@redhat.com>
* dogtail/config.py: When creating the default directories for logs,
etc. (/tmp/dogtail/*), create them world-writable so that they may be
shared by multiple users.
2006-11-22 Zack Cerza <zcerza@redhat.com>
* dogtail/config.py: Add parameter 'childrenLimit', which is an integer
representing how many children of a Node instance to return at maximum.
The default is 100.
* dogtail/tree.py: Only return config.childrenLimit children. Log a
warning to the debug logger the first time the list is clipped, but
remain silent on subsequent occurences.
2006-11-17 Zack Cerza <zcerza@redhat.com>
* examples/test-events.py: Make sure dogtail.tree is imported. Closes:
#374898. Also add warning that the script is outdated, may do evil, and
will probably be removed soon.
2006-11-15 David Malcolm <dmalcolm@redhat.com>
* dogtail/tree.py: ensure that a Node and a Link's children attribute
always is a list and hence iteratable (previously returned None for
Link instances and for Node instances that had __hideChildren set);
similar fix for the Node.findChildren method
2006-10-23 Zack Cerza <zcerza@redhat.com>
* dogtail/procedural.py: Make run() insert a space while concatenating
the binary name and arguments to pass. Closes: #364553.
2006-10-23 Zack Cerza <zcerza@redhat.com>
* setup.py, dogtail/__init__.py, NEWS: Post-release version bump.
2006-10-13 Zack Cerza <zcerza@redhat.com>
* Released 0.6.1.
2006-10-13 Zack Cerza <zcerza@redhat.com>
* NEWS: Update.
2006-10-13 Zack Cerza <zcerza@redhat.com>
* examples/data/GNOME-Street1.png, examples/data/GNOME-Street.png,
examples/data/g-star1.png, examples/data/g-star.png: Remove and
replace with far smaller test images.
* examples/data/10b.png, examples/data/10w.png, examples/data/20b.png,
examples/data/20w.png: Add, to replace older, larger test images.
* dogtail/tc.py: Update to reflect the change in test images.
2006-10-12 Zack Cerza <zcerza@redhat.com>
* recorder/dogtail-recorder: Keep track of which 'frame' (window) the
widget we're poking is under. If necessary, write out 'focus.frame()'
lines for that frame. This should keep us from getting confused about
which non-dialog window of a given application we care about.
2006-10-12 Zack Cerza <zcerza@redhat.com>
* recorder/dogtail-recorder: Be consistent about what name we use for
the recorder internally.
2006-10-11 Zack Cerza <zcerza@redhat.com>
* NEWS: Update with changes since 0.6.0.
2006-10-11 Zack Cerza <zcerza@redhat.com>
* dogtail/rawinput.py: Make typeText('foo\nbar') work again.
2006-10-10 Zack Cerza <zcerza@redhat.com>
* dogtail/distro.py: Fix up Solaris detection so that an /etc/release
that does not contain 'Solaris' doesn't prevent the exception from
being raised.
2006-10-10 Zack Cerza <zcerza@redhat.com>
* recorder/dogtail-recorder: Re-add Dave Malcolm's patch to add syntax
hilighting to the script view, which was accidentally dropped. Closes:
#345374.
2006-10-10 Zack Cerza <zcerza@redhat.com>
* dogtail/distro.py: Add patch from Brian Cameron to detect Solaris.
Closes: #360479. Also, check for Fedora before checking for Red Hat.
2006-10-10 Zack Cerza <zcerza@redhat.com>
* dogtail/i18n.py: Make TranslatableString.matchedBy() check for
equality before trying to match via regular expression. This will
ensure that traditional, exact-string searches will work regardless of
the presence of any regexy-looking characters. Additionaly escape '('
and ')', since grouping will never need to be used in this context.
Closes: #348891.
2006-10-02 Zack Cerza <zcerza@redhat.com>
* dogtail/utils.py: Fix 'Technolofy' typo :)
2006-09-27 Zack Cerza <zcerza@redhat.com>
* recorder/dogtail-recorder: Add support for recording right clicks.
It mostly works, but I'm seeing some inconsistency regarding what gets
focus when a right-click event occurs. For example, when a nautilus
icon seems to retain focus only about half the times it is
right-clicked; the other half, the context menu receives the focus.
Obviously, when that happens, the recorder records the wrong event.
2006-09-26 Zack Cerza <zcerza@redhat.com>
* recorder/dogtail-recorder, sniff/sniff: Stop whining if the glade
file isn't in the current directory.
2006-09-26 Zack Cerza <zcerza@redhat.com>
* recorder/dogtail-recorder, recorder/recorder.glade: Implement script
playback using python's threading module.
2006-09-26 Zack Cerza <zcerza@redhat.com>
* dogtail/procedural.py: Make type() and keyCombo() fall back to their
corresponding function in rawinput if focus.widget.node == None.
2006-09-26 Zack Cerza <zcerza@redhat.com>
* recorder/dogtail-recorder, recorder/recorder.glade: Remove Quit button
and add Play button. The Play button isn't fully implemented yet.
2006-09-26 Zack Cerza <zcerza@redhat.com>
* recorder/dogtail-recorder, recorder/recorder.glade: Remove combo box
since OOScriptWriter needs fixing. Also remove the expander since a
GTK bug was keeping it from expanding properly.
2006-09-22 Zack Cerza <zcerza@redhat.com>
* dogtail/rawinput.py: Make pressKey(), which is used by typeText(),
use UniCharToKeySym(). Now typeText('foo, bar; baz!?!') works again.
2006-09-21 Zack Cerza <zcerza@redhat.com>
* examples/filechooser-stress-test.py: Apply a patch from Michal Babej
to correctly look for the u'Open files\u2026' dialog.
* examples/no-help-at-all.py: Apply a patch from Michal Babej fail
gracefully if no argument was supplied, and also to start the
requested app if it is not running.
2006-09-21 Zack Cerza <zcerza@redhat.com>
* dogtail/logging.py: Refactor logging mechanism. DebugLogger is now
just Logger, and LogWriter is now a Logger subclass called
ResultsLogger. Logger can (and will by default) write its output to a
file in config.logDir. To disable the logging of debug information to
a file, set config.logDebugToFile to False. ResultsLogger now also
prints its results to standard out.
* dogtail/distro.py, dogtail/tree.py, dogtail/utils.py:
Replace all print statements with calls to the debug logger.
* dogtail/tc.py: Update to reflect changes in dogtail.logging.
* dogtail/procedural.py: Don't raise a FocusError if
config.fatalErrors is False. Instead, spit a warning out via
dogtail.errors.warn(), which relays to the debug logger.
* dogtail/errors.py: Add warn(), which is the mechanism by which an
exception is replaced by a warning if config.fatalErrors is False.
Uses dogtail.logging.debugLogger, which is a dogtail.logging.Logger
instance.
* dogtail/config.py: Add two new parameters: 'fatalErrors', which
specifies whether errors encountered while using dogtail.procedural
should be considered fatal; and 'logDebugToFile', which specifies
whether to write debug output to a file. They default to False and
True, respectively.
* dogtail/predicate.py: Give debugNames to all the Predicates that
were missing them.
* dogtail/i18n.py: Don't spam warnings and probably-useless tracebacks
when a broken app spews fake UTF-8.
* dogtail/__init__.py: Post-release version bump. Add the errors
module to __all__.
* NEWS, setup.py: Post-release version bump.
2006-09-13 Zack Cerza <zcerza@redhat.com>
Released 0.6.0.
2006-09-13 Zack Cerza <zcerza@redhat.com>
* README: Update.
* setup.py, dogtail/__init__.py: Bump version numbers.
2006-09-13 Zack Cerza <zcerza@redhat.com>
* MANIFEST.in: Remove debian directory from tarball.
* setup.py: Remove references to dogtail.apps.wrappers.
2006-09-13 David Malcolm <dmalcolm@redhat.com>
* examples/rhythmbox-test.py: removed
* examples/nautilus-test-icon-view-collage.py: removed (moved to
dogtail-tests/nautilus)
* examples/google-search.py: removed (moved to dogtail-tests/epiphany)
* examples/gnome-panel-test-starting-every-app.py: removed (moved to
dogtail-tests/gnome-panel)
* examples/gcalctool-test-fibonacci.py: removed (moved to
dogtail-tests/gcalctool)
* examples/firefox-test-browsing-local-html-file.py: removed
* examples/evolution-test-switching-components.py:
* examples/data/CAN-2005-0806.mbox:
* examples/evolution-test-survives-email-CAN-2005-0806.py:
* examples/evolution-test-sending-email.py:
* examples/evolution-test-first-time-wizard.py:
* examples/evolution-test-configuring-imap-smtp.py:
* examples/evolution-test-configuring-exchange.py:
* examples/evolution-test-composing-html.py: removed (moved to
dogtail-tests/evolution)
* examples/crack.py: removed (never worked)
* examples/abiword-test.py: removed (moved to dogtail-tests/abiword)
2006-09-13 David Malcolm <dmalcolm@redhat.com>
* dogtail/apps: remove entire subdirectory structure: what remained is now in
GNOME CVS inside dogtail-tests/appwrappers
2006-09-13 David Malcolm <dmalcolm@redhat.com>
* dogtail/apps/wrappers/kicker.py: remove
* dogtail/apps/wrappers/konqueror.py: remove
* dogtail/apps/wrappers/mozilla.py: remove
* dogtail/apps/wrappers/epiphany.py,
* dogtail/apps/wrappers/evolution.py,
* dogtail/apps/wrappers/gnomepanel.py,
* dogtail/apps/wrappers/gnomepanel.py,
* dogtail/apps/wrappers/yelp.py,
* dogtail/apps/wrappers/nautilus.py: remove reference to categories
* dogtail/apps/categories.py: remove
* dogtail/apps/__init__.py: remove categories
2006-09-13 Zack Cerza <zcerza@redhat.com>
* NEWS: Update.
2006-09-11 Zack Cerza <zcerza@redhat.com>
* recorder/dogtail-recorder: Replace newlines in node.name values with
an escaped '\n' in ProceduralScriptWriter.recordClick(). Remove a debug
statement in EventRecorder.onKeyPress().
2006-09-11 David Malcolm <dmalcolm@redhat.com>
* dogtail/apps/wrappers/yelp.py, dogtail/apps/wrappers/mozilla.py,
* dogtail/apps/wrappers/gnomepanel.py: rename self.version in each app
wrapper to avoid a naming collision with the synthesized Tree.version
attribute.
2006-09-11 Zack Cerza <zcerza@redhat.com>
* sniff/sniff, recorder/dogtail-recorder: Add patch from Tim Lee so
sniff and dogtail-recorder can find glade files even if they're not
installed into the /usr prefix. Closes: #353719, #353731.
2006-09-11 Zack Cerza <zcerza@redhat.com>
* dogtail/utils.py, sniff/sniff, recorder/dogtail-recorder,
dogtail/tree.py: Add utility functions to check whether accessibility
is enabled via GConf, and either present a dialog asking to enable it
(for sniff & dogtail-recorder) or just bail (for scripts).
2006-09-07 Zack Cerza <zcerza@redhat.com>
* recorder/dogtail-recorder: Make sure the recorder can't record
itself. Also remove some old comments.
2006-09-07 Zack Cerza <zcerza@redhat.com>
* dogtail/i18n.py: Also use safeDecode() instead of calling any
string's encode() method directly. Now i18n.py should work exclusively
with Unicode internally, and the safe conversion means that dogtail
should never crash because of an invalid Unicode string ever again.
2006-09-07 Zack Cerza <zcerza@redhat.com>
* dogtail/i18n.py: Add safeDecode(), a function based on the fix
committed on 2006-08-22. Use it instead of calling any string's
decode() method directly. Closes: #354515.
2006-09-07 Zack Cerza <zcerza@redhat.com>
* scripts/dogtail-run-headless: Fix syntax error, and look for
gnome-settings-daemon in /usr/libexec before $PATH. Closes: #354518.
2006-09-07 Zack Cerza <zcerza@redhat.com>
* dogtail/utils.py: Rewrite screenshot() to use GDK instead of
ImageMagick.
2006-09-06 Zack Cerza <zcerza@redhat.com>
* dogtail/distro.py: Add patch from Tim Lee to fix up SuSe support.
Closes: #353601.
2006-09-05 Zack Cerza <zcerza@redhat.com>
* dogtail/logging.py: Don't use an IconLogger by default.
* dogtail/config.py: Add useIconLogger setting, which defaults to
False. Setting it to True enables the IconLogger immediately. Add
documentation and a unit test to that effect.
2006-08-28 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Ignore any SpiException, only when trying to access
root.children. This is so people using broken applications while
trying to test non-broken applications don't have to suffer.
2006-08-25 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Add patch from Chris Lee to add the 'checked' Node
attribute, which indicates whether the Node is a check box that is
currently checked.
2006-08-23 Zack Cerza <zcerza@redhat.com>
* dogtail/config.py: Add parameter 'typingDelay', defaulting to 0.075.
* dogtail/rawinput.py: Make typeText() use pressKey(). Add
keySymAliases for '\t' and '\n'.
2006-08-23 Zack Cerza <zcerza@redhat.com>
* setup.py, MANIFEST.in: Remove mentions of textinput.glade.
2006-08-22 Zack Cerza <zcerza@redhat.com>
* recorder/dogtail-recorder: Remove the text input UI. Implement actual
keystroke recording. Add support for the ProceduralScriptWriter to
write out script calls. The OOScriptWriter is unsupported at this time.
Also, make exceptions occuring inside AT-SPI-registered callbacks more
informative by printing their tracebacks before they're lost in the
marshaling process.
* recorder/recorder.glade: Remove 'Input Text' button.
* recorder/textinput.glade: Remove glade file for text input UI.
2006-08-22 Zack Cerza <zcerza@redhat.com>
* dogtail/procedural.py: Add type(), which for now just calls
focus.widget.node.typeText(). Add keyCombo(), which for now just calls
focus.widget.node.keyCombo().
2006-08-22 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Add new Node attributes: 'focusable' and 'focused'.
Both are read-only Boolean values. 'focusable' indicates whether the
Node is able of taking keyboard focus. 'focused' indicates whether the
Node currently has keyboard focus. Remove Node.rawType() and move its
functionality to Node.typeText(). In Node.typeText(), if the node is
focusable and not focused, try to grab its focus with Node.grabFocus
before using rawtype.typeText() to do the typing. If the node is not
focusable, just append the string to the node's 'text' property. Add
Node.keyCombo(), which does a similar thing but cannot have a fallback
mechanism.
2006-08-22 Zack Cerza <zcerza@redhat.com>
* dogtail/rawinput.py: Add keyCombo(), which takes a string in the same
format of gtk.accelerator_parse(), e.g. "<Control><Alt>Delete" and
generates the appropriate keyboard events to simulate the user pressing
that combination. Add __buildKeyStringsDict(), which essentially
generates an inverted version of the keySyms dict. Add
keySymToUniChar(), which takes a keysym and returns the corresponding
Unicode character, if one exists. Add uniCharToKeySym(), which does the
reverse. Also add a few more keysym aliases to the keySymAliases dict.
2006-08-22 Zack Cerza <zcerza@redhat.com>
* dogtail/i18n.py: If we encounter a UnicodeDecodeError because of an
invalid string, print the exception plus a warning explanation, and
contintue by decoding the string and replacing invalid characters with
question marks.
2006-08-21 Zack Cerza <zcerza@redhat.com>
* recorder/dogtail-recorder.desktop: Move to the 'Programming'
category in the menu.
* sniff/sniff.desktop: Move to the 'Programming' category in the menu.
2006-08-11 Zack Cerza <zcerza@redhat.com>
* scripts/dogtail-run-headless: Use the python GConf bindings.
2006-08-11 Zack Cerza <zcerza@redhat.com>
* NEWS, setup.py, dogtail/__init__.py, dogtail/apps/__init__.py,
dogtail/apps/wrappers/__init__.py: Post-release version bump.
2006-08-01 Zack Cerza <zcerza@redhat.com>
Released 0.5.2.
2006-08-01 Zack Cerza <zcerza@redhat.com>
* NEWS: Update.
2006-08-01 Zack Cerza <zcerza@redhat.com>
* tests/Node.py: Put a time.sleep() in GtkDemoTest.tearDown() to let
gtk-demo actually die before launching another. AT-SPI seems to really
disapprove of the speed at which it was being hammered.
2006-08-01 Zack Cerza <zcerza@redhat.com>
* NEWS: Update.
2006-07-31 Zack Cerza <zcerza@redhat.com>
* dogtail/config.py, dogtail/tree.py: Remove shebang lines.
2006-07-28 David Malcolm <dmalcom@redhat.com>
* Makefile: add a working default target ('all') and an install target,
so that it builds within jhbuild (Fixes: #318535)
2006-07-27 David Malcolm <dmalcolm@redhat.com>
* tests/Node.py: added TestExceptions: ensure that when an app dies,
attempts to contact it result in an exception being raised (even more
final part of bg #318135)
2006-07-27 David Malcolm <dmalcolm@redhat.com>
* sniff/sniff: handle broken communication with nodes (e.g. for a
crashed app) by displaying "broken node" and an error icon (hopefully
the final part of bug #318135)
2006-07-24 Zack Cerza <zcerza@redhat.com>
* dogtail/rawinput.py: Use gtk.kesyms to look up keysyms. Retain
compatibility with old names via a keySymAliases dict. Also, use only
one atspi.EventGenerator.
2006-07-21 Zack Cerza <zcerza@redhat.com>
* dogtail/utils.py: Set GTK_MODULES='gail:atk-bridge' in run() before
executing the app, to make sure it is accessible. It seems most
non-GNOME apps need this set.
2006-07-21 Zack Cerza <zcerza@redhat.com>
* recorder/dogtail-recorder: Add a UI for setting the text property of
a Node instance. While recording, you click 'Input Text', and a dialog
pops up. Click the node whose text you want to set, then type the text
into the dialog and press OK. The recorder sets the node's text, then
writes out lines in the script to do the same.
* recorder/recorder.glade: Add 'Input Text' button.
* recorder/textinput.glade: Add new glade file: the text input dialog.
* MANIFEST.in: Add textinput.glade to tarball.
* setup.py: Add textinput.glade to packages.
2006-07-19 Zack Cerza <zcerza@redhat.com>
* recorder/dogtail-recorder: Initialize EventRecorder.listeners to an
empty list, to fix a traceback when the user tries to quit the
recorder without actually recording anything.
2006-07-14 Zack Cerza <zcerza@redhat.com>
* recorder/dogtail-recorder: Make the script TextView editable at
all times, so the user can add comments and the like while recording.
2006-07-14 Zack Cerza <zcerza@redhat.com>
* examples/gedit-test-utf8-tree-api.py: Add patch from Len DiMaggio
to fix this script. Also make the script search for u'Save As\u2026'
in addition to 'Save As...' for the dialog title. Closes: #340734.
2006-07-14 Zack Cerza <zcerza@redhat.com>
* dogtail.spec: Forward-port a fix from the Fedora Extras specfile,
fixing a broken call to desktop-file-install. Closes: #347322.
2006-07-13 Zack Cerza <zcerza@redhat.com>
* scripts/dogtail-run-headless: Rewrite the script in Python. It now
accepts command line options to specify what session is to be used.
Currently those are: '--gnome' or '-g' for the old minimal GNOME
session, and '--none' or '-n' for just metacity. The script also has
a usage statement and helpful error messages. In general it's more
featureful, robust and easy to use. Closes: #344902.
* scripts/dogtail-detect-session: Also exit normally if any apps are
found at all.
2006-06-30 David Malcolm <david@localhost.localdomain>
* tests/Node.py: add unit test for getting bogus attributes of a Node;
document many of the existing unit tests; add unit tests for writing to
a read-only attribute of Node; fix some typos in the names of the unit
tests; check that Node.extents has non-zero size, and that Node.size is
non-zero
* dogtail/tree.py: make attempts to write to a read-only attribute of
Node raise a ReadOnlyError, rather than fall through to an
AttributeError; remove the old stubbed unit test from the tail of the
file
2006-06-29 Zack Cerza <zcerza@redhat.com>
* dogtail/procedural.py: Add warning not to read without understanding
the API.
2006-06-27 David Malcolm <dmalcolm@redhat.com>
* recorder/dogtail-recorder: use GtkSourceView if available to get
syntax-highlighting. Closes: #345374.
* tests/Node.py: new file: unit tests for the dogtail.Node class.
* tests: new subdirectory, to hold unit tests for Dogtail itself
2006-06-27 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Make SearchError a proper Exception subclass.
* dogtail/procedural.py: Prepare module for support for accepting
regular expressions as 'name' arguments. Use the IsAnApplicationNamed
predicate in FocusApplication. Remove unused 'description' arguments.
* dogtail/i18n.py: Add regular expression support to
TranslatableString.matchedBy(). This means that any 'name' argument
supports regular expression matching, by virtue of the fact that all
Predicate subclasses uses TranslatableString.matchedBy() for 'name'
arguments.
2006-06-16 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Add patch from Dave Malcolm to work around the
problem where pyspi would essentially just stop working, until the
user logged out and back in. Closes: #321273.
2006-06-15 Zack Cerza <zcerza@redhat.com>
* dogtail/config.py: Fix help(dogtail.config.config). Fix outdated
documentation for dogtail.config.config by reorganizing and documenting
accidentally-undocumented parameters.
2006-06-02 Zack Cerza <zcerza@redhat.com>
* dogtail/config.py: Fix unit test that was broken by a commit from
2005-11-01, which made config.ensureSensitivity default to True. The
unit test wasn't updated in that commit. The unit test now doesn't
assume what the default is, and uses the value obtained from
config.defaults. Thanks to Len DiMaggio for reporting. Closes: #342028.
2006-05-01 Zack Cerza <zcerza@redhat.com>
* recorder/recorder.glade: Remove the 'Stop' button, and add a 'Clear'
button.
* recorder/dogtail-recorder: Make the 'Record' button turn into a
'Stop' button after it is pressed, and vice versa. Add
toggleRecording() to RecorderGUI and remove startRecording(). Make
RecorderGUI.quit() stop the recording before it calls gtk.main_quit().
2006-04-17 Zack Cerza <zcerza@redhat.com>
* recorder/dogtail-recorder: Make ProceduralScriptWriter.recordClick()
write out correct calls for Node instances that don't have
action['click'] and instead need, for example, 'activate'. If other
actions aren't available, use the node's select(). If that doesn't
work, do a click(raw=True), to spoof raw mouse input. Also, remove
some old AttributeError handlers from FakeNode.__init__(). Also, make
EventRecorder stop listening to window:create events, since those are
just thrown away. Also, refactor and rewrite
EventRecorder.onMouseButton() to be much more accurate in detecting
clicks. Reporting the wrong nodes happens far less often, now. There
is still the problem of clicks getting dropped when the mouse button
isn't help down for, say, 200ms. Clicks on toolbar buttons tend to get
dropped too. But there are no more false clicks, e.g. clicking on a
non-accessible application still recorded a (bogus) action. Also, make
clicking on table cells work properly, working around the fact that
mouse:button events are always reported by the table and not the cell,
by finding the smallest child of the table whose extents the event
occured inside.
* dogtail/procedural.py: Add Select, an Action subclass that doesn't
deal with actions. It lets us have select() and deselect() calls. The
former is how page tabs are activated.
2006-04-17 Zack Cerza <zcerza@redhat.com>
* sniff/sniff: Restore sane default window size.
2006-04-17 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Fix Node.size by using the values from
Node.__accessible.getExtents() instead of .getSize().
2006-04-13 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Change the way Node reports that attributes
provided by specialized Accessible interface extensions do not apply.
For example, for some instance 'foo', trying to access 'foo.text' when
the AccessibleText interface is not available for that node will now
return None instead of raising an AttributeError (if it were
available, and the text was zero-length, it would have returned '').
Trying to access 'foo.children' will return [] instead of raising an
AttributeError. The reason for this change is that these conditions
are not "exceptional". Trying to access
'foo.thisIsANonexistentAttribute' would be exceptional. Also, add a
ReadOnlyError exception which is raised when, for example, someone
tries to set 'foo.text' when 'foo' does not have an
AccessibleEditableText implementation.
* sniff/sniff: Update Sniff to reflect the removal of most of Node's
AttributeErrors.
* sniff/sniff.glade: Use a GtkWindow instead of a GnomeApp. The latter
was unnecessary and forced us to use widgets we didn't want.
2006-04-11 Zack Cerza <zcerza@redhat.com>
* recorder/dogtail-recorder: Scroll to the end of the TextView after
inserting a new line, so you can watch the script as it's written.
2006-04-11 Zack Cerza <zcerza@redhat.com>
* recorder/dogtail-recorder, recorder/recorder.glade: Add ComboBox to
allow selection of ScriptWriter. Make ProceduralScriptWriter default.
Remove those assertions, because they were evil.
2006-04-11 Zack Cerza <zcerza@redhat.com>
* recorder/dogtail-recorder: Implement ProceduralScriptWriter class.
It implements recordClick() just like OOScriptWriter, but it also has
the special method findAncestor(), for deciding whether the script
will need to do a focus.application() or focus.dialog(). For this, I
needed to implement a FakeNode.__cmp__(). It only compares the name,
roleName and description of the FakeNode instances. Bother me if you
need it to compare more attributes for it to work. Make
ProceduralScriptWriter the default ScriptWriter for now. Also, add a
couple assertions in various methods to make sure the node parameter
is never None.
2006-04-04 Zack Cerza <zcerza@redhat.com>
* setup.py, dogtail/__init__.py, dogtail/config.py, dogtail/distro.py,
dogtail/dump.py, dogtail/errors.py, dogtail/i18n.py,
dogtail/logging.py, dogtail/path.py, dogtail/predicate.py,
dogtail/procedural.py, dogtail/rawinput.py, dogtail/tc.py,
dogtail/trayicon.py, dogtail/tree.py, dogtail/utils.py,
dogtail/version.py, dogtail/apps/categories.py,
dogtail/apps/wrappers/__init__.py, dogtail/apps/wrappers/epiphany.py,
dogtail/apps/wrappers/evolution.py,
dogtail/apps/wrappers/gcalctool.py, dogtail/apps/wrappers/gedit.py,
dogtail/apps/wrappers/gnomepanel.py, dogtail/apps/wrappers/kicker.py,
dogtail/apps/wrappers/konqueror.py, dogtail/apps/wrappers/mozilla.py,
dogtail/apps/wrappers/nautilus.py, dogtail/apps/wrappers/yelp.py,
examples/abiword-test.py, examples/crack.py,
examples/evolution-test-switching-components.py,
examples/filechooser-stress-test.py,
examples/gcalctool-test-fibonacci.py,
examples/gedit-test-utf8-procedural-api.py,
examples/gedit-test-utf8-tree-api.py,
examples/gnome-panel-test-starting-every-app.py,
examples/google-search.py, examples/i18n-test.py,
examples/nautilus-test-icon-view-collage.py,
examples/no-help-at-all.py, examples/rhythmbox-test.py,
examples/test-events.py, recorder/dogtail-recorder, sniff/sniff:
Convert everything to use 4 spaces for indentation, instead of tabs.
* HACKING: Remove all the notes about forcing editors to use tabs for
indentation. Closes: #318833.
2006-04-04 Zack Cerza <zcerza@redhat.com>
* sniff/sniff.desktop: Move to the 'Accessories' category in the menu.
2006-04-04 Zack Cerza <zcerza@redhat.com>
* recorder/dogtail-recorder.desktop: Add desktop file for
dogtail-recorder.
* MANIFEST.in, setup.py: Ship and install dogtail-recorder.desktop.
2006-04-04 Zack Cerza <zcerza@redhat.com>
* recorder/recorder.glade: Add gtk.Expander and gtk.TextView
to allow viewing and editing a script. Note that when the Expander is
collapsed, the main window doesn't shrink back to its original size.
This is a bug.
* recorder/dogtail-recorder: Make ScriptWriters either store
the script in a normal Python string, or a gtk.TextView if it's
available. Continue to print the script to standard out, for
debugging. Implement saving scripts via the GUI, automatically
appending a '.py' to the filename if necessary. Also, add some basic
docstrings to some OOScriptWriter methods (mostly to note that the
keyboard stuff doesn't work yet).
2006-03-31 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Added support for AccessibleSelection to Node, via
Node.{de,}select(), Node.{de,}selectAll(), Node.isSelected,
Node.selectedChildren and Node.indexInParent.. Thanks to Peter
Johanson and Jose Dapena Paz. Closes: #336562.
2006-03-28 Zack Cerza <zcerza@redhat.com>
* MANIFEST.in: Add the new recorder files to the tarball.
* setup.py: Add the new recorder files to packages.
2006-03-28 Zack Cerza <zcerza@redhat.com>
* recorder/dogtail-recorder: Add GUI with Record, Stop, Save and Quit
buttons. Add new methods to EventRecorder: startRecording() and
stopRecording(), and move all the event listener (de)registration and
and AT-SPI event loop handling into those methods. Remove hack that
killed the recorder when an Edit menu was clicked, since there is a
working Stop button. This requires today's pyspi HEAD.
* recorder/recorder.glade: Add Glade file for dogtail-recorder.
2006-03-28 Zack Cerza <zcerza@redhat.com>
* examples/recorder.py: Move to recorder/dogtail-recorder.
* recorder/dogtail-recorder: Move from examples/recorder.py.
2006-03-28 Zack Cerza <zcerza@redhat.com>
* examples/recorder.py: Remove the Writer class and move its only
method to the ScriptWriter class. Create a a subclass of
dogtail.tree.node, called FakeNode, which can wrap a Node instance and
store certain attributes of it, so AT-SPI calls are not used when
reading them. This was necessary because events are useless if they
are received after their source has been destroyed. For example, by
storing recorder.lastFocusedNode as a FakeNode instead of a Node, if a
Close button in a dialog is clicked we will still have all the
information we need to record the event. So, make
EventRecorder.on{Focus,Select}() store self.last{Focus,Select}edNode
as FakeNodes. Also, make EventRecorder.onMouseButton() properly dance
around dogtail.tree's handling of attributes. This will have to be
fixed in the nearish future, though.
2006-03-21 Zack Cerza <zcerza@redhat.com>
* examples/recorder.py: s/Focussed/Focused/g. Add lastSelectedNode
callbacks and event listener registration. s/MouseClick/MouseButton/g.
Keep track of lastPressedNode and lastReleasedNode. Add code to try to
detect the "real" source nodes by checking the X and Y coordinates of
lastFocusedNode and lastSelectedNode. Add a way to exit the recorder -
currently, clicking on an Edit menu will do it. When the
OOScriptWriter is initialized, make it spit out "from dogtail.tree
import *".
2006-03-21 Zack Cerza <zcerza@redhat.com>
* dogtail/predicate.py: Remove extra quotes from all the script
generation code.
2006-03-21 Zack Cerza <zcerza@redhat.com>
* dogtail/__init__.py, dogtail/apps/__init__.py,
dogtail/apps/wrappers/__init__.py, setup.py, NEWS: Post-release
version bump.
2006-03-14 Zack Cerza <zcerza@redhat.com>
Released 0.5.1.
2006-03-14 Zack Cerza <zcerza@redhat.com>
* examples/recorder.py: Store each EventListener in a list instead of
initializing it and throwing it away. Add the beginnings of a
OOScriptWriter.recordKey() method - for when pyspi's DeviceListener
works properly.
* NEWS: Updated.
2006-03-14 Zack Cerza <zcerza@redhat.com>
* dogtail/i18n.py, dogtail/rawinput.py, dogtail/i18n.py,
dogtail/rawinput.py, dogtail/logging.py, dogtail/utils.py,
dogtail/path.py: Remove '#!/usr/bin/env python' headers to fix rpmlint
warnings. The rest apparently can keep them, since they have unit
tests. Add UTF-8 encoding headers.
2006-02-28 Zack Cerza <zcerza@redhat.com>
* dogtail/predicate.py: Fix makeCamel() to deal with
TranslatableString instances properly by calling str() on the
parameter as a safeguard.
2006-02-24 Zack Cerza <zcerza@redhat.com>
* setup.py, dogtail/__init__.py, dogtail/apps/__init__.py,
dogtail/apps/wrappers/__init__.py: Belated post-release version bump.
2006-02-24 Zack Cerza <zcerza@redhat.com>
* dogtail/distro.py, dogtail/i18n.py, dogtail/logging.py,
dogtail/tc.py, dogtail/trayicon.py, dogtail/tree.py,
dogtail/apps/wrappers/evolution.py: s/ / /g. This will make it easier
to convert to four-space indentation, since that's all the rage these
days.
* dogtail/apps/wrappers/nautilus.py: Fix up indentation; was mixing
tabs and spaces.
2006-02-24 Zack Cerza <zcerza@redhat.com>
* dogtail/procedural.py: Tweak the FocusWidget and FocusDialog
algorithms so that they store the predicate instance. That way, we can
give more meaningful FocusErrors by passing the predicate's debugName.
2006-02-14 Zack Cerza <zcerza@redhat.com>
* Makefile: Split 'rpm' target into 'rpm_prep' and 'rpm'. Add a new
target, 'srpm', to build just a source RPM. Make it ignore
BuildRequires. Make 'rpm' target only build binary RPMs. Don't make
the 'tarball' target depend on the 'clean' target.
2006-02-07 Zack Cerza <zcerza@redhat.com>
Released 0.5.0.
2006-02-07 Zack Cerza <zcerza@redhat.com>
* README: Add pointed to gedit-procedural example, and note that it's
the most frequently updated.
2006-02-03 Zack Cerza <zcerza@redhat.com>
* sniff/sniff: Add some error checking to getSelectedNode(), to get
rid of a (harmless, but scary) traceback on startup.
2006-02-03 Zack Cerza <zcerza@redhat.com>
* dogtail/logging.py: Update to use new icon path.
2006-02-03 Zack Cerza <zcerza@redhat.com>
* setup.py, sniff/sniff: Move sniff's application icons from
/usr/share/pixmaps/ into /usr/share/hicolor/*/apps/.
* setup.cfg: Remove.
2006-02-03 Zack Cerza <zcerza@redhat.com>
* README: Add README file. It's a start.
2006-01-31 Zack Cerza <zcerza@redhat.com>
* dogtail/i18n.py, dogtail/predicate.py dogtail/trayicon.py: Be much
more intelligent about encodings. This should really, truly fix the
last remaining blocker on the automatic runtime translation feature.
Closes: 328652.
2006-01-31 Zack Cerza <zcerza@redhat.com>
* dogtail/i18n.py: Generalize language detection.
2006-01-31 Zack Cerza <zcerza@redhat.com>
* dogtail/apps/wrappers/epiphany.py: Update to new Action API.
2006-01-27 Zack Cerza <zcerza@redhat.com>
* dogtail/i18n.py: Comment out some super-verbose debug statements.
* examples/gedit-test-utf8-procedural-api.py: Use a proper Unicode
ellipsis.
2006-01-27 Zack Cerza <zcerza@redhat.com>
* dogtail/i18n.py: Make sure we filter the list of mo-files so that
we only get the ones in the target language.
2006-01-26 Zack Cerza <zcerza@redhat.com>
* dogtail/i18n.py: Fix automatic runtime translation. Stop using
gettext.dgettext(), and instead use the gettext.GNUTranslations class
and its member function, ugettext(). This ensures that we always get
Unicode back. As a consequence, stop caring about "domains" and just
deal with mo-files. Remove getTranslationDomainsForPackage(). Closes:
#328652. Also, fix isMoFile()'s regexp matching.
2006-01-24 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Comment out the warning about missing wnck
bindings, since the functionality is nonworking anyway.
* NEWS: Add note about the last change to dogtail.tree.
2006-01-17 Zack Cerza <zcerza@redhat.com>
* examples/gedit-test-utf8-procedural-api.py: Use codecs.open()
instead of open() for reading the UTF-8 files. open() apparently
ignores encoding issues, and codecs.open() allows us to specify the
encoding of the file. Add comments to that effect.
* dogtail/tc.py: Make a note in TC.compare()'s docstring that
codecs.open() must be used to open any non-ASCII files that are
intended to be compared using that function.
2006-01-17 Zack Cerza <zcerza@redhat.com>
* dogtail/utils.py: Make screenshot() raise a DependencyNotFoundError
if ImageMagick is not installed.
* NEWS: Add note about the last change to screenshot().
2006-01-17 Zack Cerza <zcerza@redhat.com>
* NEWS: Add notes about dogtail.errors and the change to TCImage.
2006-01-17 Zack Cerza <zcerza@redhat.com>
* dogtail/errors.py: Add errors.py, a module for generalized
exceptions, i.e. its first exception: DependencyNotFoundError. Other
exceptions such as distro.PackageNotFoundError and
procedural.FocusError probably do not belong here.
* dogtail/tc.py: Give a better error message if TCImage is
instantiated while ImageMagick is not installed, by raising a
DependencyNotFoundError.
* examples/gedit-test-utf8-procedural-api.py: Remove unncessary
TCImage instantiation. Also, be aware that the naming of the "Save as"
dialog changed slightly. Try both strings.
2006-01-13 Zack Cerza <zcerza@redhat.com>
* setup.py: Change author_email to dogtail-list@gnome.org.
2006-01-13 Zack Cerza <zcerza@redhat.com>
* setup.py, dogtail/__init__.py, dogtail/apps/__init__.py,
dogtail/apps/wrappers/__init__.py: Bump version numbers.
2006-01-13 Zack Cerza <zcerza@redhat.com>
* MANIFEST.in: Add NEWS file to tarball.
2006-01-05 Zack Cerza <zcerza@redhat.com>
* NEWS: Update with changes since 0.4.3.
2006-01-04 Zack Cerza <zcerza@redhat.com>
* examples/gedit-test-utf8-procedural-api.py: Add comment about how to
turn on automatic translation.
2005-12-01 Zack Cerza <zcerza@redhat.com>
* sniff/sniff: Update to the new Action API.
2005-12-01 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Add patch from David Malcolm to add a single
shortcut method for Node.doAction('click') - simply Node.click() as a
compromise. Closes: #321196.
2005-11-27 Zack Cerza <zcerza@redhat.com>
* dogtail/utils.py: Remove spurious print statement from screenshot().
2005-11-27 Zack Cerza <zcerza@redhat.com>
* NEWS: Reformat to make more readable.
2005-11-27 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Re-add helper methods that were removed on 11-08.
Change Action API from "Node.actionName()" to
"Node.doAction(actionName)" for an action whose name is 'actionName'.
* dogtail/procedural.py: Update to new Action API.
2005-11-22 Zack Cerza <zcerza@redhat.com>
* debian/control: Fix typo. Thanks to Alex Roitman for reminding me
to commit this. Closes: #322169.
2005-11-22 Zack Cerza <zcerza@redhat.com>
* dogtail/tc.py: Make TCImage.compare() work around a change in
ImageMagick that broke the method, by comparing its version string
against the one at which it changed. Closes: #321431.
2005-11-18 Zack Cerza <zcerza@redhat.com>
* dogtail/config.py: Add config parameter 'blinkOnActions'. The
parameter defaults to False. Set it to True to watch your scripts
blinken die lichten!
* dogtail/tree.py: Make Action.do() call blink() on the associated
node.
2005-11-18 Zack Cerza <zcerza@redhat.com>
* dogtail/utils.py: Add Blinker class from sniff/sniff, which, upon
initialization, blinks a rectangular shape onscreen.
* dogtail/tree.py: Add Node.blink(), which blinks a rectangle around
the node's extents (if it has extents). This is intended to help
debugging situations where, during script writing, the node found in a
search is not what was expeced.
* sniff/sniff: Remove Blinker class and blinkExtents(). Make
selectionChanged() just call node.blink().
2005-11-18 Zack Cerza <zcerza@redhat.com>
* sniff/sniff: Move blink interval constant into Blinker class. Make
Blinker.__init__()'s count argument optional, defaulting to 2.
2005-11-17 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Add Hyperlink and Hypertext support via the Link
class (subclass of Node). Link objects have a roleName of 'hyper link'
and a 'jump' action in Epiphany - I haven't tested Firefox yet.
2005-11-17 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Add debug logging to Node.rawClick() and
Node.rawType().
2005-11-17 David Malcolm <dmalcolm@redhat.com>
* sniff/sniff: reduce it to a single blink (2 calls of the callback)
rather than two blinks (4 calls) to avoid visual confusion when
rapidly changing the selection.
2005-11-17 David Malcolm <dmalcolm@redhat.com>
* sniff/sniff: implement a selectionChanged callback for the tree
view; use it to make the extents of the selected node blink, porting
code from at-poke's src/poke.c (though without the grabs that uses).
Closes: #321655
2005-11-17 David Malcolm <dmalcolm@redhat.com>
* sniff/sniff: remove the unused "populate" function
2005-11-16 Zack Cerza <zcerza@redhat.com>
* sniff/sniff: Properly catch an AttributeError where an
AssertionError was previously expected. Closes: #321564:.
2005-11-16 Zack Cerza <zcerza@redhat.com>
* dogtail/procedural.py: Make FocusDialog.__call__() pass
recursive=False to FocusApplication.node.findChild(). Closes: #321624.
2005-11-15 Zack Cerza <zcerza@redhat.com>
* dogtail/logging.py: Make LogWriter print the name of the logfile
just before it creates it.
2005-11-15 Zack Cerza <zcerza@redhat.com>
* dogtail/logging.py: Fix TimeStamp.zeroPad() by defaulting to
width=2. Fix TimeStamp.fileStamp() by renaming 'long' argument to
'addTime'.
2005-11-14 Zack Cerza <zcerza@redhat.com>
* dogtail/procedural.py: Use {get,set}attr() inside
FocusBase.__{get,set}attr__() instead of
FocusBase.node.__{get,set}attr__(), in order to composite attributes
that aren't dynamically generated.
2005-11-14 Zack Cerza <zcerza@redhat.com>
* dogtail/procedural.py: Fix compositing of Node properties into
FocusBase subclasses.
2005-11-14 Zack Cerza <zcerza@redhat.com>
* dogtail/procedural.py: Fix focusing. There are supposed to be three
different focus 'slots': application, dialog, and widget. Previously
Actions were not operating on the same nodes as FocusWidget as
intended. Also remove a couple print statements left over from
previous debugging.
2005-11-14 Zack Cerza <zcerza@redhat.com>
* dogtail/rawinput.py: rewrite pressKey() to take as an argument the
English key name as seen on the keyboard, look its keysym up via a
dict, and pass that value to AT-SPI to synthesize the event. This
means each key will have to be added to the keySyms dict explicitly,
but I think it's worth it for the API to make sense and be portable.
Add docstrings to pressKey() and typeText().
2005-11-10 Zack Cerza <zcerza@redhat.com>
* dogtail/logging.py: Fix TimeStamper.zeroPad()'s padding, and note in
its docstring that it will not truncate.
2005-11-10 Zack Cerza <zcerza@redhat.com>
* dogtail/predicate.py, dogtail/rawinput.py: Clean up imports.
2005-11-10 Zack Cerza <zcerza@redhat.com>
* dogtail/rawinput.py: Add typeText() and pressKey(). For now
pressKey() takes an integer keycode argument, but I'd like to enable
something like "pressKey('Return')" in the future.
* dogtail/tree.py: Make Node.grabFocus() get added to the object in
Node.__init__(), but only of the node wraps a Component. Also add
Node.rawClick() and Node.rawType().
* dogtail/procedural.py: Implement click(raw=True).
2005-11-10 Zack Cerza <zcerza@redhat.com>
* dogtail/procedural.py: Make FocusWidget.__call__() actually raise a
FocusError if it can't find what it's looking for.
2005-11-10 Zack Cerza <zcerza@redhat.com>
* dogtail/procedural.py: Add menu(), Focus.frame(), Focus.window().
2005-11-10 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Add Node.position, Node.size, and Node.grabFocus()
for those Nodes wrapping an AccessibleComponent.
2005-11-10 Zack Cerza <zcerza@redhat.com>
* dogtail/tc.py: Don't initialize TC's self.{baseline,undertest,result} so
that TC.compare() defaults to failing. Make sure to assign
self.{baseline,undertest} to the value of the arguments passed to
compare(). Fix several unit tests to specify their strings as being
Unicode-encoded. Strings comparisons now fail properly. Thanks to
Muktha Narayan for reporting the bug and attaching a proposed patch.
Closes: #321151.
2005-11-10 Zack Cerza <zcerza@redhat.com>
* dogtail/tc.py: s@scripts/pound@examples/data@g to reflect the
directory naming that occured a while back.
2005-11-08 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Fix bogus logic in Node.__getattr__() where if, for
example, a Node had multiple actions such that
node.actions[0].name == 'activate' and node.actions[1].name == 'menu',
calling node.menu() would fail.
2005-11-08 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Remove "various wrapper/helper search methods":
Node.{child, menu, menuItem, textentry, button, childLabelled,
childNamed, tab}(). Node.menu() conflicted with the other Node.menu(),
which is needed to execute the AccessibleAction's 'menu' action.
2005-11-08 Zack Cerza <zcerza@redhat.com>
* dogtail/procedural.py: Fix "maximum recursion depth exceeded" error
in FocusBase.__getattr__() when 'help(dogtail.procedural)' is called
right after 'import dogtail.procedural'.
2005-11-08 Zack Cerza <zcerza@redhat.com>
* Makefile: Build RPMs as a normal user. Thanks again to Bastien
Nocera for the patch! Closes: #320983.
2005-11-08 Zack Cerza <zcerza@redhat.com>
* dogtail.spec: Make __os_install_post macro one line to fix building
RPMs on RHEL4 and earlier. Thanks to Bastien Nocera for the patch.
Closes: #320978.
2005-11-03 Zack Cerza <zcerza@redhat.com>
* dogtail/distro.py: Add PackageDb.getMoFiles(), returning (mostly)
all the .mo files in the distro, optionally for just one locale. Move
all PackageDb subclasses into the top level of the module, and prefix
their names with a '_' so it is possible to subclass them. Add
UbuntuAptPackageDb to make it possible for getMoFiles() to search in
/usr/share/locale and /usr/share/locale-langpack. Add JHBuild class, a
subclass of Distro, and JhBuildPackageDB class, a subclass of
PackageDb. JhBuildPackageDB.getFiles() and
JhBuildPackageDB.getVersion() are not implemented yet, as I haven't
figured out just how they should work yet.
2005-11-03 Zack Cerza <zcerza@redhat.com>
* dogtail/distro.py: Make AptPackageDb only call apt_pkg.GetCache()
once and save the cache object, to save time in the case where
multiple calls to getVersion() or getDependencies() need to be made.
2005-11-03 Zack Cerza <zcerza@redhat.com>
* dogtail/distro.py: Move *PackageDb class declarations and
instantiations into their Distro classes' __init__() methods. Remove
all __make*PackageDb() functions. Make dogtail.distro.packageDb a
reference to dogtail.distro.distro.packageDb, where the second
'distro' is the Distro subclass instance to preserve the API.
2005-11-02 Zack Cerza <zcerza@redhat.com>
* dogtail.spec: Bump version number.
2005-11-02 Zack Cerza <zcerza@redhat.com>
* scripts/dogtail-run-headless: Save the value of the GConf key
/desktop/gnome/interface/accessibility, then set it to true before
running the test. After the test is run, restore the old value.
Closes: #320548.
2005-11-02 Zack Cerza <zcerza@redhat.com>
* scripts/dogtail-run-headless: Preserve the return code of the script
being exectued. Closes: #320535.
2005-11-01 David Malcolm <dmalcolm@redhat.com>
* dogtail/apps/wrappers/evolution.py: added setBogusGConfAccountData()
function as a way of bypassing the first-time wizard
2005-11-01 Zack Cerza <zcerza@redhat.com>
* dogtail/config.py: Make config.ensureSensitivity False by default.
* dogtail/tree.py: Make Action.do() spit out a warning if the Node
instance is not sensitive and config.ensureSensitivity is False.
2005-11-01 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Implement a proper NotSensitiveError exception.
Make Action.do() raise it instead of a string literal when the
action's Node instance is not sensitive, and config.ensureSensitivity
is True.
2005-11-01 Zack Cerza <zcerza@redhat.com>
* dogtail/logging.py: Change format of TimeStamp.fileStamp() to
filename_YYYYMMDD-hhmmss or just filename_YYYYMMDD, controlled by the
new optional argument 'long'. Fix docstrings of TimeStamp.fileStamp()
and TimeStamp.entryStamp().
* dogtail/utils.py: Rewrite most of screenshot(), and add assertions
that config.scratchDir exists before the screenshot is taken, and that
the screenshot file exists before the function returns. Generate
screenshot filenames using logging.TimeStamp.entryStamp() by default.
A call like "screenshot(file='foo') will name the file
'foo_YYYYMMDD-hhmmss.png', but the timestamping can be disabled with a
call like "screenshot(file='foo', timeStamp=False)", naming the file
just 'foo.png'. Additionally, the file argument may specify an
extension, e.g. 'foo.png' or 'foo.jpg'. Make screenshot() return the
full path to the screenshot taken. Clarify screenshot()'s docstring.
2005-10-31 Zack Cerza <zcerza@redhat.com>
* dogtail/i18n.py: Add URL to bug filed at bugzilla.redhat.com to the
note about popt making gettext.dgettext() bail.
2005-10-31 Zack Cerza <zcerza@redhat.com>
* dogtail/distro.py: Add an Ubuntu subclass of Debian, since Ubuntu in
some cases does things wildly different. For a good example, see
dogtail/i18n.py.
* dogtail/i18n.py: Make automatic translation work on Ubuntu with a
special-case: If a script needing automatic translation is running on
Ubuntu, look for translations in the language-pack-gnome-$LANGUAGE
package before the actual package under test. Note that this makes
automatic translation significantly slower. Also, remove the
'dogtail' prefix from references to dogtail.config and dogtail.distro.
2005-10-31 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Only be verbose about setting a Node.text attribute
if config.debugSearching is turned on.
2005-10-31 Zack Cerza <zcerza@redhat.com>
* examples/gedit-test-utf8-procedural-api.py: Add automatic
translation support (it's a one-liner!). Don't set $LANG from inside
the script. Add a line for config.debugTranslation, but comment both
debug lines out.
2005-10-28 Zack Cerza <zcerza@redhat.com>
* dogtail/distro.py: Implement proper Exceptions PackageNotFoundError
and DistributionNotSupportedError.
2005-10-28 Zack Cerza <zcerza@redhat.com>
* dogtail/distro.py: Implement getFiles() and getDependencies() in
AptPackageDb.
2005-10-28 David Malcolm <dmalcolm@redhat.com>
* dogtail/i18n.py: New file, providing i18n facilities.
* dogtail/config.py: Add debugTranslation boolean
* examples/i18n-test.py: New example, demonstrating the i18n hooks
* dogtail/tree.py: Add a getUserVisibleStrings() method to Node
* dogtail/predicate.py: Rewrite all string matching within predicates to
use the dogtail.i18n.TranslatableString class, and rewriting as
necessary.
* dogtail/apps/wrappers/evolution.py: Use the evolution-connector
package's translations by default.
* examples/evolution-test-switching-components.py: Use the evolution
package's translations
2005-10-28 David Malcolm <dmalcolm@redhat.com>
* dogtail/distro.py: Use correct exceptions for unimplemented functions.
Add getFiles and getDependencies methods to PackageDb; implement them
for RpmPackageDb. Fix the PATCH_MESSAGE to give the mailing list
address.
2005-10-27 Zack Cerza <zcerza@redhat.com>
* dogtail/config.py: Rewrite. Rename the Config class to _Config, and
provide a singleton instance named config. It is no longer necessary
to instantiate a _Config instance in any script, whereas previously it
was necessary to do so if any values needed to be changed. Also rename
logdir to logDir, scratch to scratchDir, and data to dataDir. When the
*Dir values are changed, the new directory is created instantly if it
does not exist. NOTE: this is an API change. Updating any scripts
should be as simple as replacing 'Config' with 'config', 'logdir' with
'logDir', 'scratch' with 'scratchDir', 'data' with 'dataDir' and
removing any instantiations of the old Config class. Also, the old way
of loading configuration values from a file is no longer supported.
The current preferred method is to create a Python file that contains
something like: "from dogtail.config import config; config.logDir =
'../logs/'; config.debugSearching = True" and then import that file
from whatever scripts need it.
* dogtail/logging.py, dogtail/tc.py, dogtail/tree.py,
examples/firefox-test-browsing-local-html-file.py,
examples/gcalctool-test-fibonacci.py,
examples/gedit-test-utf8-procedural-api.py,
examples/gnome-panel-test-starting-every-app.py,
examples/google-search.py,
examples/nautilus-test-icon-view-collage.py, examples/data/sample.cfg:
Update to new config API.
* dogtail/procedural.py: Update to new config API. Also, change "def
run(application, arguments = None, appName = None):" to "def
run(application, arguments = '', appName = ''):".
* dogtail/utils.py: Update to new config API. Also, make run()'s appName
argument default to "''" instead of "None", just like
dogtail.procedural.run(). Also, make run() use doDelay() instead of
sleep() to get logging for free via the config.config.debugSearching
option.
2005-10-24 Zack Cerza <zcerza@redhat.com>
* dogtail/utils.py: Don't break if a filename is passed to
screenshot().
2005-10-24 Zack Cerza <zcerza@redhat.com>
* dogtail/__init__.py, dogtail/apps/__init__.py,
dogtail/apps/wrappers/__init__.py, setup.py: Post-release version
bump.
2005-10-24 Zack Cerza <zcerza@redhat.com>
Released 0.4.3.
2005-10-24 Zack Cerza <zcerza@redhat.com>
* NEWS: Created with major changes since 0.4.2.
* dogtail/__init__.py, dogtail/apps/__init__.py,
dogtail/apps/wrappers/__init__.py, setup.py: Bump version numbers.
* dogtail.spec, debian/changelog: Add changelog entries for 0.4.3.
2005-10-24 Zack Cerza <zcerza@redhat.com>
* icons/dogtail-head-48.png, icons/dogtail-head.svg,
icons/dogtail-tail-48.png, icons/dogtail-tail.svg: Add icons.
* MANIFEST.in, setup.py: Add new icons to distribution.
* dogtail/logging.py: Make IconLogger use the dogtail-tail icon.
* sniff/sniff: Use the dogtail-head icon for the application. Use the
theme's desktop icon for the root node in the TreeView. If the then
has an icon for any application displayed in the TreeView, use it.
* sniff/sniff.desktop: Use the dogtail-head icon in the menu.
* dogtail/trayicon.py: Fix typo.
2005-10-24 Zack Cerza <zcerza@redhat.com>
* dogtail/procedural.py: Implement the FocusError exception properly.
2005-10-21 Zack Cerza <zcerza@redhat.com>
* dogtail/trayicon.py: Instead of totally bailing out if Python is
older than 2.4, just make TrayIcon useless, as is currently the case
if TrayIcon._runZenity() fails. What should really happen is for
TrayIcon to actually work under older Python versions, I think.
2005-10-20 Zack Cerza <zcerza@redhat.com>
* dogtail/apps/wrappers/epiphany.py: Use the package name
'epiphany-browser' on Debian-based distributions. Thanks to Andrew
Beresford for the patch.
2005-10-19 Zack Cerza <zcerza@redhat.com>
* dogtail.spec, setup.py, debian/changelog, debian/copyright: Correct
website URL.
2005-10-19 Zack Cerza <zcerza@redhat.com>
* sniff/icons: Create directory.
* sniff/*.xpm, sniff/icons/*.xpm: Move icons.
* MANIFEST.in, setup.py, sniff/sniff: Update the icon locations.
2005-10-19 Zack Cerza <zcerza@redhat.com>
* MANIFEST.in: Add sniff/*.xpm.
2005-10-19 Zack Cerza <zcerza@redhat.com>
* dogtail/procedural.py: Add table() and tableCell() to Action and
FocusWidget. Allow run() to use utils.run()'s optional 'appName'
argument, for cases where the application's name is different from the
binary's name.
2005-10-17 David Malcolm <dmalcolm@redhat.com>
* dogtail/apps/wrappers/yelp.py: new file, wrapper for Yelp.
2005-10-17 David Malcolm <dmalcolm@redhat.com>
* dogtail/apps/wrappers/predicate.py: add IsATabNamed class
* dogtail/tree.py: add Node.tab() method
* dogtail/apps/wrappers/evolution.py: add Evolution.createMeeting()
method; add AppointmentWindow and MeetingWindow subclasses
2005-10-14 David Malcolm <dmalcolm@redhat.com>
* dogtail/apps/wrappers/evolution.py: Refactor createAccount, add
functions to run the first-time wizard (sharing code with account
creation). Add a blowAwayEvolution function
* examples/evolution-test-first-time-wizard.py: New example, testing
the above. Blows away your evolution configuration, so use with
caution...
2005-10-14 David Malcolm <dmalcolm@redhat.com>
* dogtail/apps/wrappers/evolution.py: Fix wrapper so that it does not
require a window, in preparation for wrapping the first-time assistant.
2005-10-13 Zack Cerza <zcerza@redhat.com>
* dogtail/trayicon.py: Added from jhbuild's jhbuild/utils/.
* dogtail/logging.py: Add IconLogger class, a stripped-down version of
jhbuild's TerminalBuildScript in jhbuild/frontends/terminal.py. Modify
the DebugLogger class to additionally write messages to the
IconLogger's tooltip. If zenity is not installed or not working
properly, the DebugLogger should work exactly as before.
2005-10-13 David Malcolm <dmalcolm@redhat.com>
* examples/no-help-at-all.py: script which generates parodies of bad
end-user documentation by simply converting reading the UI back in
DocBook form.
2005-10-12 David Malcolm <dmalcolm@redhat.com>
* dogtail/apps/wrappers/gedit.py: Initial version, taken from Paolo
Borelli's home page.
2005-10-11 David Malcolm <dmalcolm@redhat.com>
* dogtail/tree.py: Replaced a stray reference to "Search" with
"Predicate"
2005-10-11 Zack Cerza <zcerza@redhat.com>
* dogtail/procedural.py: rename open() to openItem() to avoid
namespace collision.
* scripts/dogtail-run-headless: Ignore errors when restoring
~/.xinitrc. If there was no previous ~/.xinitrc, make sure the
temporary one isn't left behind. Increase hardcoded sleep delay.
2005-10-11 Zack Cerza <zcerza@redhat.com>
* MANIFEST.in: Add scripts/ to tarball distribution.
* setup.py: Install scripts/* .
* setup.cfg: Add xorg-x11-Xvfb to requires for RPMs.
* Makefile: Make 'deb' target run 'fakeroot debian/rules clean' before
building a package.
* debian/control: Add xvfb to Recommends for debs.
2005-10-11 Zack Cerza <zcerza@redhat.com>
* scripts/dogtail-run-headless: Correct typo.
2005-10-11 Zack Cerza <zcerza@redhat.com>
* scripts/dogtail-run-headless: Restore the original ~/.xinitrc after
the X server terminates.
2005-10-11 Zack Cerza <zcerza@redhat.com>
* dogtail/procedural.py: Add focus.desktop (just a copy of tree.root).
Later, I'll probably want to replace it with a FocusDesktop instance,
but for now it's really just to make FocusApplication not break as
horribly when there are no applications running.
* scripts/: Created to hold scripts to be installed into /usr/bin/.
* scripts/dogtail-detect-session: Add a script to detect if an
accessibility-enabled session is currently running. Right now it
obviously only looks for a GNOME session, but KDE support can be added
when available.
* scripts/dogtail-run-headless: Add a script to run a given dogtail
script in a headless setup. Currently launches a minimalistic GNOME
"session" under Xvfb, calls dogtail-detect-session, and if a session
is detected, executes the dogtail script. Once the script terminates,
so does the X server - Boom! Closes: #318537
2005-10-11 Zack Cerza <zcerza@redhat.com>
* dogtail/procedural.py: Add Focus.icon(). Add open() for opening
icons on nautilus' desktop.
2005-10-10 David Malcolm <dmalcolm@redhat.com>
* sniff/sniff: Move initial expansion from main to resetModel, so that
we get the sane one-deep expansion on a Refresh, as well as when sniff
starts.
2005-10-10 Zack Cerza <zcerza@redhat.com>
* examples/filechooser-stress-test.py: Port to procedural API.
2005-10-10 David Malcolm <dmalcolm@redhat.com>
* examples/filechooser-stress-test.py: New file: repeatedly open and
close the filechooser, for testing perfomance/profiling
2005-10-09 David Malcolm <dmalcolm@redhat.com>
* examples/gcalctool-test-fibonacci.py: New file: another test
example. Drives gcalctool to calculate the Fibonacci series.
* dogtail/apps/wrappers/gcalctool.py: New file: wrapper to help when
writing gcalctool tests
2005-10-09 Zack Cerza <zcerza@redhat.com>
* setup.py: Include sniff/*.xpm in the distribution.
* sniff/sniff: modify loadIcon() to first search the current
directory, then /usr/share/dogtail/icons. If distributions need to put
them elsewhere, we can certainly accommodate them.
2005-10-09 Zack Cerza <zcerza@redhat.com>
* dogtail/tree.py: Revert API change - rename Action.doThisAction() to
Action.do(). Add documentation in Node.__getattr__(), the only place
it is used, to make it clear what is happening.
2005-10-09 Zack Cerza <zcerza@redhat.com>
* sniff/sniff.glade: Give the TreeView default focus.
Really remove the Edit menu.
2005-10-09 Zack Cerza <zcerza@redhat.com>
* sniff/sniff: Add Dave as an author.
Correct the website URL and remove the License button in the About box.
Remove 'Role name and 'Description' fields from the TreeView.
Change the packing on the TreeView to disable expanding.
Stop importing pdb without using it.
* sniff/sniff.glade: Change the 'Snoop' menu item name to 'Sniff' -
sniff used to be called snoop.
Add keyboard shortcuts to all menu items.
Remove Edit menu.
2005-10-09 David Malcolm <dmalcolm@redhat.com>
* dogtail/tree.py: added role attribute to Node (forgot to commit this
earlier)
2005-10-09 David Malcolm <dmalcolm@redhat.com>
* sniff/button.xpm, sniff/checkbutton.xpm, sniff/checkmenuitem.xpm,
sniff/colorselection.xpm, sniff/combo.xpm, sniff/dialog.xpm,
sniff/image.xpm, sniff/label.xpm, sniff/menubar.xpm,
sniff/menuitem.xpm, sniff/notebook.xpm, sniff/scrolledwindow.xpm,
sniff/spinbutton.xpm, sniff/statusbar.xpm, sniff/table.xpm,
sniff/text.xpm, sniff/toolbar.xpm, sniff/tree.xpm, sniff/treeitem.xpm,
sniff/unknown.xpm, sniff/viewport.xpm, sniff/vscrollbar.xpm,
sniff/vseparator.xpm, sniff/window.xpm: Add icons, copied from at-poke
* sniff/sniff: add constants to represent the tree model columns; use
icons for nodes, based on code in at-poke. Requires up-to-date pyspi
(for the role attribute)
2005-10-08 David Malcolm <dmalcolm@redhat.com>
* examples/recorder.py: Fix the imports so this works again.
2005-10-08 David Malcolm <dmalcolm@redhat.com>
* examples/evolution-test-switching-components.py: New example which
repeatedly cycles through Evolution's components.
2005-10-08 Zack Cerza <zcerza@redhat.com>
* sniff/sniff: Expand the root node of the TreeView on startup.
2005-10-08 Zack Cerza <zcerza@redhat.com>
* dogtail.spec: Added, from Jeremy Katz.
* MANIFEST.in: Add dogtail.spec.
* Makefile: Rework 'rpm' target to call the 'tarball' target first,
then build the rpm using dogtail.spec, using sudo if necessary. Also,
make the 'tarball' target call the 'clean' target.
2005-10-08 Zack Cerza <zcerza@redhat.com>
* examples/google-search.py: Fix call to findChildren(). Fix reference
to predicate.GenericPredicate.
2005-10-08 Zack Cerza <zcerza@redhat.com>
* examples/firefox-test-browsing-local-html-file.py,
examples/gnome-panel-test-starting-every-app.py,
examples/google-search.py,
examples/nautilus-test-icon-view-collage.py:
s/dogtail\.Config/dogtail.config.Config/
2005-10-17 Zack Cerza <zcerza@redhat.com>
* dogtail/distro.py: Add patch from Tim Gerla, adding Conary
support. Closes: #318224
2005-10-07 Zack Cerza <zcerza@redhat.com>
* dogtail/distro.py: Add patch from Brent Smith, adding Gentoo
support. Closes: #318225
2005-10-07 Zack Cerza <zcerza@redhat.com>
* ChangeLog: Add history since import, tweak formatting. Also add
commit times (maybe we don't actually want them though, I'm not sure I
care).
2005-10-07 David Malcolm <dmalcolm@redhat.com>
* examples/gedit-test-utf8-tree-api.py: Fix the example against
changes to the API.
2005-10-07 David Malcolm <dmalcolm@redhat.com>
* dogtail/tree.py: Provide a better warning for when import wnck
fails (it's a warning, not an error). Make Root.application() return
an Application instance, rather than a mere Node.
* ChangeLog: Created.
2005-10-07 Zack Cerza <zcerza@redhat.com>
* dogtail/distro.py: Minor indentation fix.
2005-10-06 Zack Cerza <zcerza@redhat.com>
Released 0.4.2.
2005-10-06 Zack Cerza <zcerza@redhat.com>
* setup.py, debian/changelog, dogtail/__init__.py,
dogtail/apps/__init__.py, dogtail/apps/wrappers/__init__.py:
Bump version numbers.
2005-10-06 Zack Cerza <zcerza@redhat.com>
* MANIFEST.in: add MANIFEST.in. (Why do I have to do this again?)
* setup.py: Add more examples and example data to distribution.
* Makefile: Add 'tarball' target. Fix 'deb' target.
2005-10-06 Zack Cerza <zcerza@redhat.com>
Released 0.4.1.
2005-10-06 Zack Cerza <zcerza@redhat.com>
* setup.py, debian/changelog, dogtail/__init__.py,
dogtail/apps/__init__.py, dogtail/apps/wrappers/__init__.py:
Bump version numbers.
* MANIFEST.in: Add missing files.
2005-10-06 Zack Cerza <zcerza@redhat.com>
Released 0.4.0.
2005-10-06 Zack Cerza <zcerza@redhat.com>
* setup.py, debian/changelog, dogtail/__init__.py,
dogtail/apps/__init__.py, dogtail/apps/wrappers/__init__.py: Minor
corrections to version numbers.
2005-10-06 Zack Cerza <zcerza@redhat.com>
* dogtail/utils.py: Make screenshot() log the filename of the
screenshot via the debug logger.
2005-10-06 Zack Cerza <zcerza@redhat.com>
* dogtail/logging.py: Add TimeStamp.zeroPad() to pad integers with
zeroes to a specified width. Make TimeStamp.{file,entry}Stamp use the
new zeroPad() function.
2005-10-05 Zack Cerza <zcerza@redhat.com>
* MAINTAINERS: Created.
2005-10-05 Zack Cerza <zcerza@redhat.com>
* COPYING, HACKING, INSTALL, MANIFEST.in, Makefile, setup.cfg,
setup.py, debian/changelog, debian/compat, debian/control,
debian/copyright, debian/python-dogtail.install, debian/rules,
dogtail/__init__.py, dogtail/config.py, dogtail/distro.py,
dogtail/dump.py, dogtail/path.py, dogtail/predicate.py,
dogtail/procedural.py, dogtail/rawinput.py, dogtail/tree.py,
dogtail/utils.py, dogtail/version.py, dogtail/logging.py,
dogtail/tc.py, dogtail/apps/__init__.py,
dogtail/apps/categories.py, dogtail/apps/wrappers/__init__.py,
dogtail/apps/wrappers/epiphany.py,
dogtail/apps/wrappers/evolution.py,
dogtail/apps/wrappers/gnomepanel.py,
dogtail/apps/wrappers/kicker.py,
dogtail/apps/wrappers/konqueror.py,
dogtail/apps/wrappers/mozilla.py,
dogtail/apps/wrappers/nautilus.py, examples/COPYING,
examples/abiword-test.py, examples/crack.py,
examples/evolution-test-composing-html.py,
examples/evolution-test-configuring-exchange.py,
examples/evolution-test-configuring-imap-smtp.py,
examples/evolution-test-sending-email.py,
examples/evolution-test-survives-email-CAN-2005-0806.py,
examples/firefox-test-browsing-local-html-file.py,
examples/gedit-test-utf8-procedural-api.py,
examples/gedit-test-utf8-tree-api.py,
examples/gnome-panel-test-starting-every-app.py,
examples/google-search.py,
examples/nautilus-test-icon-view-collage.py,
examples/recorder.py, examples/rhythmbox-test.py,
examples/test-events.py, examples/data/UTF-8-demo.txt,
examples/data/sample.cfg, sniff/sniff, sniff/sniff.desktop,
sniff/sniff.glade, examples/data/CAN-2005-0806.mbox,
examples/data/g-star.png, examples/data/g-star1.png,
examples/data/GNOME-Street.png, examples/data/GNOME-Street1.png:
Initial Import
|