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;
}