mac setup: prevent annoying window flash by only creating the server selection list once

This commit is contained in:
Hylke Bons 2012-12-06 11:04:14 +00:00
parent bec9be1cf7
commit 990d1c3231

View file

@ -219,43 +219,54 @@ namespace SparkleShare {
NSFontTraitMask.Condensed, 0, 11), NSFontTraitMask.Condensed, 0, 11),
}; };
TableView = new NSTableView () { if (TableView == null) {
Frame = new RectangleF (0, 0, 0, 0), TableView = new NSTableView () {
RowHeight = 34, Frame = new RectangleF (0, 0, 0, 0),
IntercellSpacing = new SizeF (8, 12), RowHeight = 34,
HeaderView = null, IntercellSpacing = new SizeF (8, 12),
Delegate = new SparkleTableViewDelegate () HeaderView = null,
}; Delegate = new SparkleTableViewDelegate ()
};
ScrollView = new NSScrollView () { ScrollView = new NSScrollView () {
Frame = new RectangleF (190, Frame.Height - 280, 408, 185), Frame = new RectangleF (190, Frame.Height - 280, 408, 185),
DocumentView = TableView, DocumentView = TableView,
HasVerticalScroller = true, HasVerticalScroller = true,
BorderType = NSBorderType.BezelBorder BorderType = NSBorderType.BezelBorder
}; };
IconColumn = new NSTableColumn () { IconColumn = new NSTableColumn () {
Width = 36, Width = 36,
HeaderToolTip = "Icon", HeaderToolTip = "Icon",
DataCell = new NSImageCell () { ImageAlignment = NSImageAlignment.Right } DataCell = new NSImageCell () { ImageAlignment = NSImageAlignment.Right }
}; };
DescriptionColumn = new NSTableColumn () { DescriptionColumn = new NSTableColumn () {
Width = 350, Width = 350,
HeaderToolTip = "Description", HeaderToolTip = "Description",
Editable = false Editable = false
}; };
DescriptionColumn.DataCell.Font = NSFontManager.SharedFontManager.FontWithFamily ("Lucida Grande", DescriptionColumn.DataCell.Font = NSFontManager.SharedFontManager.FontWithFamily ("Lucida Grande",
NSFontTraitMask.Condensed, 0, 11); NSFontTraitMask.Condensed, 0, 11);
TableView.AddColumn (IconColumn); TableView.AddColumn (IconColumn);
TableView.AddColumn (DescriptionColumn); TableView.AddColumn (DescriptionColumn);
DataSource = new SparkleDataSource (Controller.Plugins); DataSource = new SparkleDataSource (Controller.Plugins);
TableView.DataSource = DataSource; TableView.DataSource = DataSource;
TableView.ReloadData (); TableView.ReloadData ();
TableView.SelectRow (Controller.SelectedPluginIndex, false);
TableView.ScrollRowToVisible (Controller.SelectedPluginIndex);
(TableView.Delegate as SparkleTableViewDelegate).SelectionChanged += delegate {
Controller.SelectedPluginChanged (TableView.SelectedRow);
Controller.CheckAddPage (AddressTextField.StringValue, PathTextField.StringValue, TableView.SelectedRow);
};
}
HistoryCheckButton = new NSButton () { HistoryCheckButton = new NSButton () {
Frame = new RectangleF (190, Frame.Height - 400, 300, 18), Frame = new RectangleF (190, Frame.Height - 400, 300, 18),
@ -291,8 +302,6 @@ namespace SparkleShare {
}); });
}; };
TableView.SelectRow (Controller.SelectedPluginIndex, false);
TableView.ScrollRowToVisible (Controller.SelectedPluginIndex);
(AddressTextField.Delegate as SparkleTextFieldDelegate).StringValueChanged += delegate { (AddressTextField.Delegate as SparkleTextFieldDelegate).StringValueChanged += delegate {
Controller.CheckAddPage (AddressTextField.StringValue, PathTextField.StringValue, TableView.SelectedRow); Controller.CheckAddPage (AddressTextField.StringValue, PathTextField.StringValue, TableView.SelectedRow);
@ -302,10 +311,6 @@ namespace SparkleShare {
Controller.CheckAddPage (AddressTextField.StringValue, PathTextField.StringValue, TableView.SelectedRow); Controller.CheckAddPage (AddressTextField.StringValue, PathTextField.StringValue, TableView.SelectedRow);
}; };
(TableView.Delegate as SparkleTableViewDelegate).SelectionChanged += delegate {
Controller.SelectedPluginChanged (TableView.SelectedRow);
Controller.CheckAddPage (AddressTextField.StringValue, PathTextField.StringValue, TableView.SelectedRow);
};
HistoryCheckButton.Activated += delegate { HistoryCheckButton.Activated += delegate {
Controller.HistoryItemChanged (HistoryCheckButton.State == NSCellStateValue.On); Controller.HistoryItemChanged (HistoryCheckButton.State == NSCellStateValue.On);
@ -323,7 +328,6 @@ namespace SparkleShare {
}); });
}; };
ContentView.AddSubview (ScrollView); ContentView.AddSubview (ScrollView);
ContentView.AddSubview (AddressLabel); ContentView.AddSubview (AddressLabel);
ContentView.AddSubview (AddressTextField); ContentView.AddSubview (AddressTextField);