DragList.ItemDescriptor CreateListItem(PackageInfo info) { string caption; if (_view.ViewState == PmViewStates.ReleasesAndPackages) { var releaseInfo = info.InstallInfo.ReleaseInfo; if (!string.IsNullOrEmpty(releaseInfo.Name)) { caption = "{0} ({1}{2})".Fmt( info.Name, ImguiUtil.WrapWithColor(releaseInfo.Name, _pmSettings.View.Theme.DraggableItemAlreadyAddedColor), string.IsNullOrEmpty(releaseInfo.Version) ? "" : ImguiUtil.WrapWithColor(" v" + releaseInfo.Version, _pmSettings.View.Theme.VersionColor)); } else { caption = info.Name; } } else { // this isn't always the case since it can be rendered when interpolating //Assert.IsEqual(_model.ViewState, PmViewStates.PackagesAndProject); if (_model.IsPackageAddedToProject(info.Name)) { caption = ImguiUtil.WrapWithColor( info.Name, _pmSettings.View.Theme.DraggableItemAlreadyAddedColor); } else { caption = info.Name; } } return new DragList.ItemDescriptor() { Caption = caption, Model = info }; }
object GetPackageSortField(PackageInfo info) { switch ((PackagesSortMethod)_view.GetList(DragListTypes.Package).SortMethod) { case PackagesSortMethod.Name: { return info.Name; } case PackagesSortMethod.InstallDate: { return info.InstallInfo.InstallDateTicks; } case PackagesSortMethod.ReleasePublishDate: { return info.InstallInfo.ReleaseInfo.AssetStoreInfo.PublishDateTicks; } } Assert.Throw(); return null; }
IEnumerator RenamePackageAsync(PackageInfo info) { var newPackageName = _view.PromptForInput("Enter package name:", info.Name); yield return newPackageName; if (newPackageName.Current == null) { // User Cancelled yield break; } if (newPackageName.Current == info.Name) { yield break; } var fullPath = PrjPathVars.Expand(info.FullPath); Assert.That(Directory.Exists(fullPath), "Expected path to exist: {0}", fullPath); var dirInfo = new DirectoryInfo(fullPath); Assert.That(dirInfo.Name == info.Name); var newPath = Path.Combine(dirInfo.Parent.FullName, newPackageName.Current); Assert.That(!Directory.Exists(newPath), "Package with name '{0}' already exists. Rename aborted.", newPackageName.Current); dirInfo.MoveTo(newPath); yield return _packageHandler.RefreshPackagesAsync(); _view.ClearSelected(); _view.GetList(DragListTypes.Package).Values .Where(x => ((PackageInfo)x.Model).Name == newPackageName.Current).Single().IsSelected = true; }
IEnumerator OpenMoreInfoPopup(PackageInfo info) { bool isDone = false; var skin = _pmSettings.ReleaseMoreInfoDialog; Vector2 scrollPos = Vector2.zero; var popupId = _view.AddPopup(delegate(Rect fullRect) { var popupRect = ImguiUtil.CenterRectInRect(fullRect, skin.PopupSize); _view.DrawPopupCommon(fullRect, popupRect); var contentRect = ImguiUtil.CreateContentRectWithPadding( popupRect, skin.PanelPadding); var scrollViewRect = new Rect( contentRect.xMin, contentRect.yMin, contentRect.width, contentRect.height - skin.MarginBottom - skin.OkButtonHeight - skin.OkButtonTopPadding); GUILayout.BeginArea(scrollViewRect); { scrollPos = GUILayout.BeginScrollView(scrollPos, false, true, GUI.skin.horizontalScrollbar, GUI.skin.verticalScrollbar, skin.ScrollViewStyle, GUILayout.ExpandHeight(true)); { GUILayout.Space(skin.ListPaddingTop); GUILayout.Label("Package Info", skin.HeadingStyle); GUILayout.Space(skin.HeadingBottomPadding); PmViewHandlerCommon.DrawMoreInfoRow(skin, "Name", info.Name); GUILayout.Space(skin.RowSpacing); PmViewHandlerCommon.DrawMoreInfoRow(skin, "Path", info.FullPath); GUILayout.Space(skin.RowSpacing); PmViewHandlerCommon.DrawMoreInfoRow(skin, "Creation Date", !string.IsNullOrEmpty(info.InstallInfo.InstallDate) ? info.InstallInfo.InstallDate : PmViewHandlerCommon.NotAvailableLabel); GUILayout.Space(skin.ListPaddingTop); GUILayout.Space(skin.ListPaddingTop); GUILayout.Label("Release Info", skin.HeadingStyle); GUILayout.Space(skin.HeadingBottomPadding); if (string.IsNullOrEmpty(info.InstallInfo.ReleaseInfo.Id)) { GUI.color = skin.ValueStyle.normal.textColor; GUILayout.Label("No release is associated with this package", skin.HeadingStyle); GUI.color = Color.white; } else { PmViewHandlerCommon.AddReleaseInfoMoreInfoRows(info.InstallInfo.ReleaseInfo, skin); } GUILayout.Space(skin.RowSpacing); } GUI.EndScrollView(); } GUILayout.EndArea(); var okButtonRect = new Rect( contentRect.xMin + 0.5f * contentRect.width - 0.5f * skin.OkButtonWidth, contentRect.yMax - skin.MarginBottom - skin.OkButtonHeight, skin.OkButtonWidth, skin.OkButtonHeight); if (GUI.Button(okButtonRect, "Ok") || Event.current.keyCode == KeyCode.Escape) { isDone = true; } }); while (!isDone) { yield return null; } _view.RemovePopup(popupId); }
bool HasPackageYaml(PackageInfo info) { var fullPath = PrjPathVars.Expand(info.FullPath); var configPath = Path.Combine(fullPath, ProjenyEditorUtil.PackageConfigFileName); return File.Exists(configPath); }
bool HasPackageYaml(PackageInfo info) { var configPath = Path.Combine(info.Path, ProjenyEditorUtil.PackageConfigFileName); return File.Exists(configPath); }