New tool remove prefix characters

This commit is contained in:
edi271
2022-01-30 13:32:23 +01:00
committed by WandererFan
parent 049889b72f
commit 717c478863
4 changed files with 171 additions and 1 deletions

View File

@@ -155,7 +155,7 @@ CmdTechDrawExtensionInsertDiameter::CmdTechDrawExtensionInsertDiameter()
void CmdTechDrawExtensionInsertDiameter::activated(int iMsg)
{
Q_UNUSED(iMsg);
execInsertPrefixChar(this, "");
execInsertPrefixChar(this, "");
}
bool CmdTechDrawExtensionInsertDiameter::isActive(void)
@@ -198,6 +198,62 @@ bool CmdTechDrawExtensionInsertSquare::isActive(void)
return (havePage && haveView);
}
//===========================================================================
// TechDraw_ExtensionRemovePrefixChar
//===========================================================================
void execRemovePrefixChar(Gui::Command* cmd) {
// remove a prefix character from the format specifier
std::vector<Gui::SelectionObject> selection;
if (_checkSelection(cmd, selection, "TechDraw Remove Prefix")) {
Gui::Command::openCommand(QT_TRANSLATE_NOOP("Command", "Remove Prefix"));
for (auto selected : selection)
{
auto object = selected.getObject();
if (object->isDerivedFrom(TechDraw::DrawViewDimension::getClassTypeId())) {
auto dim = dynamic_cast<TechDraw::DrawViewDimension*>(selected.getObject());
std::string formatSpec = dim->FormatSpec.getStrValue();
int pos = formatSpec.find("%.");
if (pos != 0)
{
formatSpec = formatSpec.substr(pos);
dim->FormatSpec.setValue(formatSpec);
}
}
}
Gui::Command::commitCommand();
}
}
DEF_STD_CMD_A(CmdTechDrawExtensionRemovePrefixChar)
CmdTechDrawExtensionRemovePrefixChar::CmdTechDrawExtensionRemovePrefixChar()
: Command("TechDraw_ExtensionRemovePrefixChar")
{
sAppModule = "TechDraw";
sGroup = QT_TR_NOOP("TechDraw");
sMenuText = QT_TR_NOOP("Remove Prefix");
sToolTipText = QT_TR_NOOP("Remove prefix symbols at the beginning of the dimension text:<br>\
- Select one or more dimensions<br>\
- Click this tool");
sWhatsThis = "TechDraw_ExtensionRemovePrefixChar";
sStatusTip = sMenuText;
sPixmap = "TechDraw_ExtensionRemovePrefixChar";
}
void CmdTechDrawExtensionRemovePrefixChar::activated(int iMsg)
{
Q_UNUSED(iMsg);
execRemovePrefixChar(this);
}
bool CmdTechDrawExtensionRemovePrefixChar::isActive(void)
{
bool havePage = DrawGuiUtil::needPage(this);
bool haveView = DrawGuiUtil::needView(this);
return (havePage && haveView);
}
//===========================================================================
// TechDraw_ExtensionInsertPrefixGroup
//===========================================================================
@@ -236,6 +292,9 @@ void CmdTechDrawExtensionInsertPrefixGroup::activated(int iMsg)
case 1: //insert "〼" as prefix
execInsertPrefixChar(this, "");
break;
case 2: //remove prefix characters
execRemovePrefixChar(this);
break;
default:
Base::Console().Message("CMD::CVGrp - invalid iMsg: %d\n", iMsg);
};
@@ -255,6 +314,10 @@ Gui::Action* CmdTechDrawExtensionInsertPrefixGroup::createAction(void)
p2->setIcon(Gui::BitmapFactory().iconFromTheme("TechDraw_ExtensionInsertSquare"));
p2->setObjectName(QString::fromLatin1("TechDraw_ExtensionInsertSquare"));
p2->setWhatsThis(QString::fromLatin1("TechDraw_ExtensionInsertSquare"));
QAction* p3 = pcAction->addAction(QString());
p3->setIcon(Gui::BitmapFactory().iconFromTheme("TechDraw_ExtensionRemovePrefixChar"));
p3->setObjectName(QString::fromLatin1("TechDraw_ExtensionRemovePrefixChar"));
p3->setWhatsThis(QString::fromLatin1("TechDraw_ExtensionRemovePrefixChar"));
_pcAction = pcAction;
languageChange();
@@ -289,6 +352,13 @@ void CmdTechDrawExtensionInsertPrefixGroup::languageChange()
- Select one or more dimensions<br>\
- Click this tool"));
arc2->setStatusTip(arc2->text());
QAction* arc3 = a[2];
arc3->setText(QApplication::translate("TechDraw_ExtensionremovePrefixChar", "Remove Prefix"));
arc3->setToolTip(QApplication::translate("TechDraw_ExtensionremovePrefixChar",
"Remove prefix symbols at the beginning of the dimension text:<br>\
- Select one or more dimensions<br>\
- Click this tool"));
arc3->setStatusTip(arc3->text());
}
bool CmdTechDrawExtensionInsertPrefixGroup::isActive(void)
@@ -2263,6 +2333,7 @@ void CreateTechDrawCommandsExtensionDims(void)
rcCmdMgr.addCommand(new CmdTechDrawExtensionInsertPrefixGroup());
rcCmdMgr.addCommand(new CmdTechDrawExtensionInsertDiameter());
rcCmdMgr.addCommand(new CmdTechDrawExtensionInsertSquare());
rcCmdMgr.addCommand(new CmdTechDrawExtensionRemovePrefixChar());
rcCmdMgr.addCommand(new CmdTechDrawExtensionIncreaseDecreaseGroup());
rcCmdMgr.addCommand(new CmdTechDrawExtensionIncreaseDecimal());
rcCmdMgr.addCommand(new CmdTechDrawExtensionDecreaseDecimal());

View File

@@ -53,6 +53,7 @@
<file>icons/TechDraw_ExtensionThreadBoltBottom.svg</file>
<file>icons/TechDraw_ExtensionInsertDiameter.svg</file>
<file>icons/TechDraw_ExtensionInsertSquare.svg</file>
<file>icons/TechDraw_ExtensionRemovePrefixChar.svg</file>
<file>icons/TechDraw_ExtensionCreateHorizChainDimension.svg</file>
<file>icons/TechDraw_ExtensionCreateVertChainDimension.svg</file>
<file>icons/TechDraw_ExtensionCreateObliqueChainDimension.svg</file>

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 9.4 KiB

View File

@@ -140,6 +140,7 @@ Gui::MenuItem* Workbench::setupMenuBar() const
*tooldimensions << "Separator";
*tooldimensions << "TechDraw_ExtensionInsertDiameter";
*tooldimensions << "TechDraw_ExtensionInsertSquare";
*tooldimensions << "TechDraw_ExtensionRemovePrefixChar";
*tooldimensions << "Separator";
*tooldimensions << "TechDraw_ExtensionIncreaseDecimal";
*tooldimensions << "TechDraw_ExtensionDecreaseDecimal";
@@ -316,6 +317,7 @@ Gui::ToolBarItem* Workbench::setupToolBars() const
*extdimensions << "TechDraw_ExtensionInsertPrefixGroup";
// *extdimensions << "TechDraw_ExtensionInsertDiameter";
// *extdimensions << "TechDraw_ExtensionInsertSquare";
// *extdimensions << "TechDraw_ExtensionRemovePrefixChar";
*extdimensions << "TechDraw_ExtensionIncreaseDecreaseGroup";
// *extdimensions << "TechDraw_ExtensionIncreaseDecimal";
// *extdimensions << "TechDraw_ExtensionDecreaseDecimal";
@@ -453,6 +455,7 @@ Gui::ToolBarItem* Workbench::setupCommandBars() const
*extdimensions << "TechDraw_ExtensionInsertPrefixGroup";
// *extdimensions << "TechDraw_ExtensionInsertDiameter";
// *extdimensions << "TechDraw_ExtensionInsertSquare";
// *extdimensions << "TechDraw_ExtensionRemovePrefixChar";
*extdimensions << "TechDraw_ExtensionIncreaseDecreaseGroup";
// *extdimensions << "TechDraw_ExtensionIncreaseDecimal";
// *extdimensions << "TechDraw_ExtensionDecreaseDecimal";