--- old/src/gui/data/packagemanager.glade Fri Jul 3 12:06:49 2009 +++ new/src/gui/data/packagemanager.glade Fri Jul 3 12:06:48 2009 @@ -1,13 +1,13 @@ - - - + + + 750 500 GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Package Manager - GTK_WIN_POS_CENTER + center 800 615 PM_app_48x.png @@ -86,7 +86,7 @@ Cu_t True - + @@ -98,7 +98,7 @@ _Copy True - + @@ -110,7 +110,7 @@ _Paste True - + @@ -138,7 +138,7 @@ Select _All True - + @@ -159,7 +159,7 @@ _Deselect All True - + @@ -174,7 +174,7 @@ _Search True - + @@ -210,7 +210,7 @@ Start _Page True - + @@ -286,7 +286,7 @@ _Contents True - + @@ -311,6 +311,7 @@ False + 0 @@ -328,6 +329,7 @@ + False True @@ -343,6 +345,7 @@ + False True @@ -358,6 +361,7 @@ + False True @@ -373,6 +377,7 @@ + False True @@ -381,6 +386,9 @@ True False + + False + @@ -387,15 +395,18 @@ True False + + False + True - GTK_RESIZE_QUEUE + queue True - GTK_RESIZE_QUEUE + queue 1 11 11 @@ -414,6 +425,7 @@ 6 + 0 @@ -421,11 +433,10 @@ True True True - GTK_RELIEF_NONE + none False 0 0 - 0 @@ -437,12 +448,15 @@ 0 gtk-missing-image + + 0 + True arrow.png - 1 + 1 False @@ -467,7 +481,7 @@ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Type text to search name and description of the package. - Search + Search @@ -483,11 +497,10 @@ True True True - GTK_RELIEF_NONE + none False 0 0 - 0 @@ -507,6 +520,9 @@ + + False + @@ -538,6 +554,7 @@ False + 0 @@ -546,8 +563,8 @@ True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC + automatic + automatic True @@ -555,7 +572,7 @@ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK False - Categories + Categories @@ -577,6 +594,7 @@ False False + 0 @@ -618,6 +636,9 @@ True filtercombobox + + 0 + @@ -633,6 +654,7 @@ False + 0 @@ -648,9 +670,12 @@ <i>_Repository:</i> True True - GTK_JUSTIFY_RIGHT + right repositorycombobox + + 0 + @@ -667,7 +692,7 @@ False 12 - GTK_PACK_END + end 1 @@ -674,6 +699,7 @@ False + 0 @@ -692,8 +718,8 @@ True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC + automatic + automatic 270 @@ -703,7 +729,7 @@ True False - Packages + Packages @@ -736,6 +762,7 @@ False + 0 @@ -753,6 +780,9 @@ <b>PACKAGE NAME</b> True + + 0 + @@ -777,6 +807,7 @@ False False + 0 @@ -790,8 +821,8 @@ True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC + automatic + automatic True @@ -810,8 +841,8 @@ True - tab False + tab @@ -819,8 +850,8 @@ True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC + automatic + automatic True @@ -841,9 +872,9 @@ Files - tab 1 False + tab @@ -851,8 +882,8 @@ True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC + automatic + automatic True @@ -873,9 +904,9 @@ Dependencies - tab 2 False + tab @@ -882,8 +913,8 @@ True True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC + automatic + automatic True @@ -901,9 +932,9 @@ License - tab 3 False + tab @@ -936,7 +967,7 @@ True 1 0 - GTK_SHADOW_NONE + none @@ -949,6 +980,9 @@ + + 0 + @@ -987,7 +1021,7 @@ True 0 0 - GTK_SHADOW_OUT + out 0 0 @@ -996,13 +1030,12 @@ True True Search Repositories Error - GTK_RELIEF_NONE + none False 0 0 - 0 - Remote search error + Remote search error @@ -1011,7 +1044,7 @@ 0 0 gtk-dialog-warning - 1 + 1 @@ -1020,6 +1053,7 @@ False False + 0 @@ -1038,7 +1072,7 @@ True 0 0 - GTK_SHADOW_OUT + out True @@ -1050,10 +1084,13 @@ True Legend: - GTK_JUSTIFY_RIGHT + right + + 0 + @@ -1090,7 +1127,7 @@ True Updates - PANGO_ELLIPSIZE_END + end 10 @@ -1124,6 +1161,9 @@ True 2 + + 0 + @@ -1148,9 +1188,9 @@ Install/Upgrade Check False True - GTK_WIN_POS_CENTER_ON_PARENT + center-on-parent PM_app_48x.png - GDK_WINDOW_TYPE_HINT_DIALOG + dialog False mainwindow False @@ -1177,10 +1217,11 @@ True gtk-missing-image - 2 + 2 False + 0 @@ -1201,6 +1242,7 @@ False + 0 @@ -1211,10 +1253,11 @@ True gtk-missing-image - 2 + 2 False + 0 @@ -1246,10 +1289,11 @@ True gtk-missing-image - 2 + 2 False + 0 @@ -1277,6 +1321,7 @@ False 5 + 0 @@ -1292,6 +1337,7 @@ False 5 + 0 @@ -1309,6 +1355,9 @@ + + 0 + @@ -1336,8 +1385,8 @@ True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC + automatic + automatic 250 @@ -1374,23 +1423,28 @@ True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - GTK_BUTTONBOX_END + end + gtk-cancel True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - gtk-cancel True - 0 + + False + False + 0 + False - GTK_PACK_END + end + 0 @@ -1401,9 +1455,9 @@ 5 About Glade False - GTK_WIN_POS_CENTER_ON_PARENT + center-on-parent PM_app_48x.png - GDK_WINDOW_TYPE_HINT_DIALOG + dialog Package Manager 2009.06 Copyright 2009 Sun Microsystems, Inc. @@ -1769,11 +1823,12 @@ True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - GTK_BUTTONBOX_END + end False - GTK_PACK_END + end + 0 @@ -1786,9 +1841,9 @@ Processing False True - GTK_WIN_POS_CENTER_ON_PARENT + center-on-parent PM_app_48x.png - GDK_WINDOW_TYPE_HINT_DIALOG + dialog False mainwindow False @@ -1813,6 +1868,7 @@ False + 0 @@ -1834,23 +1890,28 @@ True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - GTK_BUTTONBOX_END + end + gtk-cancel True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - gtk-cancel True - 0 + + False + False + 0 + False - GTK_PACK_END + end + 0 @@ -1863,9 +1924,9 @@ 5 Manage Boot Environments True - GTK_WIN_POS_CENTER_ON_PARENT + center-on-parent PM_app_48x.png - GDK_WINDOW_TYPE_HINT_DIALOG + dialog mainwindow False @@ -1889,6 +1950,7 @@ False + 0 @@ -1895,8 +1957,8 @@ True True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC + automatic + automatic True @@ -1903,7 +1965,7 @@ True False - Bes + Bes @@ -1923,6 +1985,7 @@ False + 0 @@ -1956,43 +2019,54 @@ True - GTK_BUTTONBOX_END + end + gtk-help + -11 True True True - gtk-help True - -11 + + False + False + 0 + + gtk-cancel + -2 True True True - gtk-cancel + False True - -2 + False + False 1 + gtk-ok + -3 True True True - gtk-ok + False True - -3 + False + False 2 @@ -1999,7 +2073,8 @@ False - GTK_PACK_END + end + 0 @@ -2011,9 +2086,9 @@ 5 Manage Repositories True - GTK_WIN_POS_CENTER_ON_PARENT + center-on-parent PM_app_48x.png - GDK_WINDOW_TYPE_HINT_DIALOG + dialog mainwindow False @@ -2052,6 +2127,9 @@ + + 0 + @@ -2089,6 +2167,7 @@ False 3 + 0 @@ -2097,7 +2176,7 @@ True True - repositoryname + repositoryname @@ -2130,6 +2209,7 @@ False 3 + 0 @@ -2138,7 +2218,7 @@ True True - repositoryurl + repositoryurl @@ -2153,14 +2233,18 @@ True + _Add True True True - _Add True - 0 + + False + False + 0 + @@ -2181,6 +2265,7 @@ False False + 0 @@ -2197,6 +2282,7 @@ False + 0 @@ -2252,14 +2338,14 @@ True True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC + automatic + automatic True True - Repositories + Repositories @@ -2268,6 +2354,9 @@ + + 0 + @@ -2276,29 +2365,34 @@ True 5 - GTK_BUTTONBOX_START + start + _Modify... True True True - _Modify... True - 0 + + False + False + 0 + + _Remove True True True - _Remove True - 0 + False + False 1 @@ -2305,7 +2399,7 @@ False - GTK_PACK_END + end 1 @@ -2324,29 +2418,35 @@ True - GTK_BUTTONBOX_EDGE + edge + gtk-help True True True - gtk-help True - 0 + + False + False + 0 + + gtk-close + -1 True True True - gtk-close True - -1 + False + False 1 @@ -2353,7 +2453,8 @@ False - GTK_PACK_END + end + 0 @@ -2366,9 +2467,9 @@ 5 Boot Environment Confirmation True - GTK_WIN_POS_CENTER_ON_PARENT + center-on-parent PM_app_48x.png - GDK_WINDOW_TYPE_HINT_DIALOG + dialog False beadmin False @@ -2397,11 +2498,12 @@ True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK gtk-dialog-warning - 5 + 5 False False + 0 @@ -2420,6 +2522,7 @@ False + 0 @@ -2427,8 +2530,8 @@ True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC + automatic + automatic True @@ -2452,31 +2555,36 @@ True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - GTK_BUTTONBOX_END + end + gtk-cancel True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - gtk-cancel True - 0 + + False + False + 0 + + gtk-ok True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - gtk-ok True - 0 + False + False 1 @@ -2483,7 +2591,8 @@ False - GTK_PACK_END + end + 0 @@ -2494,9 +2603,9 @@ Modify Repository False True - GTK_WIN_POS_CENTER_ON_PARENT + center-on-parent PM_app_48x.png - GDK_WINDOW_TYPE_HINT_DIALOG + dialog repository False @@ -2523,6 +2632,9 @@ <b>Modify Repository URL</b> True + + 0 + @@ -2547,6 +2659,7 @@ False + 0 @@ -2555,7 +2668,7 @@ True True - repositorymodifyname + repositorymodifyname @@ -2565,6 +2678,9 @@ + + 0 + @@ -2582,6 +2698,7 @@ False + 0 @@ -2590,7 +2707,7 @@ True True - repositorymodifyurl + repositorymodifyurl @@ -2620,6 +2737,7 @@ False + 0 @@ -2639,6 +2757,9 @@ + + 0 + @@ -2664,6 +2785,7 @@ False + 0 @@ -2674,14 +2796,13 @@ 3 + _Instructions True True True True - _Instructions - GTK_RELIEF_NONE + none True - 0 http://glade.gnome.org @@ -2723,6 +2844,7 @@ False False + 0 @@ -2745,6 +2867,7 @@ False + 0 @@ -2765,6 +2888,7 @@ False + 0 @@ -2776,10 +2900,13 @@ True True - modkeyentry + modkeyentry + + 0 + @@ -2786,7 +2913,7 @@ True True - modcertentry + modcertentry @@ -2806,27 +2933,26 @@ 5 + _Browse True True True - _Browse True - 0 False False + 0 + Br_owse True True True - Br_owse True - 0 @@ -2886,6 +3012,7 @@ False False + 0 @@ -2915,7 +3042,7 @@ True True - addmirror_entry + addmirror_entry @@ -2924,13 +3051,16 @@ + + 0 + True True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC + automatic + automatic True @@ -2955,27 +3085,26 @@ True + _Add True True True - _Add True - 0 False False + 0 + _Remove True True True - _Remove True - 0 @@ -3023,29 +3152,34 @@ True - GTK_BUTTONBOX_END + end + gtk-cancel True True True - gtk-cancel True - 0 + + False + False + 0 + + gtk-ok True True True - gtk-ok True - 0 + False + False 1 @@ -3052,7 +3186,7 @@ False - GTK_PACK_END + end 1 @@ -3064,9 +3198,9 @@ Update All False True - GTK_WIN_POS_CENTER_ON_PARENT + center-on-parent PM_app_48x.png - GDK_WINDOW_TYPE_HINT_DIALOG + dialog False mainwindow False @@ -3095,6 +3229,7 @@ False 5 + 0 @@ -3113,6 +3248,7 @@ False + 0 @@ -3120,7 +3256,7 @@ True True - BEName + BEName @@ -3147,6 +3283,7 @@ False + 0 @@ -3177,38 +3314,45 @@ True - GTK_BUTTONBOX_END + end + gtk-help + -11 True True True - gtk-help True - -11 + + False + False + 0 + + gtk-cancel + -2 True True True - gtk-cancel True - -2 + False + False 1 + -3 True True True - -3 @@ -3220,6 +3364,9 @@ + + 0 + @@ -3257,6 +3404,8 @@ + False + False 2 @@ -3263,7 +3412,8 @@ False - GTK_PACK_END + end + 0 @@ -3276,9 +3426,9 @@ 5 Remove Confirmation True - GTK_WIN_POS_CENTER_ON_PARENT + center-on-parent PM_app_48x.png - GDK_WINDOW_TYPE_HINT_DIALOG + dialog False mainwindow False @@ -3311,10 +3461,11 @@ True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK gtk-dialog-warning - 5 + 5 False + 0 @@ -3341,6 +3492,7 @@ False 5 + 0 @@ -3351,8 +3503,8 @@ True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC + automatic + automatic True @@ -3364,6 +3516,9 @@ + + 0 + @@ -3383,18 +3538,22 @@ True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - GTK_BUTTONBOX_END + end + gtk-cancel True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - gtk-cancel True - 0 + + False + False + 0 + @@ -3402,7 +3561,6 @@ True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 @@ -3414,6 +3572,9 @@ + + 0 + @@ -3451,6 +3612,8 @@ + False + False 1 @@ -3457,7 +3620,8 @@ False - GTK_PACK_END + end + 0 @@ -3467,9 +3631,9 @@ 5 SSL Key and Certificate True - GTK_WIN_POS_CENTER_ON_PARENT + center-on-parent PM_app_48x.png - GDK_WINDOW_TYPE_HINT_DIALOG + dialog repository False @@ -3492,6 +3656,9 @@ Enter the location of these files in the spaces provided, or use the Browse buttons to provide their location. + + 0 + @@ -3523,6 +3690,7 @@ False 3 + 0 @@ -3531,7 +3699,7 @@ True True - keyentry + keyentry @@ -3543,14 +3711,13 @@ + _Browse True True True - _Browse True - 0 - Browse for SSL Key + Browse for SSL Key @@ -3583,6 +3750,7 @@ False 3 + 0 @@ -3591,7 +3759,7 @@ True True - certentry + certentry @@ -3603,14 +3771,13 @@ + B_rowse True True True - B_rowse True - 0 - Browse for SSL Certificate + Browse for SSL Certificate @@ -3635,29 +3802,34 @@ True - GTK_BUTTONBOX_END + end + gtk-cancel True True True - gtk-cancel True - 0 + + False + False + 0 + + gtk-ok True True True - gtk-ok True - 0 + False + False 1 @@ -3664,7 +3836,8 @@ False - GTK_PACK_END + end + 0 @@ -3675,9 +3848,9 @@ Preferences False True - GTK_WIN_POS_CENTER_ON_PARENT + center-on-parent PM_app_48x.png - GDK_WINDOW_TYPE_HINT_DIALOG + dialog repository False @@ -3703,6 +3876,9 @@ <b>Startup</b> True + + 0 + @@ -3718,6 +3894,7 @@ False False + 0 @@ -3729,14 +3906,17 @@ True + _Show Start Page on startup True True - _Show Start Page on startup + False True - 0 True + + 0 + @@ -3744,6 +3924,7 @@ 4 + 0 @@ -3789,29 +3970,34 @@ True - GTK_BUTTONBOX_EDGE + edge + gtk-help True True True - gtk-help True - 0 + + False + False + 0 + + gtk-close True True True - gtk-close True - 0 + False + False 1 @@ -3818,7 +4004,8 @@ False - GTK_PACK_END + end + 0 @@ -3829,11 +4016,11 @@ 370 5 Install/Update - GTK_WIN_POS_CENTER_ON_PARENT - GDK_WINDOW_TYPE_HINT_NORMAL + center-on-parent + normal False - + @@ -3862,7 +4049,7 @@ 4 4 - + True 0 0 @@ -3874,7 +4061,7 @@ 0 0 PM_app_48x.png - 10 + 10 @@ -3883,6 +4070,7 @@ False False + 0 @@ -3909,6 +4097,7 @@ False False + 0 @@ -3915,6 +4104,7 @@ False False + 0 @@ -3959,6 +4149,7 @@ False False + 0 @@ -3965,8 +4156,8 @@ True True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC + automatic + automatic True @@ -4015,38 +4206,45 @@ True - GTK_BUTTONBOX_END + end + gtk-help + -11 True True True - gtk-help True - -11 + + False + False + 0 + + gtk-cancel + -2 True True True - gtk-cancel True - -2 + False + False 1 + -3 True True True - -3 @@ -4058,6 +4256,9 @@ + + 0 + @@ -4095,20 +4296,24 @@ + False + False 2 + gtk-close + -4 True True True - gtk-close True - -4 + False + False 3 @@ -4115,7 +4320,8 @@ False - GTK_PACK_END + end + 0 @@ -4124,9 +4330,9 @@ 450 300 - Search Repositories Error + Search Publisher Errors True - GTK_WIN_POS_CENTER_ON_PARENT + center-on-parent mainwindow @@ -4145,10 +4351,11 @@ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 1 gtk-dialog-warning - 5 + 5 False + 0 @@ -4161,7 +4368,7 @@ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 0 - Search failed on the following repositories: + Search errors with the following publishers: True True @@ -4175,6 +4382,7 @@ False 5 + 0 @@ -4181,8 +4389,8 @@ True True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC + automatic + automatic True @@ -4197,10 +4405,10 @@ + Do not notify me about these publishers again. True True - Do not notify me about these repositories again. - 0 + False True @@ -4212,17 +4420,21 @@ True - GTK_BUTTONBOX_END + end + gtk-close True True True - gtk-close True - 0 + + False + False + 0 + @@ -4235,8 +4447,8 @@ 5 - GTK_WIN_POS_CENTER_ON_PARENT - GDK_WINDOW_TYPE_HINT_DIALOG + center-on-parent + dialog mainwindow False @@ -4265,7 +4477,7 @@ True gtk-dialog-info - 6 + 6 @@ -4272,6 +4484,7 @@ False False + 0 @@ -4296,6 +4509,7 @@ False False + 0 @@ -4312,11 +4526,10 @@ True True True - GTK_RELIEF_NONE + none False 0 0 - 0 http://www.opensolaris.org @@ -4348,21 +4561,22 @@ True - GTK_BUTTONBOX_END + end + gtk-close True True True - gtk-close True - 0 + False + False 1 @@ -4369,7 +4583,8 @@ False - GTK_PACK_END + end + 0 --- old/src/packagemanager.py Fri Jul 3 12:06:50 2009 +++ new/src/packagemanager.py Fri Jul 3 12:06:50 2009 @@ -45,8 +45,6 @@ SHOW_INFO_DELAY = 600 # Delay before showing selected pacakge information SHOW_LICENSE_DELAY = 600 # Delay before showing license information SEARCH_STR_FORMAT = "<%s>" -SEARCH_LIMIT = 100 # Maximum number of results shown for - # api search MIN_APP_WIDTH = 750 # Minimum application width MIN_APP_HEIGHT = 500 # Minimum application height INITIAL_APP_WIDTH_PREFERENCES = "/apps/packagemanager/preferences/initial_app_width" @@ -270,6 +268,7 @@ self.last_active_publisher = None self.search_start = 0 self.search_time_sec = 0 + self.current_search_publisher = None self.section_list = None self.filter_list = self.__get_new_filter_liststore() self.application_list = None @@ -762,22 +761,20 @@ % (start_page_url))) self.document.close_stream() - def __parse_api_search_error(self, error): + def __process_api_search_error(self, error): self.current_repos_with_search_errors = [] - if "failed_servers" in error.__dict__ and len(error.failed_servers) > 0: - #TBD we should not have to parse the error output - rem_str = " doesn't speak a known version of search operation" - timeout_str = "urlopen error timed out" - repos = [] - for err in error.failed_servers: - err_str = str(err[1]) - if rem_str in err_str: - repo = err_str.replace(rem_str,"") - self.current_repos_with_search_errors.append(repo) - elif timeout_str in err_str: - repo = err[0].repositories[0].origins[0].uri - self.current_repos_with_search_errors.append(repo) + for pub, err in error.failed_servers: + self.current_repos_with_search_errors.append( + (pub, _("failed to respond"), err)) + for pub in error.invalid_servers: + self.current_repos_with_search_errors.append( + (pub, _("invalid response"), + _("A valid response was not returned."))) + for pub, err in error.unsupported_servers: + self.current_repos_with_search_errors.append( + (pub, _("unsupported search"), err)) + def __on_infosearch_button_clicked(self, widget): self.__handle_api_search_error(True) @@ -785,26 +782,28 @@ if len(self.current_repos_with_search_errors) == 0: self.w_infosearch_frame.hide() return - else: - self.w_infosearch_button.set_size_request(26, 22) - self.w_infosearch_frame.show() - repo_pubs = self.__get_repo_publishers() repo_count = 0 - for url in self.current_repos_with_search_errors: - if show_all or (url not in self.gconf_not_show_repos): + for pub, err_type, err_str in self.current_repos_with_search_errors: + if show_all or (pub not in self.gconf_not_show_repos): repo_count += 1 if repo_count == 0: + self.w_infosearch_frame.hide() return + self.w_infosearch_button.set_size_request(26, 22) + self.w_infosearch_frame.show() infobuffer = self.api_search_error_textview.get_buffer() infobuffer.set_text("") textiter = infobuffer.get_end_iter() - for url in self.current_repos_with_search_errors: - if show_all or (url not in self.gconf_not_show_repos): + for pub, err_type, err_str in self.current_repos_with_search_errors: + + if show_all or (pub not in self.gconf_not_show_repos): infobuffer.insert_with_tags_by_name(textiter, - "%s" % repo_pubs[url], "bold") - infobuffer.insert(textiter, " (%s)\n" % url) + "%(pub)s (%(err_type)s)\n" % {"pub": pub, + "err_type": err_type}, "bold") + infobuffer.insert(textiter, "%s\n" % (err_str)) + self.api_search_checkbox.set_active(False) self.api_search_error_dialog.show() self.api_search_button.grab_focus() @@ -1040,6 +1039,7 @@ column = gtk.TreeViewColumn(_("Name"), name_renderer, text = enumerations.NAME_COLUMN) column.set_resizable(True) + column.set_min_width(150) column.set_sort_column_id(enumerations.NAME_COLUMN) column.set_sort_indicator(True) column.set_cell_data_func(name_renderer, self.cell_data_function, None) @@ -1316,6 +1316,9 @@ if self.w_main_view_notebook.get_current_page() != \ NOTEBOOK_PACKAGE_LIST_PAGE: return + if self.__doing_search(): + return + a11y_enabled = False if self.a11y_application_treeview.get_n_accessible_children() != 0: a11y_enabled = True @@ -1372,10 +1375,11 @@ if desc == '...': fmri = sort_filt_model.get_value(sf_itr, enumerations.FMRI_COLUMN) - pkg_stem = fmri.get_pkg_stem( - include_scheme = True) - pkg_stems_and_itr_to_fetch[pkg_stem] = \ - model.get_string_from_iter(app_itr) + if fmri != None: + pkg_stem = fmri.get_pkg_stem( + include_scheme = True) + pkg_stems_and_itr_to_fetch[pkg_stem] = \ + model.get_string_from_iter(app_itr) if a11y_enabled: self.__set_accessible_status(sort_filt_model, sf_itr) start += 1 @@ -1422,12 +1426,16 @@ pkg_descriptions_for_update, orig_model) def __update_description_from_iter(self, pkg_descriptions_for_update, orig_model): + #If doing a search abandon description updates + if self.__doing_search(): + return + sort_filt_model = \ self.w_application_treeview.get_model() #gtk.TreeModelSort filt_model = sort_filt_model.get_model() #gtk.TreeModelFilter model = filt_model.get_model() #gtk.ListStore - #If model has changed abandon description updates + #If model has changed if orig_model != model: return @@ -1734,38 +1742,52 @@ origin_uri = self.__get_origin_uri(pub.selected_repository) servers.append({"origin": origin_uri}) if debug: - print "pargs:", pargs - print "servers:", servers - + print "Search: pargs %s servers: %s" % (pargs, servers) + + #TBD If we ever search just Installed pkgs should allow for a local search case_sensitive = False + return_actions = True searches.append(self.api_o.remote_search( - [api.Query(" ".join(pargs), case_sensitive, True, None, None)], + [api.Query(" ".join(pargs), case_sensitive, return_actions)], servers=servers)) - result_tuple = {} + if debug: + print "Search Args: %s : cs: %s : retact: %s" % \ + ("".join(pargs), case_sensitive, return_actions) + + last_name = "" + self.current_search_publisher = None try: for query_num, publisher, (v, return_type, tmp) in \ itertools.chain(*searches): - if v == 1 and \ - return_type == api.Query.RETURN_PACKAGES: - repo = None - if publisher is not None \ - and "prefix" in publisher: - repo = publisher["prefix"] - name = fmri.PkgFmri(str(tmp)).get_name() - result_tuple[(name, repo)] = -1 - if len(result_tuple) == SEARCH_LIMIT: - break - else: - # We are not interested in this error + if v < 1 or return_type != api.Query.RETURN_PACKAGES: gobject.idle_add(self.w_progress_dialog.hide) self.__process_after_search_failure() return + + pub = None + if publisher is not None \ + and "prefix" in publisher: + pub = publisher["prefix"] + name = fmri.PkgFmri(str(tmp)).get_name() + if last_name != name: + if debug: + print "Result Name: %s (%s)" % (name, pub) + a_res = name, pub + result.append(a_res) + #Ignore Status when fetching + application_list = \ + self.__get_min_list_from_search(result) + self.current_search_publisher = pub + self.in_setup = True + gobject.idle_add(self.__init_tree_views, + application_list, None, None) + last_name = name self.pylintstub = query_num except api_errors.ProblematicSearchServers, ex: - self.__parse_api_search_error(ex) + self.__process_api_search_error(ex) gobject.idle_add(self.w_progress_dialog.hide) gobject.idle_add(self.__handle_api_search_error) - if len(result_tuple) == 0: + if len(result) == 0: self.__process_after_search_with_zero_results() return except Exception, ex: @@ -1774,10 +1796,7 @@ self.__process_after_search_failure() return if debug: - print "Number of search results:", len(result_tuple) - for name, repo in result_tuple: - a_res = name, repo - result.append(a_res) + print "Number of search results:", len(result) if len(result) == 0: if debug: print "No search results" @@ -1792,15 +1811,17 @@ break time.sleep(1) times -= 1 + + #Now fetch full result set with Status self.in_setup = True - application_list = self.__get_list_from_search(result) + application_list = self.__get_full_list_from_search(result) + gobject.idle_add(self.__init_tree_views, application_list, None, None) + if self.search_start > 0: self.search_time_sec = int(time.time() - self.search_start) + if debug: + print "Search time: %d (sec)" % self.search_time_sec self.search_start = 0 - gobject.idle_add(self.__set_empty_details_panel) - gobject.idle_add(self.__set_main_view_package_list) - gobject.idle_add(self.__init_tree_views, application_list, - None, None) def __process_after_search_with_zero_results(self): if self.search_start > 0: @@ -1812,8 +1833,17 @@ gobject.idle_add(self.__set_main_view_package_list) gobject.idle_add(self.__init_tree_views, application_list, None, None) - def __get_list_from_search(self, search_result): + def __get_min_list_from_search(self, search_result): application_list = self.__get_new_application_liststore() + for name, publisher in search_result: + application_list.append( + [False, None, name, '...', enumerations.NOT_INSTALLED, None, + "pkg://" + publisher + "/" + name, None, True, None, + publisher]) + return application_list + + def __get_full_list_from_search(self, search_result): + application_list = self.__get_new_application_liststore() self.__add_pkgs_to_list_from_search(search_result, application_list) return application_list @@ -2080,14 +2110,16 @@ active = self.api_search_checkbox.get_active() if len(self.current_repos_with_search_errors) > 0: if active: - for url in self.current_repos_with_search_errors: - if url not in self.gconf_not_show_repos: - self.gconf_not_show_repos += url + "," + for pub, err_type, err_str in \ + self.current_repos_with_search_errors: + if pub not in self.gconf_not_show_repos: + self.gconf_not_show_repos += pub + "," else: - for url in self.current_repos_with_search_errors: + for pub, err_type, err_str in \ + self.current_repos_with_search_errors: self.gconf_not_show_repos = \ self.gconf_not_show_repos.replace( - url + ",", "") + pub + ",", "") try: self.client.set_string(API_SEARCH_ERROR_PREFERENCES, self.gconf_not_show_repos) @@ -2428,9 +2460,17 @@ self.saved_filter_combobox_active = self.initial_show_filter application_list, category_list , section_list = \ self.__get_application_categories_lists(publishers) + self.__unset_saved() gobject.idle_add(self.__init_tree_views, application_list, category_list, section_list) + def __unset_saved(self): + self.saved_application_list = None + self.saved_application_list_filter = None + self.saved_application_list_sort = None + self.saved_category_list = None + self.saved_section_list = None + def __get_application_categories_lists(self, publishers=[]): if not self.visible_repository: self.visible_repository = self.__get_active_publisher() @@ -2464,8 +2504,12 @@ if self.application_list and self.category_list and \ not self.visible_repository_uptodate: if self.visible_repository: + dump_list = self.application_list + if self.saved_application_list != None: + dump_list = \ + self.saved_application_list self.__dump_datamodels(self.visible_repository, - self.application_list, self.category_list, + dump_list, self.category_list, self.section_list) self.visible_repository = self.__get_active_publisher() self.visible_repository_uptodate = uptodate @@ -2478,6 +2522,18 @@ def __dump_datamodels(self, publisher, application_list, category_list, section_list): + #Consistency check - only dump models if publisher passed in matches + #publisher in application list + if application_list == None: + return + app_pub = application_list[0][enumerations.AUTHORITY_COLUMN] + if publisher != app_pub: + if debug: + print "ERROR: __dump_data_models(): INCONSISTENT " \ + "pub %s != app_list_pub %s" % \ + (publisher, app_pub) + return + if self.cache_o: if self.img_timestamp == \ self.cache_o.get_index_timestamp(): @@ -3810,48 +3866,61 @@ self.w_main_statusbar.remove(0, self.statusbar_message_id) self.statusbar_message_id = 0 search_text = self.w_searchentry.get_text() - if self.in_search_mode: - if self.is_search_all: - opt_str = _('Searched All for "%s"') % (search_text) - else: - opt_str = \ - _('Searched %(last_active)s ' - 'for "%(search_text)s"') \ - % {"last_active" : self.last_active_publisher, - "search_text" : search_text} - if len(self.application_list) == SEARCH_LIMIT: - fmt_str = _("%(option_str)s: first %(number)d " - "found %(time)s") - else: - fmt_str = _("%(option_str)s: %(number)d found %(time)s") - time_str = "" - if self.search_time_sec > 0: - time_str = _("in %d seconds") % self.search_time_sec - status_str = fmt_str % {"option_str" : opt_str, - "number" : len(self.application_list), "time" : time_str} + + if not self.in_search_mode: + installed = 0 + self.selected = 0 + sel = 0 + if self.application_list == None: + return + visible_repository = self.__get_visible_repository_name() + pkgs = self.selected_pkgs.get(visible_repository) + if pkgs: + self.selected = len(pkgs) + for pkg_row in self.application_list: + if pkg_row[enumerations.STATUS_COLUMN] == \ + enumerations.INSTALLED \ + or pkg_row[enumerations.STATUS_COLUMN] == \ + enumerations.UPDATABLE: + installed = installed + 1 + if pkg_row[enumerations.MARK_COLUMN]: + sel = sel + 1 + listed_str = _('%d listed') % len(self.application_list) + sel_str = _('%d selected') % sel + inst_str = _('%d installed') % installed + status_str = _("%s: %s , %s, %s.") % (visible_repository, + listed_str, inst_str, sel_str) self.w_main_statusbar.push(0, status_str) return - installed = 0 - self.selected = 0 - sel = 0 - if self.application_list == None: - return - visible_repository = self.__get_visible_repository_name() - pkgs = self.selected_pkgs.get(visible_repository) - if pkgs: - self.selected = len(pkgs) - for pkg_row in self.application_list: - if pkg_row[enumerations.STATUS_COLUMN] == enumerations.INSTALLED \ - or pkg_row[enumerations.STATUS_COLUMN] == \ - enumerations.UPDATABLE: - installed = installed + 1 - if pkg_row[enumerations.MARK_COLUMN]: - sel = sel + 1 - listed_str = _('%d listed') % len(self.application_list) - sel_str = _('%d selected') % sel - inst_str = _('%d installed') % installed - status_str = _("%s: %s , %s, %s.") % (visible_repository, listed_str, - inst_str, sel_str) + + # In Search Mode + active = "" + if self.is_search_all: + if self.__doing_search(): + if self.current_search_publisher != None: + active = "(" + self.current_search_publisher + \ + ") " + opt_str = _('Searching... ' + '%(active)sfor "%(search_text)s"') % \ + {"active": active, "search_text": search_text} + else: + opt_str = _('Searched All for "%s"') % (search_text) + else: + search_str = _("Searched") + if self.__doing_search(): + search_str = _("Searching...") + if self.last_active_publisher != None: + active = "(" + self.last_active_publisher + ") " + opt_str = \ + _('%(search)s %(last_active)sfor "%(search_text)s"') \ + % {"search": search_str, "last_active" : active, + "search_text" : search_text} + fmt_str = _("%(option_str)s: %(number)d found %(time)s") + time_str = "" + if self.search_time_sec > 0: + time_str = _("in %d seconds") % self.search_time_sec + status_str = fmt_str % {"option_str" : opt_str, "number" : + len(self.application_list), "time" : time_str} self.w_main_statusbar.push(0, status_str) def update_package_list(self, update_list):