Skip to content

Commit 151803b

Browse files
committed
修正BUG,重构代码
1 parent 1ba5971 commit 151803b

14 files changed

Lines changed: 629 additions & 549 deletions

QtResArscEditor.vcxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,9 @@
109109
<ClCompile Include="src\QResArscEditor.cpp" />
110110
<ClCompile Include="src\QResArscEditorUI.cpp" />
111111
<ClCompile Include="src\QResArscParser.cpp" />
112+
<ClCompile Include="src\QUtf8.cpp" />
112113
<ClCompile Include="src\ResArscStruct.cpp" />
114+
<ClCompile Include="src\StringPoolExtend.cpp" />
113115
<ClCompile Include="src\SimpleRichText.cpp" />
114116
<ClCompile Include="src\utf8.cpp" />
115117
<QtRcc Include="QResArscEditorUI.qrc" />
@@ -123,6 +125,8 @@
123125
<QtMoc Include="src\QAppendDialog.h" />
124126
<QtMoc Include="src\QPublicFinal.h" />
125127
<QtMoc Include="src\QAddLocaleDialog.h" />
128+
<ClInclude Include="src\QUtf8.h" />
129+
<ClInclude Include="src\StringPoolExtend.h" />
126130
<ClInclude Include="src\SimpleRichText.h" />
127131
<ClInclude Include="src\utf8.h" />
128132
<QtMoc Include="src\QResArscEditorUI.h" />

QtResArscEditor.vcxproj.filters

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@
2121
<UniqueIdentifier>{639EADAA-A684-42e4-A9AD-28FC9BCB8F7C}</UniqueIdentifier>
2222
<Extensions>ts</Extensions>
2323
</Filter>
24+
<Filter Include="utf8">
25+
<UniqueIdentifier>{ae6f8a82-e3a0-43da-85b2-20bf4236eee2}</UniqueIdentifier>
26+
</Filter>
2427
</ItemGroup>
2528
<ItemGroup>
2629
<QtRcc Include="QResArscEditorUI.qrc">
@@ -46,9 +49,6 @@
4649
<ClCompile Include="src\SimpleRichText.cpp">
4750
<Filter>Source Files</Filter>
4851
</ClCompile>
49-
<ClCompile Include="src\utf8.cpp">
50-
<Filter>Source Files</Filter>
51-
</ClCompile>
5252
<ClCompile Include="src\QEditDialog.cpp">
5353
<Filter>Source Files</Filter>
5454
</ClCompile>
@@ -61,6 +61,15 @@
6161
<ClCompile Include="src\QAddLocaleDialog.cpp">
6262
<Filter>Source Files</Filter>
6363
</ClCompile>
64+
<ClCompile Include="src\StringPoolExtend.cpp">
65+
<Filter>Source Files</Filter>
66+
</ClCompile>
67+
<ClCompile Include="src\QUtf8.cpp">
68+
<Filter>utf8</Filter>
69+
</ClCompile>
70+
<ClCompile Include="src\utf8.cpp">
71+
<Filter>utf8</Filter>
72+
</ClCompile>
6473
</ItemGroup>
6574
<ItemGroup>
6675
<QtMoc Include="src\QResArscParser.h">
@@ -95,9 +104,15 @@
95104
<ClInclude Include="src\SimpleRichText.h">
96105
<Filter>Header Files</Filter>
97106
</ClInclude>
98-
<ClInclude Include="src\utf8.h">
107+
<ClInclude Include="src\StringPoolExtend.h">
99108
<Filter>Header Files</Filter>
100109
</ClInclude>
110+
<ClInclude Include="src\utf8.h">
111+
<Filter>utf8</Filter>
112+
</ClInclude>
113+
<ClInclude Include="src\QUtf8.h">
114+
<Filter>utf8</Filter>
115+
</ClInclude>
101116
</ItemGroup>
102117
<ItemGroup>
103118
<ResourceCompile Include="QtResArscEditor.rc">

src/QResArscEditor.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,10 @@ void QResArscEditor::refreshArscTree()
3232
m_TW_tree->clear();
3333
const ResTable_package& t_tablePackage = m_Parser->tablePackage();
3434
QTreeWidgetItem* t_packageItem = new QTreeWidgetItem(m_TW_tree);
35-
t_packageItem->setText(0, WCHARToQString(t_tablePackage.name));
35+
QString t_packageName = WCHARToQString(t_tablePackage.name);
36+
t_packageItem->setText(0, t_packageName);
3637
t_packageItem->setData(0, eTreeItemRole_type, eTreeItemType_package);
37-
38+
t_packageItem->setData(0, eTreeItemRole_package, t_packageName);
3839
const TStringPool& t_typeString = m_Parser->typeString();
3940
const QMap<uint, TTableTypeData>& t_typeDatas = m_Parser->tableTypeDatas();
4041

@@ -46,13 +47,15 @@ void QResArscEditor::refreshArscTree()
4647
QTreeWidgetItem* t_typeItem = new QTreeWidgetItem(t_packageItem);
4748
t_typeItem->setText(0, t_typeString.strings[i.key() - 1]);
4849
t_typeItem->setData(0, eTreeItemRole_type, eTreeItemType_type);
50+
t_typeItem->setData(0, eTreeItemRole_package, t_packageName);
4951
t_typeItem->setData(0, eTreeItemRole_typeid, i.key());
5052
const QVector<TTableTypeEx>& t_tableType = t_typeDatas[i.key()].typeDatas;
5153
for (int j = 0; j < t_tableType.size(); ++j)
5254
{
5355
QTreeWidgetItem* t_specItem = new QTreeWidgetItem(t_typeItem);
5456
t_specItem->setText(0, tableConfig2String(t_typeString.strings[i.key() - 1], t_tableType[j].config));
5557
t_specItem->setData(0, eTreeItemRole_type, eTreeItemType_spec);
58+
t_specItem->setData(0, eTreeItemRole_package, t_packageName);
5659
t_specItem->setData(0, eTreeItemRole_typeid, i.key());
5760
t_specItem->setData(0, eTreeItemRole_specid, j);
5861
t_specItem->setData(0, eTreeItemRole_tableConfig, QVariant::fromValue(t_tableType[j].config));
@@ -179,6 +182,8 @@ void QResArscEditor::onShowTreeContextMenu_slot(const QPoint& _pos)
179182
if (m_TW_tree->currentItem() == NULL)
180183
return;
181184
QTreeWidgetItem* t_item = m_TW_tree->currentItem();
185+
if (t_item->data(0, eTreeItemRole_type).toUInt() == eTreeItemType_package)
186+
return;
182187
QTreeWidgetItem* t_typeItem = t_item;
183188
if (t_item->data(0, eTreeItemRole_type).toUInt() != eTreeItemType_type)
184189
t_typeItem = t_item->parent();

src/QResArscEditor.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ enum ETreeItemType
1818
enum ETreeItemRole
1919
{
2020
eTreeItemRole_type = Qt::UserRole,
21+
eTreeItemRole_package,
2122
eTreeItemRole_typeid,
2223
eTreeItemRole_specid,
2324
eTreeItemRole_tableConfig

0 commit comments

Comments
 (0)