Пример #1
0
 public LocalModFolderContextMenu(ModLibraryViewModel library) : base(library)
 {
     if (library == null)
     {
         throw new ArgumentNullException(nameof(library));
     }
 }
 public RepositoryOptionsContextMenu(ModLibraryViewModel library) : base(library)
 {
     if (library == null)
     {
         throw new ArgumentNullException(nameof(library));
     }
 }
Пример #3
0
 public CollectionContextMenu(ModLibraryViewModel library) : base(library)
 {
     this.WhenAnyValue(x => x.CurrentItem.IsInstalled)
     .Subscribe(isInstalled => Items.Where(
                    x => x.AsyncAction == UninstallModsFromDisk || x.AsyncAction == DiagnoseCollection ||
                    x.AsyncAction == LaunchModSet)
                .ForEach(y => y.IsEnabled = isInstalled));
 }
 public LocalModsLibraryItemViewModel(ModLibraryViewModel library, LocalModsContainer model,
                                      LibraryGroupViewModel @group = null,
                                      bool isFeatured = false, bool doGrouping = false)
     : base(library, model, SixIconFont.withSIX_icon_Folder, @group, isFeatured, doGrouping)
 {
     Items.ChangeTrackingEnabled = true;
     Description = model.Path;
 }
Пример #5
0
 protected ModMenuBase(ModLibraryViewModel library)
 {
     if (library == null)
     {
         throw new ArgumentNullException(nameof(library));
     }
     Library = library;
 }
 public CustomRepoCollectionLibraryItemViewModel(ModLibraryViewModel library, CustomCollection model,
                                                 LibraryGroupViewModel @group = null,
                                                 bool isFeatured = false, bool doGrouping = false)
     : base(library, model, SixIconFont.withSIX_icon_Synq, @group, isFeatured, doGrouping)
 {
     Model      = model;
     IsEditable = false;
     SubHeader  = model.CustomRepo.Name;
 }
        public ModSearchContentLibraryItemViewModel(ModLibraryViewModel library) : base(library) {
            _collectionContextMenu = new CollectionContextMenu(library);
            _modContextMenu = new ModContextMenu(library);
            _multiContentContextMenu = new MultiContentContextMenu(library);
            _modBarMenu = new ModBarMenu(library);
            _collectionBarMenu = new CollectionBarMenu(library);

            SetupMenus(HandleSingleMenu, HandleMultiMenu);
        }
Пример #8
0
        public ModSearchContentLibraryItemViewModel(ModLibraryViewModel library) : base(library)
        {
            _collectionContextMenu   = new CollectionContextMenu(library);
            _modContextMenu          = new ModContextMenu(library);
            _multiContentContextMenu = new MultiContentContextMenu(library);
            _modBarMenu        = new ModBarMenu(library);
            _collectionBarMenu = new CollectionBarMenu(library);

            SetupMenus(HandleSingleMenu, HandleMultiMenu);
        }
Пример #9
0
        public CollectionBarMenu(ModLibraryViewModel library)
        {
            _library = library;

            this.WhenAnyValue(x => x.CurrentItem.IsInstalled)
            .Select(x => new { CurrentItem, x })
            .Subscribe(info => {
                Items.Where(x => x.AsyncAction == Uninstall)
                .ForEach(x => x.IsEnabled = info.x);
            });
        }
        public SubscribedCollectionLibraryItemViewModel(ModLibraryViewModel library, SubscribedCollection model,
                                                        LibraryGroupViewModel @group = null,
                                                        bool isFeatured = false, bool doGrouping = false)
            : base(library, model, SixIconFont.withSIX_icon_Synq, @group, isFeatured, doGrouping)
        {
            MainIcon   = SixIconFont.withSIX_icon_Folder;
            _library   = library;
            Model      = model;
            IsEditable = false;

            SubHeader = model.Author;
        }
Пример #11
0
        public ModBarMenu(ModLibraryViewModel library) : base(library)
        {
            this.WhenAnyValue(x => x.CurrentItem.Controller.IsInstalled, x => x.CurrentItem.State)
            .Select(x => new { CurrentItem, x })
            .Subscribe(info => {
                Items.Where(x => x.AsyncAction == Uninstall)     //  || x.AsyncAction == LaunchMod
                .ForEach(x => x.IsVisible = info.x.Item1);

                var installAction       = GetAsyncItem(Diagnose);
                installAction.Name      = ModController.ConvertState(info.x.Item2);
                installAction.IsVisible = installAction.Name != null && !(info.CurrentItem is LocalMod);
            });
        }
        public NetworkLibraryItemViewModel(ModLibraryViewModel library, BuiltInContentContainer model,
                                           LibraryGroupViewModel @group = null,
                                           bool doGrouping = false)
            : base(library, model, SixIconFont.withSIX_icon_Nav_Server, @group, true, doGrouping)
        {
            Items.ChangeTrackingEnabled = true;
            var currentSort = Sort.SelectedSort;

            if (currentSort == null || currentSort.Value != "UpdatedVersion")
            {
                Sort.SetSort("UpdatedVersion");
            }
        }
        public BrowseContentLibraryItemViewModel(ModLibraryViewModel library, T model, string icon = null,
                                                 LibraryGroupViewModel @group = null, bool isFeatured = false,
                                                 bool doGrouping = false)
            : base(library, model, icon, @group, isFeatured, doGrouping)
        {
            _collectionContextMenu   = new CollectionContextMenu(library);
            _modContextMenu          = new ModContextMenu(library);
            _multiContentContextMenu = new MultiContentContextMenu(library);
            _modBarMenu        = new ModBarMenu(library);
            _collectionBarMenu = new CollectionBarMenu(library);

            SetupMenus(HandleSingleMenu, HandleMultiMenu);
        }
 public CustomCollectionContextMenu(ModLibraryViewModel library)
 {
     Library           = library;
     _uploadCollection = library.UploadCollection;
     this.WhenAnyValue(x => x.CurrentItem.Model.IsInstalled, x => x.CurrentItem.Model.Items.Count,
                       (installed, count) => installed && count > 0)
     .Subscribe(isInstalled =>
                Items.Where(
                    x =>
                    x.Action == UninstallModsFromDisk || x.AsyncAction == Diagnose ||
                    x.AsyncAction == LaunchCollection)
                .ForEach(x => x.IsEnabled = isInstalled));
 }
        public CustomCollectionLibraryItemViewModel(ModLibraryViewModel library, CustomCollection model,
                                                    LibraryGroupViewModel localGroup,
                                                    bool isFeatured = false,
                                                    bool doGrouping = false)
            : base(library, model, SixIconFont.withSIX_icon_Hexagon, localGroup, isFeatured, doGrouping)
        {
            _library   = library;
            Model      = model;
            IsEditable = !isFeatured;

            /*
             * // TODO: How it really should be:
             * // Or use a variation of Can....
             * // this would be most appropriate for a ViewModel. For a DataModel it reduces the re-usability. But these things should be custom built for each View/Control anyway?
             * _isPublishShown;
             * _isDeleteShown;
             * _isUploadShown;
             * _isDeleteShown;
             * _isMoreShown;
             * _isChangeScopeShown;
             * _isSubscribersShown;
             * _showSyncedTime;
             */

            _isPublishable = model.WhenAnyValue(x => x.PublishedId)
                             .Select(x => !x.HasValue)
                             .ToProperty(this, x => x.IsPublishable);

            _isHosted = model.WhenAnyValue(x => x.PublishedId, x => x.HasValue)
                        .ToProperty(this, x => x.IsHosted);

            _isListed = model.WhenAnyValue(x => x.PublishingScope, x => x == CollectionScope.Public)
                        .ToProperty(this, x => x.IsListed);

            model.WhenAnyValue(x => x.PublishingScope)
            .Subscribe(x => IsPrivate = x == CollectionScope.Private);

            this.WhenAnyValue(x => x.IsHosted)
            .Subscribe(x => Icon = x ? SixIconFont.withSIX_icon_Synq : SixIconFont.withSIX_icon_Hexagon);

            _isPublished = model.WhenAnyValue(x => x.PublishedId, id => id.HasValue)
                           .ToProperty(this, x => x.IsPublished);

            _isSharable = this.WhenAnyValue(x => x.IsPublished, x => x.IsPrivate,
                                            (isPublished, isPrivate) => isPublished && !isPrivate)
                          .ToProperty(this, x => x.IsShareable);

            _canLockCollection = this.WhenAnyValue(x => x.IsSubscribedCollection)
                                 .Select(x => !x)
                                 .ToProperty(this, x => x.CanNotLockCollection);
        }
Пример #16
0
        public ModLibrarySetup(ModLibraryViewModel library, Game game, IContentManager contentList,
                               UserSettings settings, IEventAggregator eventBus)
        {
            if (!(game.SupportsMods()))
            {
                throw new ArgumentException("game.SupportsMods()");
            }
            _library     = library;
            _game        = game;
            _modding     = game.Modding();
            _settings    = settings;
            _eventBus    = eventBus;
            _contentList = contentList;
            OnlineGroup  = new ModLibraryGroupViewModel(library, "Repositories", "add repo",
                                                        SixIconFont.withSIX_icon_Cloud)
            {
                IsRoot = true, SortOrder = 13
            };
            LocalGroup = new ModLibraryGroupViewModel(library, "Local", "add folder",
                                                      SixIconFont.withSIX_icon_System)
            {
                IsRoot = true, SortOrder = 12
            };
            CollectionsGroup = new ModLibraryGroupViewModel(library, "Collections", "new collection",
                                                            SixIconFont.withSIX_icon_Folder)
            {
                IsRoot = true, SortOrder = 11
            };
            BuiltInGroup = new ModLibraryGroupViewModel(library, null)
            {
                IsRoot = true, SortOrder = 0
            };

            Groups = new LibraryGroupViewModel <ModLibraryViewModel>[] {
                null, BuiltInGroup, CollectionsGroup, LocalGroup,
                OnlineGroup
            };
            _aIa = new BrowseContentLibraryItemViewModel <BuiltInContentContainer>(library,
                                                                                   new BuiltInContentContainer("AllInArma"), @group: LocalGroup, isFeatured: true);

            SetupItems();
            Items.AddRange(Groups.Where(x => x != null && x != BuiltInGroup));
            CreateItemsView();
            _eventBus.Subscribe(this);
        }
        public CollectionLibraryItemViewModel(ModLibraryViewModel library, Collection model, string icon,
                                              LibraryGroupViewModel @group = null, bool isFeatured = false,
                                              bool doGrouping = false)
            : base(library, model, icon, @group, isFeatured, doGrouping)
        {
            MainIcon        = SixIconFont.withSIX_icon_Folder;
            ShowItemsInTree = true;
            Items.KeepCollectionInSync2(Children);


            _collectionContextMenu   = new CollectionContextMenu(library);
            _modContextMenu          = new ModContextMenu(library);
            _multiContentContextMenu = new MultiContentContextMenu(library);
            _modBarMenu        = new ModBarMenu(library);
            _collectionBarMenu = new CollectionBarMenu(library);

            SetupMenus(HandleSingleMenu, HandleMultiMenu);
        }
Пример #18
0
 public BuiltInContextMenu(ModLibraryViewModel library) : base(library)
 {
 }
 protected ModLibraryItemMenuBase(ModLibraryViewModel library) : base(library)
 {
 }
 public MultiContentContextMenu(ModLibraryViewModel library)
 {
     Library = library;
 }
Пример #21
0
 public MultiLibraryItemContextMenu(ModLibraryViewModel modLibraryViewModel)
 {
     _modLibraryViewModel = modLibraryViewModel;
 }