private void RomGridColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) { if (romGrid == null) { return; } if (RomGrid.Columns[e.ColumnIndex].SortMode == DataGridViewColumnSortMode.NotSortable) { return; } if (romSortIndex != e.ColumnIndex) { if (romSortIndex >= 0) { RomGrid.Columns[romSortIndex].HeaderCell.SortGlyphDirection = SortOrder.None; } romSortIndex = e.ColumnIndex; romSortDir = SortOrder.Ascending; } else { romSortDir = romSortDir == SortOrder.Ascending ? SortOrder.Descending : SortOrder.Ascending; } RomGrid.Columns[romSortIndex].HeaderCell.SortGlyphDirection = romSortDir; Debug.WriteLine($"Sort in {romSortIndex} dir {romSortDir}"); IComparer <RvFile> t = new RomUiCompare(e.ColumnIndex, romSortDir); Array.Sort(romGrid, t); RomGrid.Refresh(); }
public FrmMain() { InitializeComponent(); AddGameMetaData(); Text = $@"RomVault ({Program.StrVersion})"; if (Settings.rvSettings.zstd) { Text += " -using ZSTD"; } Text += $@" {Application.StartupPath}"; Type dgvType = GameGrid.GetType(); PropertyInfo pi = dgvType.GetProperty("DoubleBuffered", BindingFlags.Instance | BindingFlags.NonPublic); pi.SetValue(GameGrid, true, null); dgvType = RomGrid.GetType(); pi = dgvType.GetProperty("DoubleBuffered", BindingFlags.Instance | BindingFlags.NonPublic); pi.SetValue(RomGrid, true, null); _displayColor = new Color[(int)RepStatus.EndValue]; _fontColor = new Color[(int)RepStatus.EndValue]; // RepStatus.UnSet _displayColor[(int)RepStatus.UnScanned] = CBlue; _displayColor[(int)RepStatus.DirCorrect] = CGreen; _displayColor[(int)RepStatus.DirMissing] = CRed; _displayColor[(int)RepStatus.DirCorrupt] = CBrightRed; //BrightRed _displayColor[(int)RepStatus.Missing] = CRed; _displayColor[(int)RepStatus.Correct] = CGreen; _displayColor[(int)RepStatus.NotCollected] = CGrey; _displayColor[(int)RepStatus.UnNeeded] = CCyanGrey; _displayColor[(int)RepStatus.Unknown] = CCyan; _displayColor[(int)RepStatus.InToSort] = CMagenta; _displayColor[(int)RepStatus.Corrupt] = CBrightRed; //BrightRed _displayColor[(int)RepStatus.Ignore] = CGreyBlue; _displayColor[(int)RepStatus.CanBeFixed] = CYellow; _displayColor[(int)RepStatus.MoveToSort] = CPurple; _displayColor[(int)RepStatus.Delete] = CBrown; _displayColor[(int)RepStatus.NeededForFix] = COrange; _displayColor[(int)RepStatus.Rename] = COrange; _displayColor[(int)RepStatus.CorruptCanBeFixed] = CYellow; _displayColor[(int)RepStatus.MoveToCorrupt] = CPurple; //Missing _displayColor[(int)RepStatus.Deleted] = CWhite; for (int i = 0; i < (int)RepStatus.EndValue; i++) { _fontColor[i] = Contrasty(_displayColor[i]); } _gameGridColumnXPositions = new int[(int)RepStatus.EndValue]; ctrRvTree.Setup(ref DB.DirRoot); splitContainer3_Panel1_Resize(new object(), new EventArgs()); splitContainer4_Panel1_Resize(new object(), new EventArgs()); _mnuContext = new ContextMenuStrip(); ToolStripMenuItem mnuScan1 = new ToolStripMenuItem { Text = @"Scan Quick (Headers Only)", Tag = EScanLevel.Level1 }; ToolStripMenuItem mnuScan2 = new ToolStripMenuItem { Text = @"Scan", Tag = EScanLevel.Level2 }; ToolStripMenuItem mnuScan3 = new ToolStripMenuItem { Text = @"Scan Full (Complete Re-Scan)", Tag = EScanLevel.Level3 }; ToolStripMenuItem mnuFile = new ToolStripMenuItem { Text = @"Set Dir Settings", Tag = null }; _mnuOpen = new ToolStripMenuItem { Text = @"Open Directory", Tag = null }; ToolStripMenuItem mnuFixDat = new ToolStripMenuItem { Text = @"Create Fix DATs", Tag = null }; ToolStripMenuItem mnuMakeDat = new ToolStripMenuItem { Text = @"Make Dat with CHDs as disk", Tag = null }; ToolStripMenuItem mnuMakeDat2 = new ToolStripMenuItem { Text = @"Make Dat with CHDs as rom", Tag = null }; _mnuContext.Items.Add(mnuScan2); _mnuContext.Items.Add(mnuScan1); _mnuContext.Items.Add(mnuScan3); _mnuContext.Items.Add(mnuFile); _mnuContext.Items.Add("-"); _mnuContext.Items.Add(_mnuOpen); _mnuContext.Items.Add(mnuFixDat); _mnuContext.Items.Add(mnuMakeDat); _mnuContext.Items.Add(mnuMakeDat2); mnuScan1.Click += MnuScan; mnuScan2.Click += MnuScan; mnuScan3.Click += MnuScan; mnuFile.Click += MnuFileClick; _mnuOpen.Click += MnuOpenClick; mnuFixDat.Click += MnuMakeFixDatClick; mnuMakeDat.Click += MnuMakeDatClick; mnuMakeDat2.Click += MnuMakeDat2Click; _mnuContextToSort = new ContextMenuStrip(); ToolStripMenuItem mnuToSortScan1 = new ToolStripMenuItem { Text = @"Scan Quick (Headers Only)", Tag = EScanLevel.Level1 }; ToolStripMenuItem mnuToSortScan2 = new ToolStripMenuItem { Text = @"Scan", Tag = EScanLevel.Level2 }; ToolStripMenuItem mnuToSortScan3 = new ToolStripMenuItem { Text = @"Scan Full (Complete Re-Scan)", Tag = EScanLevel.Level3 }; _mnuToSortOpen = new ToolStripMenuItem { Text = @"Open ToSort Directory", Tag = null }; _mnuToSortDelete = new ToolStripMenuItem { Text = @"Remove", Tag = null }; _mnuToSortSetPrimary = new ToolStripMenuItem { Text = @"Set To Primary ToSort", Tag = null }; _mnuToSortSetCache = new ToolStripMenuItem { Text = @"Set To Cache ToSort", Tag = null }; _mnuContextToSort.Items.Add(mnuToSortScan2); _mnuContextToSort.Items.Add(mnuToSortScan1); _mnuContextToSort.Items.Add(mnuToSortScan3); _mnuContextToSort.Items.Add(_mnuToSortOpen); _mnuContextToSort.Items.Add(_mnuToSortDelete); _mnuContextToSort.Items.Add(_mnuToSortSetPrimary); _mnuContextToSort.Items.Add(_mnuToSortSetCache); mnuToSortScan1.Click += MnuScan; mnuToSortScan2.Click += MnuScan; mnuToSortScan3.Click += MnuScan; _mnuToSortOpen.Click += MnuToSortOpen; _mnuToSortDelete.Click += MnuToSortDelete; _mnuToSortSetPrimary.Click += MnuToSortSetPrimary; _mnuToSortSetCache.Click += MnuToSortSetCache; chkBoxShowCorrect.Checked = Settings.rvSettings.chkBoxShowCorrect; chkBoxShowMissing.Checked = Settings.rvSettings.chkBoxShowMissing; chkBoxShowFixed.Checked = Settings.rvSettings.chkBoxShowFixed; chkBoxShowMerged.Checked = Settings.rvSettings.chkBoxShowMerged; TabArtworkInitialize(); }
private void RomGrid_SelectionChanged(object sender, EventArgs e) { RomGrid.ClearSelection(); }
private void RomGridMouseUp(object sender, MouseEventArgs e) { if (e == null || e.Button == MouseButtons.Left) { var hitTest = RomGrid.HitTest(e.X, e.Y); if (hitTest.ColumnIndex != (int)eRomGrid.DupeCount) { return; } if (hitTest.RowIndex < 0) { return; } RvFile tFile = romGrid[hitTest.RowIndex]; FrmRomInfo fri = new FrmRomInfo(); fri.SetRom(tFile); fri.ShowDialog(); return; } if (e == null || e.Button != MouseButtons.Right) { return; } int currentMouseOverRow = RomGrid.HitTest(e.X, e.Y).RowIndex; if (currentMouseOverRow < 0) { return; } string name = (RomGrid.Rows[currentMouseOverRow].Cells[1].Value ?? "").ToString(); string size = (RomGrid.Rows[currentMouseOverRow].Cells[3].Value ?? "").ToString(); if (size.Contains(" ")) { size = size.Substring(0, size.IndexOf(" ")); } string crc = (RomGrid.Rows[currentMouseOverRow].Cells[4].Value ?? "").ToString(); if (crc.Length > 8) { crc = crc.Substring(0, 8); } string sha1 = (RomGrid.Rows[currentMouseOverRow].Cells[5].Value ?? "").ToString(); if (sha1.Length > 40) { sha1 = sha1.Substring(0, 40); } string md5 = (RomGrid.Rows[currentMouseOverRow].Cells[6].Value ?? "").ToString(); if (md5.Length > 32) { md5 = md5.Substring(0, 32); } string clipText = "Name : " + name + Environment.NewLine; clipText += "Size : " + size + Environment.NewLine; clipText += "CRC32: " + crc + Environment.NewLine; if (sha1.Length > 0) { clipText += "SHA1 : " + sha1 + Environment.NewLine; } if (md5.Length > 0) { clipText += "MD5 : " + md5 + Environment.NewLine; } try { Clipboard.Clear(); Clipboard.SetText(clipText); } catch { } }