private void AddNewEntry(HistoryEntry he, HistoryList hl) // add if in event filter, and not in field filter.. { bool add = he.IsJournalEventInEventFilter(SQLiteDBClass.GetSettingString(DbFilterSave, "All")); if (!add) { ftotalevents++; UpdateToolTipsForFilter(); } if (add && !FilterHelpers.FilterHistory(he, fieldfilter, discoveryform.Globals)) { add = false; ftotalfilters++; UpdateToolTipsForFilter(); } if (add) { AddNewJournalRow(true, he); var filter = (TravelHistoryFilter)comboBoxJournalWindow.SelectedItem ?? TravelHistoryFilter.NoFilter; if (filter.MaximumNumberOfItems != null) { for (int r = dataGridViewJournal.Rows.Count - 1; r >= dataGridViewJournal.Rows.Count; r--) { dataGridViewJournal.Rows.RemoveAt(r); } } if (filter.MaximumDataAge != null) { for (int r = dataGridViewJournal.Rows.Count - 1; r > 0; r--) { var rhe = dataGridViewJournal.Rows[r].Tag as HistoryEntry; if (rhe != null && rhe.AgeOfEntry() > filter.MaximumDataAge) { dataGridViewJournal.Rows.RemoveAt(r); } else { break; } } } if (checkBoxMoveToTop.Checked && dataGridViewJournal.DisplayedRowCount(false) > 0) // Move focus to new row { dataGridViewJournal.ClearSelection(); int rowno = dataGridViewJournal.Rows.GetFirstRow(DataGridViewElementStates.Visible); if (rowno != -1) { dataGridViewJournal.CurrentCell = dataGridViewJournal.Rows[rowno].Cells[1]; // its the current cell which needs to be set, moves the row marker as well } FireChangeSelection(); } } }
private void Display(HistoryList hl, bool disablesorting) { if (hl == null) // just for safety { return; } current_historylist = hl; Tuple <long, int> pos = CurrentGridPosByJID(); SortOrder sortorder = dataGridViewJournal.SortOrder; int sortcol = dataGridViewJournal.SortedColumn?.Index ?? -1; if (sortcol >= 0 && disablesorting) { dataGridViewJournal.Columns[sortcol].HeaderCell.SortGlyphDirection = SortOrder.None; sortcol = -1; } var filter = (TravelHistoryFilter)comboBoxJournalWindow.SelectedItem ?? TravelHistoryFilter.NoFilter; List <HistoryEntry> result = filter.Filter(hl); fdropdown = hl.Count() - result.Count(); result = HistoryList.FilterByJournalEvent(result, SQLiteDBClass.GetSettingString(DbFilterSave, "All"), out ftotalevents); result = FilterHelpers.FilterHistory(result, fieldfilter, discoveryform.Globals, out ftotalfilters); dataGridViewJournal.Rows.Clear(); rowsbyjournalid.Clear(); for (int ii = 0; ii < result.Count; ii++) //foreach (var item in result) { AddNewJournalRow(false, result[ii]); // for every one in filter, add a row. } StaticFilters.FilterGridView(dataGridViewJournal, textBoxFilter.Text); UpdateToolTipsForFilter(); int rowno = FindGridPosByJID(pos.Item1, true); if (rowno >= 0) { dataGridViewJournal.CurrentCell = dataGridViewJournal.Rows[rowno].Cells[pos.Item2]; // its the current cell which needs to be set, moves the row marker as well currentGridRow = (rowno!=-1) ? } dataGridViewJournal.Columns[0].HeaderText = EDDiscoveryForm.EDDConfig.DisplayUTC ? "Game Time" : "Time"; if (sortcol >= 0) { dataGridViewJournal.Sort(dataGridViewJournal.Columns[sortcol], (sortorder == SortOrder.Descending) ? ListSortDirection.Descending : ListSortDirection.Ascending); dataGridViewJournal.Columns[sortcol].HeaderCell.SortGlyphDirection = sortorder; } FireChangeSelection(); }
public void HistoryChanged(HistoryList hl) // on History change { if (hl == null) // just for safety { return; } current_historylist = hl; Tuple <long, int> pos = CurrentGridPosByJID(); var filter = (TravelHistoryFilter)comboBoxHistoryWindow.SelectedItem ?? TravelHistoryFilter.NoFilter; List <HistoryEntry> result = filter.Filter(hl); int ftotal; result = HistoryList.FilterByJournalEvent(result, SQLiteDBClass.GetSettingString(DbFilterSave, "All"), out ftotal); toolTip.SetToolTip(buttonFilter, (ftotal > 0) ? ("Total filtered out " + ftotal) : "Filter out entries based on event type"); result = FilterHelpers.FilterHistory(result, fieldfilter, discoveryform.Globals, out ftotal); toolTip.SetToolTip(buttonField, (ftotal > 0) ? ("Total filtered out " + ftotal) : "Filter out entries matching the field selection"); dataGridViewTravel.Rows.Clear(); rowsbyjournalid.Clear(); for (int ii = 0; ii < result.Count; ii++) //foreach (var item in result) { AddNewHistoryRow(false, result[ii]); // for every one in filter, add a row. } StaticFilters.FilterGridView(dataGridViewTravel, textBoxFilter.Text); int rowno = FindGridPosByJID(pos.Item1, true); // find row.. must be visible.. -1 if not found/not visible if (rowno >= 0) { dataGridViewTravel.CurrentCell = dataGridViewTravel.Rows[rowno].Cells[pos.Item2]; // its the current cell which needs to be set, moves the row marker as well currentGridRow = (rowno!=-1) ? } else if (dataGridViewTravel.Rows.GetRowCount(DataGridViewElementStates.Visible) > 0) { rowno = dataGridViewTravel.Rows.GetFirstRow(DataGridViewElementStates.Visible); dataGridViewTravel.CurrentCell = dataGridViewTravel.Rows[rowno].Cells[TravelHistoryColumns.Description]; } else { rowno = -1; } dataGridViewTravel.Columns[0].HeaderText = EDDiscoveryForm.EDDConfig.DisplayUTC ? "Game Time" : "Time"; //System.Diagnostics.Debug.WriteLine("Fire HC"); if (OnHistoryChanged != null) { OnHistoryChanged(hl); } FireChangeSelection(); // and since we repainted, we should fire selection, as we in effect may have selected a new one }
private void AddNewEntry(HistoryEntry he, HistoryList hl) // add if in event filter, and not in field filter.. { if (todotimer.Enabled) { todo.Enqueue(() => AddNewEntry(he, hl)); return; } bool add = he.IsJournalEventInEventFilter(GetSetting(dbFilter, "All")); if (!add) { ftotalevents++; UpdateToolTipsForFilter(); } if (add && !FilterHelpers.FilterHistory(he, fieldfilter, discoveryform.Globals)) { add = false; ftotalfilters++; UpdateToolTipsForFilter(); } if (add) { var row = CreateHistoryRow(he, textBoxFilter.Text); // we might be filtered out by search if (row != null) { dataGridViewJournal.Rows.Insert(0, row); } else { add = false; } } if (add) // its been added, we have at least 1 row visible, at row 0 { var filter = (TravelHistoryFilter)comboBoxJournalWindow.SelectedItem ?? TravelHistoryFilter.NoFilter; if (filter.MaximumNumberOfItems != null) // this one won't remove the latest one { for (int r = dataGridViewJournal.Rows.Count - 1; r >= filter.MaximumNumberOfItems; r--) { dataGridViewJournal.Rows.RemoveAt(r); } } if (checkBoxCursorToTop.Checked) // Move focus to first row { dataGridViewJournal.ClearSelection(); dataGridViewJournal.SetCurrentAndSelectAllCellsOnRow(0); // its the current cell which needs to be set, moves the row marker as well FireChangeSelection(); } } }
private void buttonField_Click(object sender, EventArgs e) { BaseUtils.ConditionLists res = FilterHelpers.ShowDialog(FindForm(), fieldfilter, discoveryform, "Journal: Filter out fields".T(EDTx.UserControlJournalGrid_JHF)); if (res != null) { fieldfilter = res; PutSetting(dbFieldFilter, fieldfilter.GetJSON()); HistoryChanged(current_historylist); } }
private void buttonField_Click(object sender, EventArgs e) { BaseUtils.ConditionLists res = FilterHelpers.ShowDialog(FindForm(), fieldfilter, discoveryform, "Journal: Filter out fields".Tx(this, "JHF")); if (res != null) { fieldfilter = res; SQLiteDBClass.PutSettingString(DbFieldFilter, fieldfilter.GetJSON()); Display(current_historylist); } }
private void configureFieldFilterToolStripMenuItem_Click(object sender, EventArgs e) { BaseUtils.ConditionLists res = FilterHelpers.ShowDialog(FindForm(), fieldfilter, discoveryform, "Summary Panel: Filter out fields".T(EDTx.UserControlSpanel_SPF)); if (res != null) { fieldfilter = res; PutSetting(dbFieldFilter, fieldfilter.GetJSON()); Display(current_historylist); } }
private void buttonField_Click(object sender, EventArgs e) { BaseUtils.ConditionLists res = FilterHelpers.ShowDialog(FindForm(), fieldfilter, discoveryform, "Journal: Filter out fields".T(EDTx.UserControlJournalGrid_JHF)); if (res != null) { fieldfilter = res; EliteDangerousCore.DB.UserDatabase.Instance.PutSettingString(DbFieldFilter, fieldfilter.GetJSON()); Display(current_historylist); } }
public void Display(HistoryList hl) { if (hl == null) // just for safety { return; } current_historylist = hl; Tuple <long, int> pos = CurrentGridPosByJID(); var filter = (TravelHistoryFilter)comboBoxJournalWindow.SelectedItem ?? TravelHistoryFilter.NoFilter; List <HistoryEntry> result = filter.Filter(hl); int ftotal; result = HistoryList.FilterByJournalEvent(result, SQLiteDBClass.GetSettingString(DbFilterSave, "All"), out ftotal); toolTip.SetToolTip(buttonFilter, (ftotal > 0) ? ("Total filtered out " + ftotal) : "Filter out entries based on event type"); result = FilterHelpers.FilterHistory(result, fieldfilter, discoveryform.Globals, out ftotal); toolTip.SetToolTip(buttonField, (ftotal > 0) ? ("Total filtered out " + ftotal) : "Filter out entries matching the field selection"); dataGridViewJournal.Rows.Clear(); rowsbyjournalid.Clear(); for (int ii = 0; ii < result.Count; ii++) //foreach (var item in result) { AddNewJournalRow(false, result[ii]); // for every one in filter, add a row. } StaticFilters.FilterGridView(dataGridViewJournal, textBoxFilter.Text); int rowno = FindGridPosByJID(pos.Item1, true); if (rowno >= 0) { dataGridViewJournal.CurrentCell = dataGridViewJournal.Rows[rowno].Cells[pos.Item2]; // its the current cell which needs to be set, moves the row marker as well currentGridRow = (rowno!=-1) ? } dataGridViewJournal.Columns[0].HeaderText = EDDiscoveryForm.EDDConfig.DisplayUTC ? "Game Time" : "Time"; FireChangeSelection(); }
private void Display(HistoryList hl, bool disablesorting) { if (hl == null) // just for safety { return; } loadcomplete = false; this.Cursor = Cursors.WaitCursor; buttonExtExcel.Enabled = buttonFilter.Enabled = buttonField.Enabled = comboBoxJournalWindow.Enabled = false; current_historylist = hl; Tuple <long, int> pos = CurrentGridPosByJID(); SortOrder sortorder = dataGridViewJournal.SortOrder; int sortcol = dataGridViewJournal.SortedColumn?.Index ?? -1; if (sortcol >= 0 && disablesorting) { dataGridViewJournal.Columns[sortcol].HeaderCell.SortGlyphDirection = SortOrder.None; sortcol = -1; } var filter = (TravelHistoryFilter)comboBoxJournalWindow.SelectedItem ?? TravelHistoryFilter.NoFilter; List <HistoryEntry> result = filter.Filter(hl); fdropdown = hl.Count() - result.Count(); result = HistoryList.FilterByJournalEvent(result, EliteDangerousCore.DB.UserDatabase.Instance.GetSettingString(DbFilterSave, "All"), out ftotalevents); result = FilterHelpers.FilterHistory(result, fieldfilter, discoveryform.Globals, out ftotalfilters); dataGridViewJournal.Rows.Clear(); rowsbyjournalid.Clear(); dataGridViewJournal.Columns[0].HeaderText = EDDiscoveryForm.EDDConfig.GetTimeTitle(); List <HistoryEntry[]> chunks = new List <HistoryEntry[]>(); int chunksize = 500; for (int i = 0; i < result.Count; i += chunksize, chunksize = 2000) { HistoryEntry[] chunk = new HistoryEntry[i + chunksize > result.Count ? result.Count - i : chunksize]; result.CopyTo(i, chunk, 0, chunk.Length); chunks.Add(chunk); } todo.Clear(); string filtertext = textBoxFilter.Text; System.Diagnostics.Stopwatch swtotal = new System.Diagnostics.Stopwatch(); swtotal.Start(); //int lrowno = 0; foreach (var chunk in chunks) { todo.Enqueue(() => { //System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch(); sw.Start(); List <DataGridViewRow> rowstoadd = new List <DataGridViewRow>(); foreach (var item in chunk) { var row = CreateHistoryRow(item, filtertext); if (row != null) { //row.Cells[2].Value = (lrowno++).ToString() + " " + item.Journalid + " " + (string)row.Cells[2].Value; rowstoadd.Add(row); } } dataGridViewJournal.Rows.AddRange(rowstoadd.ToArray()); // much faster to send in one chunk // System.Diagnostics.Debug.WriteLine("J Chunk Load in " + sw.ElapsedMilliseconds); if (dataGridViewJournal.MoveToSelection(rowsbyjournalid, ref pos, false, Columns.Event)) { FireChangeSelection(); } }); } todo.Enqueue(() => { System.Diagnostics.Debug.WriteLine(BaseUtils.AppTicks.TickCount + " JG TOTAL TIME " + swtotal.ElapsedMilliseconds); UpdateToolTipsForFilter(); if (dataGridViewJournal.MoveToSelection(rowsbyjournalid, ref pos, true, Columns.Event)) { FireChangeSelection(); } if (sortcol >= 0) { dataGridViewJournal.Sort(dataGridViewJournal.Columns[sortcol], (sortorder == SortOrder.Descending) ? ListSortDirection.Descending : ListSortDirection.Ascending); dataGridViewJournal.Columns[sortcol].HeaderCell.SortGlyphDirection = sortorder; } this.Cursor = Cursors.Default; buttonExtExcel.Enabled = buttonFilter.Enabled = buttonField.Enabled = comboBoxJournalWindow.Enabled = true; loadcomplete = true; }); todotimer.Start(); }
private void AddNewEntry(HistoryEntry he, HistoryList hl) // add if in event filter, and not in field filter.. { if (he.IsJournalEventInEventFilter(SQLiteDBClass.GetSettingString(DbFilterSave, "All")) && FilterHelpers.FilterHistory(he, fieldfilter, discoveryform.Globals)) { AddNewJournalRow(true, he); if (checkBoxMoveToTop.Checked && dataGridViewJournal.DisplayedRowCount(false) > 0) // Move focus to new row { dataGridViewJournal.ClearSelection(); dataGridViewJournal.CurrentCell = dataGridViewJournal.Rows[0].Cells[1]; // its the current cell which needs to be set, moves the row marker as well FireChangeSelection(); } } }
private void Display(HistoryList hl, bool disablesorting) { if (hl == null) // just for safety { return; } loadcomplete = false; this.Cursor = Cursors.WaitCursor; current_historylist = hl; Tuple <long, int> pos = CurrentGridPosByJID(); SortOrder sortorder = dataGridViewJournal.SortOrder; int sortcol = dataGridViewJournal.SortedColumn?.Index ?? -1; if (sortcol >= 0 && disablesorting) { dataGridViewJournal.Columns[sortcol].HeaderCell.SortGlyphDirection = SortOrder.None; sortcol = -1; } var filter = (TravelHistoryFilter)comboBoxJournalWindow.SelectedItem ?? TravelHistoryFilter.NoFilter; System.Diagnostics.Trace.WriteLine(BaseUtils.AppTicks.TickCountLap(this, true) + " JG " + displaynumber + " Load start"); List <HistoryEntry> result = filter.Filter(hl); fdropdown = hl.Count() - result.Count(); result = HistoryList.FilterByJournalEvent(result, SQLiteDBClass.GetSettingString(DbFilterSave, "All"), out ftotalevents); result = FilterHelpers.FilterHistory(result, fieldfilter, discoveryform.Globals, out ftotalfilters); dataGridViewJournal.Rows.Clear(); rowsbyjournalid.Clear(); dataGridViewJournal.Columns[0].HeaderText = EDDiscoveryForm.EDDConfig.DisplayUTC ? "Game Time".Tx() : "Time".Tx(); List <HistoryEntry[]> chunks = new List <HistoryEntry[]>(); for (int i = 0; i < result.Count; i += 1000) { HistoryEntry[] chunk = new HistoryEntry[i + 1000 > result.Count ? result.Count - i : 1000]; result.CopyTo(i, chunk, 0, chunk.Length); chunks.Add(chunk); } todo.Clear(); string filtertext = textBoxFilter.Text; foreach (var chunk in chunks) { todo.Enqueue(() => { dataViewScrollerPanel.Suspend(); foreach (var item in chunk) { var row = CreateHistoryRow(item, filtertext); if (row != null) { dataGridViewJournal.Rows.Add(row); } } dataViewScrollerPanel.Resume(); }); } todo.Enqueue(() => { UpdateToolTipsForFilter(); int rowno = FindGridPosByJID(pos.Item1, true); if (rowno >= 0) { dataGridViewJournal.CurrentCell = dataGridViewJournal.Rows[rowno].Cells[pos.Item2]; // its the current cell which needs to be set, moves the row marker as well currentGridRow = (rowno!=-1) ? } System.Diagnostics.Trace.WriteLine(BaseUtils.AppTicks.TickCountLap(this) + " JG " + displaynumber + " Load Finish"); if (sortcol >= 0) { dataGridViewJournal.Sort(dataGridViewJournal.Columns[sortcol], (sortorder == SortOrder.Descending) ? ListSortDirection.Descending : ListSortDirection.Ascending); dataGridViewJournal.Columns[sortcol].HeaderCell.SortGlyphDirection = sortorder; } FireChangeSelection(); this.Cursor = Cursors.Default; loadcomplete = true; }); todotimer.Start(); }
public void Display(HistoryList hl) // when user clicks around.. HE may be null here { pictureBox.ClearImageList(); current_historylist = hl; if (hl != null && hl.Count > 0) // just for safety { List <HistoryEntry> result = current_historylist.LastFirst; // Standard filtering int ftotal; // event filter result = HistoryList.FilterByJournalEvent(result, SQLiteDBClass.GetSettingString(DbFilterSave, "All"), out ftotal); result = FilterHelpers.FilterHistory(result, fieldfilter, discoveryform.Globals, out ftotal); // and the field filter.. RevertToNormalSize(); // ensure size is back to normal.. scanpostextoffset = new Point(0, 0); // left/ top used by scan display Color textcolour = IsTransparent ? discoveryform.theme.SPanelColor : discoveryform.theme.LabelColor; Color backcolour = IsTransparent ? (Config(Configuration.showBlackBoxAroundText) ? Color.Black : Color.Transparent) : this.BackColor; bool drawnnootherstuff = DrawScanText(true, textcolour, backcolour); // go 1 for some of the scan positions if (!drawnnootherstuff) // and it may indicate its overwriting all stuff, which is fine { int rowpos = scanpostextoffset.Y; int rowheight = Config(Configuration.showIcon) ? 26 : 20; if (Config(Configuration.showNothingWhenDocked) && (hl.GetLast.IsDocked || hl.GetLast.IsLanded)) { AddColText(0, 0, rowpos, rowheight, (hl.GetLast.IsDocked) ? "Docked" : "Landed", textcolour, backcolour, null); } else { string name; Point3D tpos; bool targetpresent = TargetClass.GetTargetPosition(out name, out tpos); if (targetpresent && Config(Configuration.showTargetLine) && hl.GetLast != null) { string dist = (hl.GetLast.System.HasCoordinate) ? SystemClassDB.Distance(hl.GetLast.System, tpos.X, tpos.Y, tpos.Z).ToString("0.00") : "Unknown"; AddColText(0, 0, rowpos, rowheight, "Target: " + name + " @ " + dist + " ly", textcolour, backcolour, null); rowpos += rowheight; } foreach (HistoryEntry rhe in result) { DrawHistoryEntry(rhe, rowpos, rowheight, tpos, textcolour, backcolour); rowpos += rowheight; if (rowpos > ClientRectangle.Height) // stop when off of screen { break; } } } } DrawScanText(false, textcolour, backcolour); // go 2 } pictureBox.Render(); }
private void Display(HistoryList hl, bool disablesorting) { if (hl == null) // just for safety { return; } this.Cursor = Cursors.WaitCursor; current_historylist = hl; Tuple <long, int> pos = CurrentGridPosByJID(); SortOrder sortorder = dataGridViewJournal.SortOrder; int sortcol = dataGridViewJournal.SortedColumn?.Index ?? -1; if (sortcol >= 0 && disablesorting) { dataGridViewJournal.Columns[sortcol].HeaderCell.SortGlyphDirection = SortOrder.None; sortcol = -1; } var filter = (TravelHistoryFilter)comboBoxJournalWindow.SelectedItem ?? TravelHistoryFilter.NoFilter; System.Diagnostics.Trace.WriteLine(BaseUtils.AppTicks.TickCount100 + " JG " + displaynumber + " Load start"); List <HistoryEntry> result = filter.Filter(hl); fdropdown = hl.Count() - result.Count(); result = HistoryList.FilterByJournalEvent(result, SQLiteDBClass.GetSettingString(DbFilterSave, "All"), out ftotalevents); result = FilterHelpers.FilterHistory(result, fieldfilter, discoveryform.Globals, out ftotalfilters); dataGridViewJournal.Rows.Clear(); rowsbyjournalid.Clear(); for (int ii = 0; ii < result.Count; ii++) //foreach (var item in result) { DataGridViewRow rw = CreateHistoryRow(result[ii], textBoxFilter.Text); if (rw != null) { dataGridViewJournal.Rows.Add(rw); } } UpdateToolTipsForFilter(); int rowno = FindGridPosByJID(pos.Item1, true); if (rowno >= 0) { dataGridViewJournal.CurrentCell = dataGridViewJournal.Rows[rowno].Cells[pos.Item2]; // its the current cell which needs to be set, moves the row marker as well currentGridRow = (rowno!=-1) ? } dataGridViewJournal.Columns[0].HeaderText = EDDiscoveryForm.EDDConfig.DisplayUTC ? "Game Time" : "Time"; System.Diagnostics.Trace.WriteLine(BaseUtils.AppTicks.TickCount100 + " JG " + displaynumber + " Load Finish"); if (sortcol >= 0) { dataGridViewJournal.Sort(dataGridViewJournal.Columns[sortcol], (sortorder == SortOrder.Descending) ? ListSortDirection.Descending : ListSortDirection.Ascending); dataGridViewJournal.Columns[sortcol].HeaderCell.SortGlyphDirection = sortorder; } FireChangeSelection(); this.Cursor = Cursors.Default; }
private void AddNewEntry(HistoryEntry he, HistoryList hl) // add if in event filter, and not in field filter.. { if (!loadcomplete) { todo.Enqueue(() => AddNewEntry(he, hl)); return; } bool add = he.IsJournalEventInEventFilter(EliteDangerousCore.DB.UserDatabase.Instance.GetSettingString(DbFilterSave, "All")); if (!add) { ftotalevents++; UpdateToolTipsForFilter(); } if (add && !FilterHelpers.FilterHistory(he, fieldfilter, discoveryform.Globals)) { add = false; ftotalfilters++; UpdateToolTipsForFilter(); } if (add) { var row = CreateHistoryRow(he, textBoxFilter.Text); if (row != null) { dataGridViewJournal.Rows.Insert(0, row); } var filter = (TravelHistoryFilter)comboBoxJournalWindow.SelectedItem ?? TravelHistoryFilter.NoFilter; if (filter.MaximumNumberOfItems != null) { for (int r = dataGridViewJournal.Rows.Count - 1; r >= dataGridViewJournal.Rows.Count; r--) { dataGridViewJournal.Rows.RemoveAt(r); } } if (filter.MaximumDataAge != null) { for (int r = dataGridViewJournal.Rows.Count - 1; r > 0; r--) { var rhe = dataGridViewJournal.Rows[r].Tag as HistoryEntry; if (rhe != null && rhe.AgeOfEntry() > filter.MaximumDataAge) { dataGridViewJournal.Rows.RemoveAt(r); } else { break; } } } if (checkBoxCursorToTop.Checked && dataGridViewJournal.DisplayedRowCount(false) > 0) // Move focus to new row { dataGridViewJournal.ClearSelection(); int rowno = dataGridViewJournal.Rows.GetFirstRow(DataGridViewElementStates.Visible); if (rowno != -1) { dataGridViewJournal.SetCurrentAndSelectAllCellsOnRow(rowno); // its the current cell which needs to be set, moves the row marker as well } FireChangeSelection(); } } }
private async void Display(HistoryList hl) { pictureBox.ClearImageList(); current_historylist = hl; if (hl != null && hl.Count > 0) // just for safety { List <HistoryEntry> result = current_historylist.LatestFirst(); // Standard filtering int ftotal; // event filter result = HistoryList.FilterByJournalEvent(result, GetSetting(dbFilter, "All"), out ftotal); result = FilterHelpers.FilterHistory(result, fieldfilter, discoveryform.Globals, out ftotal); // and the field filter.. RevertToNormalSize(); // ensure size is back to normal.. scanpostextoffset = new Point(0, 0); // left/ top used by scan display Color textcolour = IsTransparent ? discoveryform.theme.SPanelColor : discoveryform.theme.LabelColor; Color backcolour = IsTransparent ? (Config(Configuration.showBlackBoxAroundText) ? Color.Black : Color.Transparent) : this.BackColor; bool drawnnootherstuff = DrawScanText(true, textcolour, backcolour); // go 1 for some of the scan positions if (!drawnnootherstuff) // and it may indicate its overwriting all stuff, which is fine { int rowpos = scanpostextoffset.Y; int rowmargin = displayfont.ScalePixels(4); // Check if need to hide the UI var ts = hl.CurrentTravelState(); if (Config(Configuration.showNothingWhenDocked) && (ts == HistoryEntryStatus.TravelStateType.Docked)) { if (!Config(Configuration.showNoTitleWhenHidden)) { AddColText(0, 0, rowpos, "<>", textcolour, backcolour, null); // just show a marker } } else if (uistate != EliteDangerousCore.UIEvents.UIGUIFocus.Focus.NoFocus && Config(Configuration.showNothingWhenPanel)) { if (!Config(Configuration.showNoTitleWhenHidden)) { AddColText(0, 0, rowpos, uistate.ToString().SplitCapsWord(), textcolour, backcolour, null); } } else { string name; Point3D tpos; bool targetpresent = TargetClass.GetTargetPosition(out name, out tpos); ISystem currentsystem = hl.CurrentSystem(); // may be null HistoryEntry last = hl.GetLast; // last = hl.FindByName("Myeia Thaa QY-H c23-0"); if (Config(Configuration.showSystemInformation) && last != null) { string allegiance, economy, gov, faction, factionstate, security; hl.ReturnSystemInfo(last, out allegiance, out economy, out gov, out faction, out factionstate, out security); string str = last.System.Name + " : " + BaseUtils.FieldBuilder.Build( "", faction, "", factionstate, "", security, "", allegiance, "", economy, "", gov ); HistoryEntry lastfsd = hl.GetLastHistoryEntry(x => x.journalEntry is EliteDangerousCore.JournalEvents.JournalFSDJump, last); bool firstdiscovery = (lastfsd != null && (lastfsd.journalEntry as EliteDangerousCore.JournalEvents.JournalFSDJump).EDSMFirstDiscover); rowpos = rowmargin + AddColText(0, 0, rowpos, str, textcolour, backcolour, null, firstdiscovery ? EDDiscovery.Icons.Controls.firstdiscover : null, "Shows if EDSM indicates your it's first discoverer").Location.Bottom; } if (Config(Configuration.showHabInformation) && last != null) { StarScan scan = hl.StarScan; StarScan.SystemNode sn = await scan.FindSystemAsync(last.System, true); // EDSM look up here.. StringBuilder res = new StringBuilder(); if (sn != null && sn.StarNodes.Count > 0 && sn.StarNodes.Values[0].ScanData != null) { JournalScan js = sn.StarNodes.Values[0].ScanData; if (showCircumstellarZonesToolStripMenuItem.Checked) { string hz = js.CircumstellarZonesString(false, JournalScan.CZPrint.CZHab); res.AppendFormat(hz + Environment.NewLine); } if (showMetalRichPlanetsToolStripMenuItem.Checked) { string hz = js.CircumstellarZonesString(false, JournalScan.CZPrint.CZMR); res.AppendFormat(hz + Environment.NewLine); } if (showWaterWorldsToolStripMenuItem.Checked) { string hz = js.CircumstellarZonesString(false, JournalScan.CZPrint.CZWW); res.AppendFormat(hz + Environment.NewLine); } if (showEarthLikeToolStripMenuItem.Checked) { string hz = js.CircumstellarZonesString(false, JournalScan.CZPrint.CZEL); res.AppendFormat(hz + Environment.NewLine); } if (showAmmoniaWorldsToolStripMenuItem.Checked) { string hz = js.CircumstellarZonesString(false, JournalScan.CZPrint.CZAW); res.AppendFormat(hz + Environment.NewLine); } if (showIcyPlanetsToolStripMenuItem.Checked) { string hz = js.CircumstellarZonesString(false, JournalScan.CZPrint.CZIP); res.AppendFormat(hz + Environment.NewLine); } } if (res.ToString().HasChars()) { rowpos = rowmargin + AddColText(0, 0, rowpos, res.ToString(), textcolour, backcolour, null).Location.Bottom; } } if (targetpresent && Config(Configuration.showTargetLine) && currentsystem != null) { string dist = (currentsystem.HasCoordinate) ? currentsystem.Distance(tpos.X, tpos.Y, tpos.Z).ToString("0.00") : "Unknown".T(EDTx.Unknown); rowpos = rowmargin + AddColText(0, 0, rowpos, "Target".T(EDTx.UserControlSpanel_Target) + ": " + name + " @ " + dist + " ly", textcolour, backcolour, null).Location.Bottom; } foreach (HistoryEntry rhe in result) { rowpos = rowmargin + DrawHistoryEntry(rhe, rowpos, tpos, textcolour, backcolour); if (rowpos > ClientRectangle.Height) // stop when off of screen { break; } } } } DrawScanText(false, textcolour, backcolour); // go 2 } pictureBox.Render(); }
public bool WouldAddEntry(HistoryEntry he) // do we filter? if its not in the journal event filter, or it is in the field filter { return(he.IsJournalEventInEventFilter(SQLiteDBClass.GetSettingString(DbFilterSave, "All")) && FilterHelpers.FilterHistory(he, fieldfilter, discoveryform.Globals)); }
private void Display(HistoryList hl) { pictureBox.ClearImageList(); current_historylist = hl; if (hl != null && hl.Count > 0) // just for safety { List <HistoryEntry> result = current_historylist.LastFirst; // Standard filtering int ftotal; // event filter result = HistoryList.FilterByJournalEvent(result, SQLiteDBClass.GetSettingString(DbFilterSave, "All"), out ftotal); result = FilterHelpers.FilterHistory(result, fieldfilter, discoveryform.Globals, out ftotal); // and the field filter.. RevertToNormalSize(); // ensure size is back to normal.. scanpostextoffset = new Point(0, 0); // left/ top used by scan display Color textcolour = IsTransparent ? discoveryform.theme.SPanelColor : discoveryform.theme.LabelColor; Color backcolour = IsTransparent ? (Config(Configuration.showBlackBoxAroundText) ? Color.Black : Color.Transparent) : this.BackColor; bool drawnnootherstuff = DrawScanText(true, textcolour, backcolour); // go 1 for some of the scan positions if (!drawnnootherstuff) // and it may indicate its overwriting all stuff, which is fine { int rowpos = scanpostextoffset.Y; int rowheight = Config(Configuration.showIcon) ? 26 : 20; if (Config(Configuration.showNothingWhenDocked) && (hl.IsCurrentlyDocked || hl.IsCurrentlyLanded)) { AddColText(0, 0, rowpos, rowheight, (hl.IsCurrentlyDocked) ? "Docked" : "Landed", textcolour, backcolour, null); } else if ((uistate == UIState.GalMap && Config(Configuration.showNothingWhenGalmap)) || (uistate == UIState.SystemMap && Config(Configuration.showNothingWhenSysmap))) { AddColText(0, 0, rowpos, rowheight, (uistate == UIState.GalMap) ? "Galaxy Map" : "System Map", textcolour, backcolour, null); } else { string name; Point3D tpos; bool targetpresent = TargetClass.GetTargetPosition(out name, out tpos); ISystem currentsystem = hl.CurrentSystem; // may be null HistoryEntry last = hl.GetLast; if (Config(Configuration.showSystemInformation) && last != null) { string allegiance, economy, gov, faction, factionstate, security; hl.ReturnSystemInfo(last, out allegiance, out economy, out gov, out faction, out factionstate, out security); string str = last.System.Name + " : " + BaseUtils.FieldBuilder.Build( "", faction, "", factionstate, "", security, "", allegiance, "", economy, "", gov ); HistoryEntry lastfsd = hl.GetLastHistoryEntry(x => x.journalEntry is EliteDangerousCore.JournalEvents.JournalFSDJump, last); bool firstdiscovery = (lastfsd != null && (lastfsd.journalEntry as EliteDangerousCore.JournalEvents.JournalFSDJump).EDSMFirstDiscover); AddColText(0, 0, rowpos, rowheight, str, textcolour, backcolour, null, firstdiscovery ? EDDiscovery.Icons.Controls.firstdiscover : null, "Shows if EDSM indicates your it's first discoverer"); rowpos += rowheight; } if (Config(Configuration.showHabInformation) && last != null) { StarScan scan = hl.starscan; StarScan.SystemNode sn = scan.FindSystem(last.System, true); // EDSM look up here.. string res = null; if (sn != null && sn.starnodes.Count > 0 && sn.starnodes.Values[0].ScanData != null) { JournalScan js = sn.starnodes.Values[0].ScanData; res = js.HabZoneString().Replace("\r\n", " "); } if (res != null) { AddColText(0, 0, rowpos, rowheight, res, textcolour, backcolour, null); rowpos += rowheight; } } if (targetpresent && Config(Configuration.showTargetLine) && currentsystem != null) { string dist = (currentsystem.HasCoordinate) ? currentsystem.Distance(tpos.X, tpos.Y, tpos.Z).ToString("0.00") : "Unknown"; AddColText(0, 0, rowpos, rowheight, "Target: " + name + " @ " + dist + " ly", textcolour, backcolour, null); rowpos += rowheight; } foreach (HistoryEntry rhe in result) { DrawHistoryEntry(rhe, rowpos, rowheight, tpos, textcolour, backcolour); rowpos += rowheight; if (rowpos > ClientRectangle.Height) // stop when off of screen { break; } } } } DrawScanText(false, textcolour, backcolour); // go 2 } pictureBox.Render(); }