Merge pull request #898 from shun-iwasawa/fix_saving_menubar
Fix saving menu bar in non-English environment not to lose English titles
This commit is contained in:
commit
f09fd34424
2 changed files with 22 additions and 2 deletions
|
@ -71,9 +71,12 @@ public:
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
class MenuBarSubmenuItem final : public QTreeWidgetItem {
|
class MenuBarSubmenuItem final : public QTreeWidgetItem {
|
||||||
|
/*- title before translation -*/
|
||||||
|
QString m_orgTitle;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
MenuBarSubmenuItem(QTreeWidgetItem* parent, QString& title)
|
MenuBarSubmenuItem(QTreeWidgetItem* parent, QString& title)
|
||||||
: QTreeWidgetItem(parent, UserType) {
|
: QTreeWidgetItem(parent, UserType), m_orgTitle(title) {
|
||||||
setFlags(Qt::ItemIsSelectable | Qt::ItemIsEditable | Qt::ItemIsDragEnabled |
|
setFlags(Qt::ItemIsSelectable | Qt::ItemIsEditable | Qt::ItemIsDragEnabled |
|
||||||
Qt::ItemIsDropEnabled | Qt::ItemIsEnabled);
|
Qt::ItemIsDropEnabled | Qt::ItemIsEnabled);
|
||||||
/*- Menu title will be translated if the title is registered in translation
|
/*- Menu title will be translated if the title is registered in translation
|
||||||
|
@ -86,6 +89,9 @@ public:
|
||||||
setToolTip(0, QObject::tr(
|
setToolTip(0, QObject::tr(
|
||||||
"[Drag] to move position, [Double Click] to edit title"));
|
"[Drag] to move position, [Double Click] to edit title"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString getOrgTitle() const { return m_orgTitle; }
|
||||||
|
void setOrgTitle(const QString title) { m_orgTitle = title; }
|
||||||
};
|
};
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
@ -115,6 +121,10 @@ MenuBarTree::MenuBarTree(TFilePath& path, QWidget* parent)
|
||||||
}
|
}
|
||||||
|
|
||||||
loadMenuTree(fp);
|
loadMenuTree(fp);
|
||||||
|
|
||||||
|
bool ret = connect(this, SIGNAL(itemChanged(QTreeWidgetItem*, int)), this,
|
||||||
|
SLOT(onItemChanged(QTreeWidgetItem*, int)));
|
||||||
|
assert(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
@ -230,7 +240,8 @@ void MenuBarTree::saveMenuRecursive(QXmlStreamWriter& writer,
|
||||||
writer.writeEmptyElement("separator");
|
writer.writeEmptyElement("separator");
|
||||||
else if (subMenu) {
|
else if (subMenu) {
|
||||||
writer.writeStartElement("menu");
|
writer.writeStartElement("menu");
|
||||||
writer.writeAttribute("title", subMenu->text(0));
|
// save original title instead of translated one
|
||||||
|
writer.writeAttribute("title", subMenu->getOrgTitle());
|
||||||
|
|
||||||
saveMenuRecursive(writer, subMenu);
|
saveMenuRecursive(writer, subMenu);
|
||||||
|
|
||||||
|
@ -326,6 +337,14 @@ void MenuBarTree::removeItem() {
|
||||||
delete item;
|
delete item;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
void MenuBarTree::onItemChanged(QTreeWidgetItem* item, int column) {
|
||||||
|
MenuBarSubmenuItem* submenuItem = dynamic_cast<MenuBarSubmenuItem*>(item);
|
||||||
|
if (!submenuItem) return;
|
||||||
|
submenuItem->setOrgTitle(submenuItem->text(0));
|
||||||
|
}
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
// CommandListTree
|
// CommandListTree
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
|
@ -39,6 +39,7 @@ protected:
|
||||||
protected slots:
|
protected slots:
|
||||||
void insertMenu();
|
void insertMenu();
|
||||||
void removeItem();
|
void removeItem();
|
||||||
|
void onItemChanged(QTreeWidgetItem*, int);
|
||||||
};
|
};
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
Loading…
Reference in a new issue