diff --git a/SparkleShare/Mac/SparkleSetup.cs b/SparkleShare/Mac/SparkleSetup.cs index d37f6a22..161c1531 100755 --- a/SparkleShare/Mac/SparkleSetup.cs +++ b/SparkleShare/Mac/SparkleSetup.cs @@ -253,7 +253,7 @@ namespace SparkleShare { TableView.AddColumn (IconColumn); TableView.AddColumn (DescriptionColumn); - DataSource = new SparkleDataSource (Controller.Plugins); + DataSource = new SparkleDataSource (BackingScaleFactor, Controller.Plugins); TableView.DataSource = DataSource; TableView.ReloadData (); @@ -725,13 +725,16 @@ namespace SparkleShare { public List Items; public NSAttributedString [] Cells, SelectedCells; + int backingScaleFactor; - public SparkleDataSource (List plugins) + public SparkleDataSource (float backingScaleFactor, List plugins) { Items = new List (); Cells = new NSAttributedString [plugins.Count]; SelectedCells = new NSAttributedString [plugins.Count]; + this.backingScaleFactor = (int)backingScaleFactor; + int i = 0; foreach (SparklePlugin plugin in plugins) { Items.Add (plugin); @@ -815,7 +818,22 @@ namespace SparkleShare { } } else { - return new NSImage ((Items [row_index] as SparklePlugin).ImagePath) { + var plugin = (SparklePlugin)Items [row_index]; + var path = plugin.ImagePath; + + if (backingScaleFactor >= 2) { + var hi_path = String.Format ("{0}@{1}x{2}", + Path.Combine (Path.GetDirectoryName (path), Path.GetFileNameWithoutExtension (path)), + backingScaleFactor, + Path.GetExtension (path) + ); + + if (File.Exists (hi_path)) { + path = hi_path; + } + } + + return new NSImage (path) { Size = new SizeF (24, 24) }; }