/* [Obsolete("Not Used")] private void NavigateNet(IListItemEx destination, Boolean isInSameTab = false, Boolean refresh = false, Boolean isCancel = false) { SaveSettingsToDatabase(this.CurrentFolder); //TODO: Document isCancel Param better if (destination == null) return; if (this._RequestedCurrentLocation == destination && !refresh) return; resetEvent.Set(); if (this.Threads.Count > 0) { mre.Set(); this.resetEvent.Set(); foreach (var thread in this.Threads.ToArray()) { thread.Abort(); this.Threads.Remove(thread); } } this._UnvalidateTimer.Stop(); this.IsDisplayEmptyText = false; User32.SendMessage(this.LVHandle, MSG.LVM_SETITEMCOUNT, 0, 0); this.DisableGroups(); this._ItemForRename = -1; this._LastItemForRename = -1; Items.Clear(); this._AddedItems.Clear(); ItemsForSubitemsUpdate.Clear(); waitingThumbnails.Clear(); overlayQueue.Clear(); shieldQueue.Clear(); this._CuttedIndexes.Clear(); this.SubItemValues.Clear(); this._RequestedCurrentLocation = destination; if (!refresh) Navigating?.Invoke(this, new NavigatingEventArgs(destination, isInSameTab)); var columns = new Collumns(); //var isFailed = true; Int32 CurrentI = 0, LastI = 0, K = 0; this.IsNavigationInProgress = true; _ResetTimer.Stop(); this.RemoveAllCollumns(); this.AddDefaultColumns(false, true); this.IsViewSelectionAllowed = true; var navigationThread = new Thread(() => { destination = FileSystemListItem.ToFileSystemItem(destination.ParentHandle, destination.PIDL); this._RequestedCurrentLocation = destination; this.Invoke((Action)(() => { if (!this._SearchTimer.Enabled) { this._SearchTimer.Start(); } })); foreach (var shellItem in destination.TakeWhile(shellItem => !this.IsCancelRequested)) { CurrentI++; //if (CurrentI == 1) { // isFailed = false; //} smre.WaitOne(); if (this.ShowHidden || !shellItem.IsHidden) { shellItem.ItemIndex = K++; this.Items.Add(shellItem); } var delta = CurrentI - LastI; if (delta >= (this.IsSearchNavigating ? 1 : 5000)) LastI = CurrentI; if (this.IsSearchNavigating && delta >= 20) Shell32.SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle, -1, -1); } this.IsCancelRequested = false; this.IsNavigationInProgress = false; if (this._RequestedCurrentLocation.NavigationStatus != HResult.S_OK) { this.Invoke((Action)(() => { if (this._SearchTimer.Enabled) this._SearchTimer.Stop(); })); GC.Collect(); Shell32.SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle, -1, -1); if (this.Threads.Count <= 1) return; mre.Set(); this.resetEvent.Set(); this.Threads[0].Abort(); this.Threads.RemoveAt(0); return; } var headerhandle = User32.SendMessage(this.LVHandle, MSG.LVM_GETHEADER, 0, 0); for (var i = 0; i < this.Collumns.Count; i++) { this.Collumns[i].SetSplitButton(headerhandle, i); } if (this.View != ShellViewStyle.Details) AutosizeAllColumns(-2); var sortColIndex = 0; if (sortColIndex > -1) this.SetSortIcon(sortColIndex, SortOrder.Ascending); this.SetSortCollumn(false, this.Collumns.First(), SortOrder.Ascending, false); this.BeginInvoke((Action)(() => { var navArgs = new NavigatedEventArgs(this._RequestedCurrentLocation, this.CurrentFolder, isInSameTab); this.CurrentFolder = this._RequestedCurrentLocation; if (!refresh) Navigated?.Invoke(this, navArgs); })); GC.Collect(); Shell32.SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle, -1, -1); this.Invoke((Action)(() => { if (this._SearchTimer.Enabled) this._SearchTimer.Stop(); })); mre.Reset(); mre.WaitOne(); this.Focus(); }); navigationThread.SetApartmentState(ApartmentState.STA); this.Threads.Add(navigationThread); navigationThread.Start(); } */ private Boolean LoadSettingsFromDatabase(IListItemEx directory, out FolderSettings folderSettings) { var result = false; var folderSetting = new FolderSettings(); if (directory.IsSearchFolder) { folderSettings = folderSetting; return false; } try { var mDBConnection = new SQLite.SQLiteConnection("Data Source=" + this._DBPath + ";Version=3;"); mDBConnection.Open(); var command1 = new SQLite.SQLiteCommand("SELECT * FROM foldersettings WHERE Path=@0", mDBConnection); command1.Parameters.AddWithValue("0", directory.ParsingName); var reader = command1.ExecuteReader(); if (reader.Read()) { var values = reader.GetValues(); if (values.Count > 0) { result = true; var view = values.GetValues("View").FirstOrDefault(); var iconSize = values.GetValues("IconSize").FirstOrDefault(); var lastSortedColumnIndex = values.GetValues("LastSortedColumn").FirstOrDefault(); var lastSortOrder = values.GetValues("LastSortOrder").FirstOrDefault(); var lastGroupedColumnId = values.GetValues("LastGroupCollumn").FirstOrDefault(); var lastGroupoupOrder = values.GetValues("LastGroupOrder").FirstOrDefault(); if (view != null) folderSetting.View = (ShellViewStyle)Enum.Parse(typeof(ShellViewStyle), view); if (lastSortedColumnIndex != null) { folderSetting.SortColumn = lastSortedColumnIndex; folderSetting.SortOrder = (SortOrder)Enum.Parse(typeof(SortOrder), lastSortOrder); } folderSetting.GroupCollumn = lastGroupedColumnId; folderSetting.GroupOrder = lastGroupoupOrder == SortOrder.Ascending.ToString() ? SortOrder.Ascending : SortOrder.Descending; var collumns = values.GetValues("Columns").FirstOrDefault(); folderSetting.Columns = collumns != null ? XElement.Parse(collumns) : null; if (String.IsNullOrEmpty(iconSize)) folderSetting.IconSize = 48; else folderSetting.IconSize = Int32.Parse(iconSize); } } reader.Close(); } catch (Exception) { } folderSettings = folderSetting; return result; }