Skip to content

Commit 3a7851b

Browse files
committed
Set initial list view widths for task and target summary views
Default widths are too small.
1 parent 76dc28e commit 3a7851b

File tree

2 files changed

+64
-1
lines changed

2 files changed

+64
-1
lines changed

src/MonoDevelop.ProjectSystem.Tools/MonoDevelop.ProjectSystem.Tools.Gui/BinaryLogTargetSummaryView.cs

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
// THE SOFTWARE.
2626

2727
using System.Collections.ObjectModel;
28+
using AppKit;
2829
using Microsoft.VisualStudio.ProjectSystem.Tools.BinaryLogEditor.ViewModel;
2930
using MonoDevelop.Core;
3031
using 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
}

src/MonoDevelop.ProjectSystem.Tools/MonoDevelop.ProjectSystem.Tools.Gui/BinaryLogTaskSummaryView.cs

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
// THE SOFTWARE.
2626

2727
using System.Collections.ObjectModel;
28+
using AppKit;
2829
using Microsoft.VisualStudio.ProjectSystem.Tools.BinaryLogEditor.ViewModel;
2930
using MonoDevelop.Core;
3031
using Xwt;
@@ -45,6 +46,12 @@ class BinaryLogTaskSummaryView : 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 BinaryLogTaskSummaryView (ObservableCollection<TaskListViewModel> taskListViewItems)
4956
{
5057
this.taskListViewItems = taskListViewItems;
@@ -70,6 +77,8 @@ void AddListViewColumns ()
7077
AddTextColumn (callsDataField, GettextCatalog.GetString ("Calls"), callsSortField);
7178
AddTextColumn (timeDataField, GettextCatalog.GetString ("Time"), timeSortField);
7279
AddTextColumn (percentageDataField, GettextCatalog.GetString ("Percentage"), percentageSortField);
80+
81+
SetInitialListViewColumnWidths ();
7382
}
7483

7584
void AddListViewItems ()
@@ -86,5 +95,28 @@ void AddListViewItems ()
8695
SetPercentageValue (row, viewModel.Percentage, percentageDataField, percentageSortField);
8796
}
8897
}
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.BuildLogTaskSummaryView.ListView";
117+
tableView.AutosaveName = tableView.Identifier;
118+
tableView.AutosaveTableColumns = true;
119+
}
120+
}
89121
}
90122
}

0 commit comments

Comments
 (0)