• R/O
  • SSH
  • HTTPS

customtool: 提交


Commit MetaInfo

修订版4 (tree)
时间2014-03-15 00:13:46
作者hogepiyo

Log Message

TBNファイルをチェックするよう変更

更改概述

差异

--- TSOSorter/Source/TDCG/TDCGExplorer.cs (revision 3)
+++ TSOSorter/Source/TDCG/TDCGExplorer.cs (revision 4)
@@ -89,7 +89,7 @@
8989 * */
9090 public static string GetAppDataPath()
9191 {
92- return "TechArts3D\\TDCG\\TSOSorter";
92+ return "TechArts3D\\TDCG\\TBNSorter";
9393 }
9494 public static SystemDatabase SystemDB
9595 {
@@ -181,10 +181,10 @@
181181 Thread thread = new Thread(new ThreadStart(cdb.Run));
182182 thread.Start();
183183 }
184- internal static void CreateNewFileDatabase()
184+/* internal static void CreateNewFileDatabase()
185185 {
186186 TDCGExplorer.insertFileViews();
187- }
187+ }*/
188188 // データベースがビルド済みならツリーを展開する.
189189 public static void IfReadyDbDisplayArcsDB()
190190 {
@@ -292,6 +292,7 @@
292292 TDCGExplorer.DecBusy();
293293
294294 Program.MainFormWindow.asyncDisplayFromArcs(); // 表示更新.
295+ Program.MainFormWindow.asyncRefreshFileView(); // FileViewer更新
295296
296297 }
297298 }
--- TSOSorter/Source/TextResource.Designer.cs (revision 3)
+++ TSOSorter/Source/TextResource.Designer.cs (revision 4)
@@ -1906,6 +1906,15 @@
19061906 }
19071907
19081908 /// <summary>
1909+ /// TBN接頭辞 に類似しているローカライズされた文字列を検索します。
1910+ /// </summary>
1911+ public static string TBNHead {
1912+ get {
1913+ return ResourceManager.GetString("TBNHead", resourceCulture);
1914+ }
1915+ }
1916+
1917+ /// <summary>
19091918 /// tbnの読み込みでエラーが発生しました。 に類似しているローカライズされた文字列を検索します。
19101919 /// </summary>
19111920 public static string TBNReadError {
@@ -1987,15 +1996,6 @@
19871996 }
19881997
19891998 /// <summary>
1990- /// TSO接頭辞 に類似しているローカライズされた文字列を検索します。
1991- /// </summary>
1992- public static string TSOHead {
1993- get {
1994- return ResourceManager.GetString("TSOHead", resourceCulture);
1995- }
1996- }
1997-
1998- /// <summary>
19991999 /// 新規TSOロード時、カメラ設定をリセットする に類似しているローカライズされた文字列を検索します。
20002000 /// </summary>
20012001 public static string TSOLoadBehavior {
@@ -2005,7 +2005,7 @@
20052005 }
20062006
20072007 /// <summary>
2008- /// tsoクリックで単体表示,ctrlキー+tsoクリックで複数表示,tmoでポーズ・アニメーションを設定 に類似しているローカライズされた文字列を検索します。
2008+ /// tso/tbnクリックでPSD表示 に類似しているローカライズされた文字列を検索します。
20092009 /// </summary>
20102010 public static string TSOMessage {
20112011 get {
--- TSOSorter/Source/TAHViewer.cs (revision 3)
+++ TSOSorter/Source/TAHViewer.cs (revision 4)
@@ -87,12 +87,17 @@
8787
8888 }
8989
90- public void Setup(GenericTahInfo entryInfo, List<ArcsTahFilesEntry> filesentries)
90+ /** セットアップ
91+ * */
92+ public void Setup(GenericTahInfo entryInfo, List<ArcsTahFilesEntry> filesentries, string strPartType)
9193 {
9294 info = entryInfo;
9395 filesEntries = filesentries;
9496
9597 DataTable data = setupTable();
98+ int nIndex = 0; // 指定パーツに対応するTSOのインデックス値
99+ bool bIsFound = false; // 見つかった
100+ int nCounter = 0; // インデックス記録用カウンタ
96101 // 追加
97102 foreach (ArcsTahFilesEntry file in filesentries)
98103 {
@@ -100,12 +105,28 @@
100105 string[] content = { file.tahentry.ToString(), file.GetDisplayPath(), Path.GetExtension(file.path), file.hash.ToString("x8"), file.length.ToString(), TDCGTbnUtil.GetCategoryText(file.GetDisplayPath()) };
101106 row.ItemArray = content;
102107 data.Rows.Add(row);
108+
109+ if (!bIsFound)
110+ {
111+ if (Path.GetFileName(file.path).Substring(9, 1) == strPartType)
112+ {
113+ nIndex = nCounter;
114+ bIsFound = true;
115+ }
116+ }
117+ nCounter ++;
103118 }
104119 dataGridView1.DataSource = data;
120+ dataGridView1.CurrentCell = dataGridView1.Rows[nIndex].Cells[0];
105121
106- LoadPsdFile(0);
122+ // PSDファイルをセットアップ
123+ LoadPsdFile(nIndex);
107124 TSOSorter.TDCGExplorer.SetToolTips(info.shortname + " : " + TextResource.TSOMessage);
108125 }
126+
127+ /** PSDサムネ表示
128+ * @param[in] index ArcsTahFilesEntriesのインデックス値
129+ * */
109130 private void LoadPsdFile(int index)
110131 {
111132 try
--- TSOSorter/Source/FileViewer.cs (revision 3)
+++ TSOSorter/Source/FileViewer.cs (revision 4)
@@ -50,7 +50,7 @@
5050 data.Columns.Add(TSOSorter.TextResource.Directory, Type.GetType("System.String"));
5151 // TAH File Name
5252 data.Columns.Add(TSOSorter.TextResource.Filename, Type.GetType("System.String"));
53- data.Columns.Add(TSOSorter.TextResource.TSOHead, Type.GetType("System.String"));
53+ data.Columns.Add(TSOSorter.TextResource.TBNHead, Type.GetType("System.String"));
5454 data.Columns.Add(TSOSorter.TextResource.Category , Type.GetType("System.String"));
5555 return data;
5656 }
@@ -72,7 +72,6 @@
7272 this.dataGridView1.AllowUserToAddRows = false;
7373 this.dataGridView1.AllowUserToDeleteRows = false;
7474 this.dataGridView1.AllowUserToResizeRows = false;
75- this.dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells;
7675 this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
7776 this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill;
7877 this.dataGridView1.Location = new System.Drawing.Point(0, 0);
@@ -118,7 +117,7 @@
118117 public string[] getFileRow(int nFileRowID, FileDatabase filedb, string strPartType)
119118 {
120119 FileEntry fileEntry = filedb.getFileEntry( nFileRowID );
121- TSONameEntry tsoNameEntry = filedb.getFirstTSONameEntry( nFileRowID, strPartType );
120+ TbnEntry tsoNameEntry = filedb.getFirstTBNNameEntry( nFileRowID, strPartType );
122121 if (tsoNameEntry == null)
123122 {
124123 return null;
@@ -127,29 +126,41 @@
127126 return content;
128127 }
129128
130- /** dataGridViewのセルをクリック
129+ /** クリック時の動作
131130 * */
132- private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
131+ public void doAfterSelectRow(int nIndex)
133132 {
134133 try
135134 {
136- if (e.RowIndex < 0)
135+ if (nIndex < 0)
137136 {
138137 return;
139138 }
140139
140+ // グリッド情報取得
141141 System.Windows.Forms.DataGridViewRow dgr = dataGridView1.CurrentRow;
142142 System.Data.DataRowView drv = (System.Data.DataRowView)dgr.DataBoundItem;
143143 System.Data.DataRow dr = (System.Data.DataRow)drv.Row;
144144 int nFileRowID = int.Parse(dr.ItemArray[0].ToString());
145145
146+ // get current category
147+ string strPartType = Program.MainFormWindow.getCategoryStringFromComboBoxPartsType();
146148 if (nFileRowID >= 0)
147149 {
148150 FileEntry fileEntry = TSOSorter.TDCGExplorer.FileDB.getFileEntry(nFileRowID);
149151 ArcsTahEntry entry = TSOSorter.TDCGExplorer.ArcsDB.GetTah(fileEntry.m_strPath);
150152 GenericArcsTahInfo info = new GenericArcsTahInfo(entry);
153+ // TAHViewをセットアップ
151154 Program.MainFormWindow.TAHViewer.Setup(info,
152- TSOSorter.TDCGExplorer.ArcsDB.GetTahFilesPath(entry.id));
155+ TSOSorter.TDCGExplorer.ArcsDB.GetTahFilesPath(entry.id), strPartType);
156+
157+ // ファイル情報を右上のパネルに表示
158+ string strInfo = "";
159+ strInfo += "Relational Path:" + fileEntry.m_strPath + System.Environment.NewLine;
160+ strInfo += "TAH ID:" + entry.id + System.Environment.NewLine;
161+ //strInfo += "DateTime" + entry.datetime;
162+ strInfo += "TAH Version" + info.version + System.Environment.NewLine;
163+ Program.MainFormWindow.TextBoxFileInfo.Text = strInfo;
153164 }
154165 }
155166 catch (Exception ex)
@@ -157,6 +168,12 @@
157168 Debug.WriteLine(ex.Message);
158169 }
159170 }
171+ /** dataGridViewのセルをクリック
172+ * */
173+ private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
174+ {
175+ doAfterSelectRow(e.RowIndex);
176+ }
160177
161178
162179 }
--- TSOSorter/Source/FileDatabase.cs (revision 3)
+++ TSOSorter/Source/FileDatabase.cs (revision 4)
@@ -18,17 +18,17 @@
1818 }
1919 /** File -> TSOのリレーション( File : TSO = 1 : 多 )
2020 * */
21- public class FileTSORel
21+ public class FileTbnRel
2222 {
2323 public int m_nRowID;
2424 public int m_nFileRowID;
25- public int m_nTSORowID;
25+ public int m_nTBNRowID;
2626 }
2727 /** 中に含まれるTSO名エントリ
2828 * */
29- public class TSONameEntry
29+ public class TbnEntry
3030 {
31- public string m_strTSOName; // NXXXXXXX_*99.tsoの拡張子以外
31+ public string m_strTBNName; // NXXXXXXX_*99.tbnの拡張子以外
3232 // public int m_nRowID;
3333 public string m_strTypeString; // type
3434 public string m_strMODName; // NXXXXXXX_*99の"NXXXXXXX"部分
@@ -78,12 +78,12 @@
7878 }*/
7979 /** 一個目のTSO名を取得
8080 * */
81- public TSONameEntry getFirstTSONameEntry(int nFileRowID, string strPartType)
81+ public TbnEntry getFirstTBNNameEntry(int nFileRowID, string strPartType)
8282 {
83- TSONameEntry entry = null;
83+ TbnEntry entry = null;
8484 using (SQLiteCommand cmd = cnn.CreateCommand())
8585 {
86- cmd.CommandText = "SELECT DISTINCT Tsos.TSONAME,Tsos.MODNAME FROM Files,Rels,Tsos WHERE Files.ROWID=Rels.FILEROWID AND Rels.TSOROWID=Tsos.ROWID AND Files.ROWID=@filerowid AND Tsos.Type=@type";
86+ cmd.CommandText = "SELECT DISTINCT Tbns.TBNNAME,Tbns.MODNAME FROM Files,Rels,Tbns WHERE Files.ROWID=Rels.FILEROWID AND Rels.TBNROWID=Tbns.ROWID AND Files.ROWID=@filerowid AND Tbns.Type=@type";
8787 cmd.Parameters.AddWithValue( "filerowid", nFileRowID );
8888 cmd.Parameters.AddWithValue( "type", strPartType);
8989 using (SQLiteDataReader reader = cmd.ExecuteReader())
@@ -90,8 +90,8 @@
9090 {
9191 while (reader.Read())
9292 {
93- entry = new TSONameEntry();
94- entry.m_strTSOName = reader[0].ToString();
93+ entry = new TbnEntry();
94+ entry.m_strTBNName = reader[0].ToString();
9595 entry.m_strMODName = reader[1].ToString();
9696 entry.m_strTypeString = strPartType;
9797 break;
@@ -130,7 +130,7 @@
130130 {
131131 cmd.CommandText = "DELETE FROM Files";
132132 cmd.ExecuteNonQuery();
133- cmd.CommandText = "DELETE FROM Tsos";
133+ cmd.CommandText = "DELETE FROM Tbns";
134134 cmd.ExecuteNonQuery();
135135 cmd.CommandText = "DELETE FROM Rels";
136136 cmd.ExecuteNonQuery();
@@ -165,7 +165,7 @@
165165 {
166166 using (SQLiteCommand cmd = cnn.CreateCommand())
167167 {
168- cmd.CommandText = "CREATE TABLE Tsos (TSONAME TEXT, TYPE TEXT, MODNAME TEXT)";
168+ cmd.CommandText = "CREATE TABLE Tbns (TBNNAME TEXT, MODNAME TEXT, TYPE TEXT)";
169169 cmd.ExecuteNonQuery();
170170 }
171171 }
@@ -179,7 +179,7 @@
179179 {
180180 using (SQLiteCommand cmd = cnn.CreateCommand())
181181 {
182- cmd.CommandText = "CREATE TABLE Rels (FILEROWID INTEGER, TSOROWID INTEGER)";
182+ cmd.CommandText = "CREATE TABLE Rels (FILEROWID INTEGER, TBNROWID INTEGER)";
183183 cmd.ExecuteNonQuery();
184184 }
185185 }
@@ -243,13 +243,13 @@
243243 * @retval 0以上 挿入したエントリのRowID
244244 * -1 何らかの理由により追加できなかった
245245 * */
246- public int AddTSOName(int nFileRowID, TSONameEntry entry)
246+ public int AddTBN(int nFileRowID, TbnEntry entry)
247247 {
248- int nTsoRowID = -1;
248+ int nTbnRowID = -1;
249249 using (SQLiteCommand cmd = cnn.CreateCommand())
250250 {
251- cmd.CommandText = "INSERT INTO Tsos (TSONAME,MODNAME,TYPE) VALUES(@tsoname,@modname,@type)";
252- cmd.Parameters.AddWithValue("tsoname", entry.m_strTSOName);
251+ cmd.CommandText = "INSERT INTO Tbns (TBNNAME,MODNAME,TYPE) VALUES(@tbnname,@modname,@type)";
252+ cmd.Parameters.AddWithValue("tbnname", entry.m_strTBNName);
253253 cmd.Parameters.AddWithValue("modname", entry.m_strMODName);
254254 cmd.Parameters.AddWithValue("type", entry.m_strTypeString);
255255 cmd.ExecuteNonQuery();
@@ -260,7 +260,7 @@
260260 {
261261 while (reader.Read())
262262 {
263- nTsoRowID = Int16.Parse(reader[0].ToString());
263+ nTbnRowID = Int16.Parse(reader[0].ToString());
264264 break;
265265 }
266266 }
@@ -271,21 +271,21 @@
271271
272272 // cmd.Parameters.AddWithValue("hash", entry.m_nHash);
273273 }
274- if (nTsoRowID < 0)
274+ if (nTbnRowID < 0)
275275 {
276- return nTsoRowID;
276+ return nTbnRowID;
277277 }
278278 // 関係性を追加
279279 using (SQLiteCommand cmd = cnn.CreateCommand())
280280 {
281281
282- cmd.CommandText = "INSERT INTO Rels (FILEROWID,TSOROWID) VALUES(@filerowid,@tsorowid)";
282+ cmd.CommandText = "INSERT INTO Rels (FILEROWID,TBNROWID) VALUES(@filerowid,@tbnrowid)";
283283 cmd.Parameters.AddWithValue("filerowid", nFileRowID);
284- cmd.Parameters.AddWithValue("tsorowid", nTsoRowID);
284+ cmd.Parameters.AddWithValue("tbnrowid", nTbnRowID);
285285 cmd.ExecuteNonQuery();
286286
287287 }
288- return nTsoRowID;
288+ return nTbnRowID;
289289 }
290290 /** ファイルハッシュ一覧を取得
291291 * */
@@ -304,7 +304,8 @@
304304 }
305305 else
306306 {
307- cmd.CommandText = "SELECT DISTINCT Files.ROWID FROM Files,Rels,Tsos WHERE Files.ROWID=Rels.FILEROWID AND Rels.TSOROWID=Tsos.ROWID ORDER BY Tsos.MODNAME";
307+ cmd.CommandText = "SELECT DISTINCT Files.ROWID FROM Files,Rels,Tbns WHERE Files.ROWID=Rels.FILEROWID AND Rels.TBNROWID=Tbns.ROWID AND Tbns.TYPE=@type ORDER BY Tbns.MODNAME";
308+ cmd.Parameters.AddWithValue("@type", strPartsType);
308309 }
309310 break;
310311 }
--- TSOSorter/Source/FileDump.cs (revision 3)
+++ TSOSorter/Source/FileDump.cs (revision 4)
@@ -99,23 +99,23 @@
9999 {
100100 TDCGExplorer.SetToolTips("Dump " + ent.FileName + " file");
101101 }
102- // if .TSOファイル以外
103- if( Path.GetExtension( ent.FileName ).ToLower() != ".tso") {
102+ // if .TBNファイル以外
103+ if( Path.GetExtension( ent.FileName ).ToLower() != ".tbn") {
104104 // skip
105105 continue;
106106 }
107- // if data/model配下以外(背景など
108- if( ! ent.FileName.StartsWith("data/model" ) ) {
107+ // script/items配下のもののみ
108+ if( ! ent.FileName.StartsWith("script/items" ) ) {
109109 continue;
110110 }
111- TSONameEntry tsoentry = new TSONameEntry();
111+ TbnEntry tsoentry = new TbnEntry();
112112 // 「NXXXXXXX_A99」
113- tsoentry.m_strTSOName = Path.GetFileNameWithoutExtension(ent.FileName );
113+ tsoentry.m_strTBNName = Path.GetFileNameWithoutExtension(ent.FileName );
114114 // 「NXXXXXXX_」
115115 tsoentry.m_strMODName = Path.GetFileName(ent.FileName).Substring(0,9 );
116116 // 「A」
117117 tsoentry.m_strTypeString = Path.GetFileName(ent.FileName).Substring(9, 1);
118- db.AddTSOName(nFileRowID, tsoentry);
118+ db.AddTBN(nFileRowID, tsoentry);
119119 }
120120 }
121121 }
--- TSOSorter/Source/MainForm.cs (revision 3)
+++ TSOSorter/Source/MainForm.cs (revision 4)
@@ -183,7 +183,7 @@
183183 {
184184 if (threadCheck() == true) return;
185185 TDCGExplorer.CreateNewArcsDatabase();
186- TDCGExplorer.CreateNewFileDatabase();
186+// TDCGExplorer.CreateNewFileDatabase();
187187 }
188188
189189 // ツリーで選択されたら.
@@ -260,10 +260,8 @@
260260 }
261261 // invokeの為のdelegate
262262 private delegate void displayFromArcsHander();
263+ private delegate void refreshFileViewHandler();
263264
264- //
265- private delegate void insertFilesView();
266-
267265 // 非同期で呼び出されるメソッド
268266 private void asyncDlgDisplayFromArcs()
269267 {
@@ -270,7 +268,14 @@
270268 //TDCGExplorer.DisplayArcsDB(treeViewArcs);
271269 DisplayDB();
272270 }
271+ // 非同期で呼び出されるメソッド
272+ private void asyncDlgRefreshFileView()
273+ {
274+ m_nComboBoxPartTypeSelected = 0;// comboBoxPartsType.SelectedIndex;
273275
276+ doAfterComboBoxPartsTypeChanged();
277+
278+ }
274279 // 非同期でツリー表示を更新する.
275280 public void asyncDisplayFromArcs()
276281 {
@@ -277,6 +282,14 @@
277282 Invoke(new displayFromArcsHander(asyncDlgDisplayFromArcs));
278283 }
279284
285+ // 非同期でFileViewを更新
286+ public void asyncRefreshFileView()
287+ {
288+ Invoke(new refreshFileViewHandler(asyncDlgRefreshFileView));
289+ }
290+
291+ /** タイマー更新
292+ * */
280293 private void timer1_Tick(object sender, EventArgs e)
281294 {
282295 toolStripStatusLabel1.Text = TDCGExplorer.GetToolTips();
@@ -305,13 +318,21 @@
305318 {
306319 get { return m_TAHViewer; }
307320 }
321+ public TextBox TextBoxFileInfo
322+ {
323+ get { return textBox1; }
324+ }
308325
326+ public void doAfterComboBoxPartsTypeChanged()
327+ {
328+ // update file list
329+ TDCGExplorer.insertFileViews();
330+ }
309331 private void comboBoxPartsType_SelectedIndexChanged(object sender, EventArgs e)
310332 {
311333 m_nComboBoxPartTypeSelected = comboBoxPartsType.SelectedIndex;
312334
313- // update file list
314- TDCGExplorer.insertFileViews();
335+ doAfterComboBoxPartsTypeChanged();
315336 }
316337
317338 public PictureBox PictureBox
Show on old repository browser