dbman: initial pass at gamedb export function

This commit is contained in:
beirich 2014-03-13 03:35:14 +00:00
parent 6538a5ad75
commit 102f476158
3 changed files with 105 additions and 37 deletions

View File

@ -41,6 +41,8 @@
this.romListColumnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.romListColumnHeader5 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.detailPanel = new System.Windows.Forms.Panel();
this.sizeLabel = new System.Windows.Forms.Label();
this.sizeBox = new System.Windows.Forms.TextBox();
this.notesLabel = new System.Windows.Forms.Label();
this.notesBox = new System.Windows.Forms.TextBox();
this.altNamesLabel = new System.Windows.Forms.Label();
@ -85,8 +87,7 @@
this.databaseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.directoryScanToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.cleanupDBToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.sizeBox = new System.Windows.Forms.TextBox();
this.sizeLabel = new System.Windows.Forms.Label();
this.exportGameDBToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.filterPanel.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
@ -180,7 +181,6 @@
this.romListView.UseCompatibleStateImageBehavior = false;
this.romListView.View = System.Windows.Forms.View.Details;
this.romListView.SelectedIndexChanged += new System.EventHandler(this.selectedRomChanged);
this.romListView.MouseUp += new System.Windows.Forms.MouseEventHandler(this.selectedRomMouseUp);
//
// romListColumnHeader1
//
@ -256,6 +256,23 @@
this.detailPanel.Size = new System.Drawing.Size(467, 624);
this.detailPanel.TabIndex = 0;
//
// sizeLabel
//
this.sizeLabel.AutoSize = true;
this.sizeLabel.Location = new System.Drawing.Point(6, 557);
this.sizeLabel.Name = "sizeLabel";
this.sizeLabel.Size = new System.Drawing.Size(27, 13);
this.sizeLabel.TabIndex = 50;
this.sizeLabel.Text = "Size";
//
// sizeBox
//
this.sizeBox.Location = new System.Drawing.Point(80, 557);
this.sizeBox.Name = "sizeBox";
this.sizeBox.ReadOnly = true;
this.sizeBox.Size = new System.Drawing.Size(255, 20);
this.sizeBox.TabIndex = 49;
//
// notesLabel
//
this.notesLabel.AutoSize = true;
@ -640,7 +657,8 @@
//
this.databaseToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.directoryScanToolStripMenuItem,
this.cleanupDBToolStripMenuItem});
this.cleanupDBToolStripMenuItem,
this.exportGameDBToolStripMenuItem});
this.databaseToolStripMenuItem.Name = "databaseToolStripMenuItem";
this.databaseToolStripMenuItem.Size = new System.Drawing.Size(67, 20);
this.databaseToolStripMenuItem.Text = "Database";
@ -648,33 +666,23 @@
// directoryScanToolStripMenuItem
//
this.directoryScanToolStripMenuItem.Name = "directoryScanToolStripMenuItem";
this.directoryScanToolStripMenuItem.Size = new System.Drawing.Size(150, 22);
this.directoryScanToolStripMenuItem.Size = new System.Drawing.Size(156, 22);
this.directoryScanToolStripMenuItem.Text = "Directory Scan";
this.directoryScanToolStripMenuItem.Click += new System.EventHandler(this.directoryScanToolStripMenuItem_Click);
//
// cleanupDBToolStripMenuItem
//
this.cleanupDBToolStripMenuItem.Name = "cleanupDBToolStripMenuItem";
this.cleanupDBToolStripMenuItem.Size = new System.Drawing.Size(150, 22);
this.cleanupDBToolStripMenuItem.Size = new System.Drawing.Size(156, 22);
this.cleanupDBToolStripMenuItem.Text = "Cleanup DB";
this.cleanupDBToolStripMenuItem.Click += new System.EventHandler(this.cleanupDBToolStripMenuItem_Click);
//
// sizeBox
// exportGameDBToolStripMenuItem
//
this.sizeBox.Location = new System.Drawing.Point(80, 557);
this.sizeBox.Name = "sizeBox";
this.sizeBox.ReadOnly = true;
this.sizeBox.Size = new System.Drawing.Size(255, 20);
this.sizeBox.TabIndex = 49;
//
// sizeLabel
//
this.sizeLabel.AutoSize = true;
this.sizeLabel.Location = new System.Drawing.Point(6, 557);
this.sizeLabel.Name = "sizeLabel";
this.sizeLabel.Size = new System.Drawing.Size(27, 13);
this.sizeLabel.TabIndex = 50;
this.sizeLabel.Text = "Size";
this.exportGameDBToolStripMenuItem.Name = "exportGameDBToolStripMenuItem";
this.exportGameDBToolStripMenuItem.Size = new System.Drawing.Size(156, 22);
this.exportGameDBToolStripMenuItem.Text = "Export GameDB";
this.exportGameDBToolStripMenuItem.Click += new System.EventHandler(this.exportGameDBToolStripMenuItem_Click);
//
// DBMan_MainForm
//
@ -764,6 +772,7 @@
private System.Windows.Forms.TextBox notesBox;
private System.Windows.Forms.Label sizeLabel;
private System.Windows.Forms.TextBox sizeBox;
private System.Windows.Forms.ToolStripMenuItem exportGameDBToolStripMenuItem;
}
}

View File

@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;
@ -83,8 +84,6 @@ namespace BizHawk.Client.DBMan
}
}
bool RomChanged;
void selectedRomChanged(object sender, EventArgs e)
{
if (RomChangesMade())
@ -94,14 +93,6 @@ namespace BizHawk.Client.DBMan
saveButton_Click(null, null);
SelectedRom = null;
}
RomChanged = true;
}
void selectedRomMouseUp(object sender, MouseEventArgs e)
{
if (RomChanged == false) return;
RomChanged = false;
if (romListView.SelectedItems.Count == 0)
{
@ -134,13 +125,30 @@ namespace BizHawk.Client.DBMan
notesBox.Text = rom.Game.Notes;
detailPanel.Visible = true;
// nameBox.Focus();
}
void cancelButton_Click(object sender, EventArgs e)
{
RomChanged = true;
selectedRomMouseUp(null, null);
gameSystemBox.Text = SelectedRom.System;
nameBox.Text = SelectedRom.Name;
crcBox.Text = SelectedRom.CRC32;
md5Box.Text = SelectedRom.MD5;
sha1Box.Text = SelectedRom.SHA1;
sizeBox.Text = SelectedRom.SizeFriendly;
regionBox.Text = SelectedRom.Region;
versionBox.Text = SelectedRom.VersionTags;
gameMetaBox.Text = SelectedRom.Game.GameMetadata;
romMetaBox.Text = SelectedRom.RomMetadata;
tagsBox.Text = SelectedRom.Game.Tags;
romStatusBox.Text = SelectedRom.RomStatus;
developerBox.Text = SelectedRom.Game.Developer;
publisherBox.Text = SelectedRom.Game.Publisher;
classificationBox.Text = SelectedRom.Game.Classification;
releaseDateBox.Text = SelectedRom.Game.ReleaseDate;
playersBox.Text = SelectedRom.Game.Players;
catalogBox.Text = SelectedRom.Catalog;
altNamesBox.Text = SelectedRom.Game.AltNames;
notesBox.Text = SelectedRom.Game.Notes;
}
void saveButton_Click(object sender, EventArgs e)
@ -267,5 +275,59 @@ namespace BizHawk.Client.DBMan
DB.Cleanup();
MessageBox.Show("Orphaned GAME records deleted and Sqlite VACUUM performed.");
}
void exportGameDBToolStripMenuItem_Click(object sender, EventArgs e)
{
var sfd = new SaveFileDialog();
sfd.DefaultExt = ".txt";
sfd.AddExtension = true;
var result = sfd.ShowDialog();
if (result == System.Windows.Forms.DialogResult.Cancel)
return;
var tw = new StreamWriter(sfd.FileName);
loadRomsForSelectedSystem();
foreach (var rom in DB.Roms)
{
string romCode = "";
if (rom.Game.Classification == "Homebrew") romCode = "D";
if (rom.RomStatus == "Overdump") romCode = "O";
if (rom.RomStatus == "Bad Dump") romCode = "V";
string regionStr = "";
if (rom.Region != null)
{
if (rom.Region.IndexOf("Japan") >= 0) regionStr += "J";
if (rom.Region.IndexOf("USA") >= 0) regionStr += "U";
if (rom.Region.IndexOf("Europe") >= 0) regionStr += "E";
if (rom.Region.IndexOf("Brazil") >= 0) regionStr += "Br";
if (rom.Region.IndexOf("Taiwan") >= 0) regionStr += "Tw";
if (rom.Region.IndexOf("Korea") >= 0) regionStr += "Kr";
if (rom.Region.IndexOf("Australia") >= 0) regionStr += "Aus";
if (rom.Region.IndexOf("World") >= 0) regionStr += "W";
}
string romName = rom.Name;
if (regionStr.Length > 0)
romName += " ("+regionStr+")";
string versionStr = "";
if (rom.VersionTags != null)
{
var versions = rom.VersionTags.Split(';');
foreach (var version in versions)
{
if (version.Trim().Length == 0)
continue;
romName += " (" + version + ")";
}
}
tw.WriteLine("{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}", rom.MD5, romCode, romName, rom.System, rom.Game.Tags, rom.CombinedMetaData, rom.Region);
}
tw.Close();
}
}
}

View File

@ -120,9 +120,6 @@
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="mainMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>132, 17</value>
</metadata>