Beispiel #1
0
        private static void OnResorceBrowserContentChanged(object sender, EventArgs e)
        {
            IResourceBrowser resourceBrowser = ICore.Instance.ResourceBrowser;

            resourceBrowser.LinksPaneExpanded = false;
            resourceBrowser.ContentChanged   -= OnResorceBrowserContentChanged;
        }
Beispiel #2
0
        private void OnMirandaOptionsChanged(object sender, EventArgs e)
        {
            if (IniSettings.SyncImmediate)
            {
                CreateMirandaWatcher();
            }
            else
            {
                DisposeMirandaWatcher();
            }

            _convManager.ReverseMode = IniSettings.LatestOnTop;
            if (!_convManager.ConversationPeriod.Equals(IniSettings.ConversationPeriodTimeSpan))
            {
                _convManager.ConversationPeriod = IniSettings.ConversationPeriodTimeSpan;
                Core.ResourceAP.QueueJob(JobPriority.BelowNormal, new MethodInvoker(RebuildConversations));
            }
            else
            {
                IResourceBrowser rBrowser = Core.ResourceBrowser;
                if (rBrowser.SelectedResources.AllResourcesOfType("MirandaConversation"))
                {
                    rBrowser.RedisplaySelectedResource();
                }
            }
        }
Beispiel #3
0
        public MockPluginEnvironment(IResourceStore storage)
        {
            _picoContainer     = new DefaultPicoContainer();
            _mockPicoContainer = new DefaultPicoContainer(_picoContainer);

            Storage = storage;
            if (storage != null)
            {
                _picoContainer.RegisterComponentInstance(storage);
            }
            File.Delete(".\\MockPluginEnvironment.ini");
            _settingStore = new Ini.IniFile(".\\MockPluginEnvironment.ini");

            DynamicMock actionManagerMock = new DynamicMock(typeof(IActionManager));

            actionManagerMock.SetupResult("GetKeyboardShortcut", "", typeof(IAction));
            _actionManager = (IActionManager)actionManagerMock.MockInstance;

            _uiManager       = (IUIManager) new DynamicMock(typeof(IUIManager)).MockInstance;
            _pluginLoader    = (IPluginLoader) new DynamicMock(typeof(IPluginLoader)).MockInstance;
            _resourceBrowser = (IResourceBrowser) new DynamicMock(typeof(IResourceBrowser)).MockInstance;
            _tabManager      = new MockTabManager();
            _resourceAP      = new MockAsyncProcessor();
            _networkAP       = new MockAsyncProcessor();
            _uiAP            = new MockAsyncProcessor();

            DynamicMock resourceIconManagerMock = new DynamicMock(typeof(IResourceIconManager));

            resourceIconManagerMock.SetupResult("IconColorDepth", ColorDepth.Depth8Bit);
            resourceIconManagerMock.SetupResult("GetIconIndex", 0, typeof(IResource));
            _resourceIconManager = (IResourceIconManager)resourceIconManagerMock.MockInstance;

            _notificationManager  = (INotificationManager) new DynamicMock(typeof(INotificationManager)).MockInstance;
            _textIndexManager     = (ITextIndexManager) new DynamicMock(typeof(ITextIndexManager)).MockInstance;
            _messageFormatter     = (IMessageFormatter) new DynamicMock(typeof(IMessageFormatter)).MockInstance;
            _displayColumnManager = (IDisplayColumnManager) new DynamicMock(typeof(IDisplayColumnManager)).MockInstance;

//            DynamicMock filterManagerMock = new DynamicMock( typeof(IFilterRegistry) );
            DynamicMock filterEngineMock = new DynamicMock(typeof(IFilterEngine));

            filterEngineMock.SetupResult("ExecRules", true, typeof(string), typeof(IResource));

            DynamicMock filterManagerMock = new DynamicMock(typeof(IFilterRegistry));

            _filterRegistry = (IFilterRegistry)filterManagerMock.MockInstance;

            _rcManager             = (IRemoteControlManager) new DynamicMock(typeof(IRemoteControlManager)).MockInstance;
            _trayIconManager       = (ITrayIconManager) new DynamicMock(typeof(ITrayIconManager)).MockInstance;
            _formattingRuleManager = (IFormattingRuleManager) new DynamicMock(typeof(IFormattingRuleManager)).MockInstance;
            _expirationRuleManager = (IExpirationRuleManager) new DynamicMock(typeof(IExpirationRuleManager)).MockInstance;
            _filteringFormsManager = (IFilteringFormsManager) new DynamicMock(typeof(IFilteringFormsManager)).MockInstance;
            _searchQueryExtensions = (ISearchQueryExtensions) new DynamicMock(typeof(ISearchQueryExtensions)).MockInstance;
            _filterEngine          = (IFilterEngine) new DynamicMock(typeof(IFilterEngine)).MockInstance;

            theInstance = this;
        }
Beispiel #4
0
        private void ICQOptionsChanged(object sender, EventArgs e)
        {
            bool reverseMode = GetReverseMode();

            if (_conversationManager.ReverseMode != reverseMode)
            {
                _conversationManager.ReverseMode = reverseMode;
                IResourceBrowser rBrowser = Core.ResourceBrowser;
                if (rBrowser != null && rBrowser.SelectedResources != null &&
                    rBrowser.SelectedResources.AllResourcesOfType(_icqConversationResName))
                {
                    rBrowser.RedisplaySelectedResource();
                }
            }
        }
Beispiel #5
0
        private void WeblinkOrFolderChanged(object sender, ResourcePropIndexEventArgs e)
        {
            IResource webLink = e.Resource;

            IPropertyChangeSet set = e.ChangeSet;
            int propLastModified   = Core.ResourceStore.PropTypes["LastModified"].Id;

            if (BookmarkService.DownloadMethod != 2 && webLink == _lastDisplayedWeblink &&
                ((set.IsPropertyChanged(propLastModified) && webLink.HasProp("Source")) ||
                 (set.IsPropertyChanged(Core.Props.LastError) && webLink.HasProp(Core.Props.LastError))))
            {
                // if the displayed web link has changed, redisplay it
                IResourceBrowser browser = Core.ResourceBrowser;
                if ((webLink == _favoritesTreePane.SelectedNode && Core.TabManager.CurrentTabId == "Web") ||
                    (browser.SelectedResources.Count == 1 && webLink == browser.SelectedResources[0]))
                {
                    Core.UserInterfaceAP.QueueJobAt(DateTime.Now.AddSeconds(1), "RedisplaySelectedResource", browser.RedisplaySelectedResource);
                }
            }

            string URL = webLink.GetPropText(_propURL);

            if (URL.Length > 0)
            {
                if (set.IsPropertyChanged(_propLastUpdated) || set.IsPropertyChanged(_propUpdateFreq))
                {
                    BookmarkService.QueueWeblink(webLink, URL, BookmarkService.BookmarkSynchronizationTime(webLink));
                }
                if (set.IsPropertyChanged(_propURL))
                {
                    BookmarkService.ImmediateQueueWeblink(webLink, URL);
                }
            }
            if (set.IsPropertyChanged(Core.PropIds.Name) || set.IsPropertyChanged(_propURL))
            {
                IBookmarkProfile profile = _bookmarkService.GetOwnerProfile(webLink);
                string           error;
                if (profile != null && profile.CanCreate(webLink, out error))
                {
                    profile.Create(webLink);
                }
            }
        }
Beispiel #6
0
        public void Execute(IActionContext context)
        {
            IResourceList selected = context.SelectedResources;
            ArrayList     names    = new ArrayList(selected.Count);

            foreach (IResource res in selected.ValidResources)
            {
                string name = res.GetStringProp(FileProxy._propDirectory);
                if (res.Type != FileProxy._folderResourceType)
                {
                    name = Path.Combine(name, res.GetPropText(Core.Props.Name));
                }
                names.Add(name);
            }
            if (names.Count > 0)
            {
                IResourceBrowser rBrowser        = Core.ResourceBrowser;
                IResourceList    viewedResources = selected.Intersect(rBrowser.SelectedResources);
                IResource        res2Select      = null;
                foreach (IResource res in viewedResources.ValidResources)
                {
                    res2Select = rBrowser.GetResourceBelow(res);
                }
                try
                {
                    FoldersCollection foldersCollection = FoldersCollection.Instance;
                    if (Control.ModifierKeys == Keys.Shift)
                    {
                        if (MessageBox.Show(Core.MainWindow,
                                            "Are you sure you want to delete " + ((names.Count > 1) ?
                                                                                  (names.Count + " selected items?") : ("'" + names[0] + "'?")),
                                            "Confirm Deletion", MessageBoxButtons.YesNo, MessageBoxIcon.Question,
                                            MessageBoxDefaultButton.Button2) == DialogResult.Yes)
                        {
                            foreach (IResource res in selected.ValidResources)
                            {
                                foldersCollection.DeleteResource(res);
                            }
                            foreach (string name in names)
                            {
                                if (File.Exists(name))
                                {
                                    File.Delete(name);
                                }
                                else if (Directory.Exists(name))
                                {
                                    Directory.Delete(name, true);
                                }
                            }
                        }
                    }
                    else
                    {
                        Shell32.MoveFile2RecycleBin((string[])names.ToArray(typeof(string)));
                        FileProxy._filesProcessor.QueueJob(
                            new ResourceListDelegate(foldersCollection.EnumerateParents),
                            selected);
                    }
                }
                catch (Exception e)
                {
                    Utils.DisplayException(e, "Error");
                    return;
                }
                if (res2Select != null)
                {
                    rBrowser.SelectResource(res2Select);
                }
            }
        }
Beispiel #7
0
        private static void ResourceNodeSelected(IResource res, bool displayAnotherFolder)
        {
            if (Core.State != CoreState.ShuttingDown && res.Type == _folderResourceType)
            {
                IResourceBrowser rBrowser = Core.ResourceBrowser;

                // for deleted folder display empty resource list
                if (res.IsDeleted)
                {
                    rBrowser.DisplayResourceList(
                        null, Core.ResourceStore.EmptyResourceList, res.DisplayName, null);
                    return;
                }

                if (!displayAnotherFolder && res != rBrowser.OwnerResource)
                {
                    return;
                }

                IResourceList selected = null;
                if (res == rBrowser.OwnerResource)
                {
                    selected = rBrowser.SelectedResources;
                }

                FoldersCollection foldersCollection = FoldersCollection.Instance;
                string            path           = res.GetPropText(_propDirectory);
                IResourceList     folderContents = res.GetLinksToLive(null, _propParentFolder);

                /**
                 * look through folders, create new ones and delete obsolete
                 */
                DirectoryInfo[] dirs = IOTools.GetDirectories(path);
                if (dirs != null)
                {
                    foreach (DirectoryInfo dir in dirs)
                    {
                        foldersCollection.FindOrCreateDirectory(dir.FullName);
                    }

                    HashSet fileNames  = new HashSet();
                    bool    viewHidden = Core.SettingStore.ReadBool("FilePlugin", "ViewHidden", false);
                    foreach (IResource file in folderContents.ValidResources)
                    {
                        if (file.Type == _folderResourceType)
                        {
                            if (!Directory.Exists(file.GetPropText(_propDirectory)))
                            {
                                foldersCollection.DeleteResource(file);
                            }
                        }
                        else
                        {
                            string fullname = foldersCollection.GetFullName(file);
                            if (!File.Exists(fullname))
                            {
                                foldersCollection.DeleteResource(file);
                            }
                            else
                            {
                                FileInfo fi = IOTools.GetFileInfo(fullname);
                                if (viewHidden || (fi.Attributes & FileAttributes.Hidden) == 0)
                                {
                                    fileNames.Add(file.GetPropText(Core.Props.Name));
                                }
                            }
                        }
                    }

                    /**
                     * collect not indexed files
                     */
                    FileInfo[] files = IOTools.GetFiles(path);
                    if (files != null)
                    {
                        foreach (FileInfo fi in files)
                        {
                            if ((viewHidden || (fi.Attributes & FileAttributes.Hidden) == 0) &&
                                !fileNames.Contains(fi.Name))
                            {
                                IResource file = foldersCollection.FindOrCreateFile(fi, true);
                                if (file != null)
                                {
                                    folderContents = folderContents.Union(file.ToResourceList(), true);
                                }
                            }
                        }
                    }
                }

                /**
                 * for folders excluded from indexing display deleted resources as well
                 */
                if (FoldersCollection.Instance.IsPathDeferred(path) ||
                    FoldersCollection.Instance.IsPathMonitored(path))
                {
                    folderContents = folderContents.Minus(
                        Core.ResourceStore.FindResourcesWithPropLive(null, _propDeletedFile));
                }
                ColumnDescriptor[] fileColumns = new ColumnDescriptor[4];
                fileColumns[0].PropNames      = new[] { "DisplayName" };
                fileColumns[0].Width          = 300;
                fileColumns[0].CustomComparer = new FoldersUpComparer();
                fileColumns[1].PropNames      = new[] { "FileType" };
                fileColumns[1].Width          = 120;
                fileColumns[2].PropNames      = new[] { "Size" };
                fileColumns[2].Width          = 120;
                fileColumns[3].PropNames      = new[] { "Date" };
                fileColumns[3].Width          = 120;
                rBrowser.DisplayUnfilteredResourceList(
                    res, folderContents, path, Core.DisplayColumnManager.AddAnyTypeColumns(fileColumns));

                if (selected != null)
                {
                    foreach (IResource file in selected.ValidResources)
                    {
                        rBrowser.SelectResource(file);
                    }
                }
            }
        }