2525// THE SOFTWARE.
2626
2727using System . Collections . ObjectModel ;
28+ using AppKit ;
2829using Microsoft . VisualStudio . ProjectSystem . Tools . BinaryLogEditor . ViewModel ;
2930using MonoDevelop . Core ;
3031using Xwt ;
@@ -45,6 +46,12 @@ class BinaryLogTargetSummaryView : BinaryLogSummaryViewBase
4546 DataField < string > percentageDataField = new DataField < string > ( ) ;
4647 DataField < double > percentageSortField = new DataField < double > ( ) ;
4748
49+ const int TargetNameColumnIndex = 0 ;
50+ const int SourceFileNameColumnIndex = 1 ;
51+ const int CallsColumnIndex = 2 ;
52+ const int TimeColumnIndex = 3 ;
53+ const int PercentageColumnIndex = 4 ;
54+
4855 public BinaryLogTargetSummaryView ( ObservableCollection < TargetListViewModel > targetListViewItems )
4956 {
5057 this . targetListViewItems = targetListViewItems ;
@@ -60,7 +67,6 @@ public BinaryLogTargetSummaryView (ObservableCollection<TargetListViewModel> tar
6067 percentageSortField ) ;
6168
6269 AddListViewColumns ( ) ;
63-
6470 AddListViewItems ( ) ;
6571 }
6672
@@ -71,6 +77,8 @@ void AddListViewColumns ()
7177 AddTextColumn ( callsDataField , GettextCatalog . GetString ( "Calls" ) , callsSortField ) ;
7278 AddTextColumn ( timeDataField , GettextCatalog . GetString ( "Time" ) , timeSortField ) ;
7379 AddTextColumn ( percentageDataField , GettextCatalog . GetString ( "Percentage" ) , percentageSortField ) ;
80+
81+ SetInitialListViewColumnWidths ( ) ;
7482 }
7583
7684 void AddListViewItems ( )
@@ -87,5 +95,28 @@ void AddListViewItems ()
8795 SetPercentageValue ( row , viewModel . Percentage , percentageDataField , percentageSortField ) ;
8896 }
8997 }
98+
99+ void SetInitialListViewColumnWidths ( )
100+ {
101+ var view = listView . Surface . NativeWidget as NSView ;
102+ if ( view is NSScrollView scroll ) {
103+ view = scroll . DocumentView as NSView ;
104+ }
105+
106+ var tableView = view as NSTableView ;
107+ if ( tableView != null ) {
108+ var columns = tableView . TableColumns ( ) ;
109+
110+ columns [ TargetNameColumnIndex ] . Width = 250 ;
111+ columns [ SourceFileNameColumnIndex ] . Width = 250 ;
112+ columns [ CallsColumnIndex ] . Width = 50 ;
113+ columns [ TimeColumnIndex ] . Width = 100 ;
114+ columns [ PercentageColumnIndex ] . Width = 80 ;
115+
116+ tableView . Identifier = "MonoDevelop.BuildLogging.BuildLogTargetSummaryView.ListView" ;
117+ tableView . AutosaveName = tableView . Identifier ;
118+ tableView . AutosaveTableColumns = true ;
119+ }
120+ }
90121 }
91122}
0 commit comments