+ when running a bound macro check if file exists, proper unicode handling of macros in customize dialog

This commit is contained in:
wmayer 2015-10-08 12:37:30 +02:00
parent 52957ffcb5
commit c133457da5
4 changed files with 77 additions and 36 deletions

View File

@ -708,11 +708,18 @@ void MacroCommand::activated(int iMsg)
QDir d(QString::fromUtf8(cMacroPath.c_str())); QDir d(QString::fromUtf8(cMacroPath.c_str()));
QFileInfo fi(d, QString::fromUtf8(sScriptName)); QFileInfo fi(d, QString::fromUtf8(sScriptName));
if (!fi.exists()) {
QMessageBox::critical(Gui::getMainWindow(),
qApp->translate("Gui::MacroCommand", "Macro file doesn't exist"),
qApp->translate("Gui::MacroCommand", "No such macro file: '%1'").arg(fi.absoluteFilePath()));
}
else {
Application::Instance->macroManager()->run(MacroManager::File, fi.filePath().toUtf8()); Application::Instance->macroManager()->run(MacroManager::File, fi.filePath().toUtf8());
// after macro run recalculate the document // after macro run recalculate the document
if (Application::Instance->activeDocument()) if (Application::Instance->activeDocument())
Application::Instance->activeDocument()->getDocument()->recompute(); Application::Instance->activeDocument()->getDocument()->recompute();
} }
}
Action * MacroCommand::createAction(void) Action * MacroCommand::createAction(void)
{ {

View File

@ -147,6 +147,18 @@ void DlgCustomCommandsImp::onGroupActivated(QTreeWidgetItem* item)
CommandManager & cCmdMgr = Application::Instance->commandManager(); CommandManager & cCmdMgr = Application::Instance->commandManager();
std::vector<Command*> aCmds = cCmdMgr.getGroupCommands(group.toAscii()); std::vector<Command*> aCmds = cCmdMgr.getGroupCommands(group.toAscii());
if (group == QLatin1String("Macros")) {
for (std::vector<Command*>::iterator it = aCmds.begin(); it != aCmds.end(); ++it) {
QTreeWidgetItem* item = new QTreeWidgetItem(commandTreeWidget);
item->setText(1, QString::fromUtf8((*it)->getMenuText()));
item->setToolTip(1, QString::fromUtf8((*it)->getToolTipText()));
item->setData(1, Qt::UserRole, QByteArray((*it)->getName()));
item->setSizeHint(0, QSize(32, 32));
if ((*it)->getPixmap())
item->setIcon(0, BitmapFactory().iconFromTheme((*it)->getPixmap()));
}
}
else {
for (std::vector<Command*>::iterator it = aCmds.begin(); it != aCmds.end(); ++it) { for (std::vector<Command*>::iterator it = aCmds.begin(); it != aCmds.end(); ++it) {
QTreeWidgetItem* item = new QTreeWidgetItem(commandTreeWidget); QTreeWidgetItem* item = new QTreeWidgetItem(commandTreeWidget);
item->setText(1, qApp->translate((*it)->className(), (*it)->getMenuText())); item->setText(1, qApp->translate((*it)->className(), (*it)->getMenuText()));
@ -156,6 +168,7 @@ void DlgCustomCommandsImp::onGroupActivated(QTreeWidgetItem* item)
if ((*it)->getPixmap()) if ((*it)->getPixmap())
item->setIcon(0, BitmapFactory().iconFromTheme((*it)->getPixmap())); item->setIcon(0, BitmapFactory().iconFromTheme((*it)->getPixmap()));
} }
}
textLabel->setText(QString()); textLabel->setText(QString());
} }
@ -178,7 +191,6 @@ void DlgCustomCommandsImp::onAddMacroAction(const QByteArray& macro)
item->setToolTip(1, QString::fromUtf8(pCmd->getToolTipText())); item->setToolTip(1, QString::fromUtf8(pCmd->getToolTipText()));
item->setData(1, Qt::UserRole, macro); item->setData(1, Qt::UserRole, macro);
item->setSizeHint(0, QSize(32, 32)); item->setSizeHint(0, QSize(32, 32));
item->setBackgroundColor(0, Qt::lightGray);
if (pCmd->getPixmap()) if (pCmd->getPixmap())
item->setIcon(0, BitmapFactory().iconFromTheme(pCmd->getPixmap())); item->setIcon(0, BitmapFactory().iconFromTheme(pCmd->getPixmap()));
} }
@ -226,7 +238,6 @@ void DlgCustomCommandsImp::onModifyMacroAction(const QByteArray& macro)
item->setToolTip(1, QString::fromUtf8(pCmd->getToolTipText())); item->setToolTip(1, QString::fromUtf8(pCmd->getToolTipText()));
item->setData(1, Qt::UserRole, macro); item->setData(1, Qt::UserRole, macro);
item->setSizeHint(0, QSize(32, 32)); item->setSizeHint(0, QSize(32, 32));
item->setBackgroundColor(0, Qt::lightGray);
if (pCmd->getPixmap()) if (pCmd->getPixmap())
item->setIcon(0, BitmapFactory().iconFromTheme(pCmd->getPixmap())); item->setIcon(0, BitmapFactory().iconFromTheme(pCmd->getPixmap()));
if (commandTreeWidget->isItemSelected(item)) if (commandTreeWidget->isItemSelected(item))

View File

@ -178,6 +178,19 @@ void DlgCustomKeyboardImp::on_categoryBox_activated(int index)
CommandManager & cCmdMgr = Application::Instance->commandManager(); CommandManager & cCmdMgr = Application::Instance->commandManager();
std::vector<Command*> aCmds = cCmdMgr.getGroupCommands( group.toAscii() ); std::vector<Command*> aCmds = cCmdMgr.getGroupCommands( group.toAscii() );
if (group == QLatin1String("Macros")) {
for (std::vector<Command*>::iterator it = aCmds.begin(); it != aCmds.end(); ++it) {
QTreeWidgetItem* item = new QTreeWidgetItem(commandTreeWidget);
item->setText(1, QString::fromUtf8((*it)->getMenuText()));
item->setToolTip(1, QString::fromUtf8((*it)->getToolTipText()));
item->setData(1, Qt::UserRole, QByteArray((*it)->getName()));
item->setSizeHint(0, QSize(32, 32));
if ((*it)->getPixmap())
item->setIcon(0, BitmapFactory().iconFromTheme((*it)->getPixmap()));
}
}
else {
for (std::vector<Command*>::iterator it = aCmds.begin(); it != aCmds.end(); ++it) { for (std::vector<Command*>::iterator it = aCmds.begin(); it != aCmds.end(); ++it) {
QTreeWidgetItem* item = new QTreeWidgetItem(commandTreeWidget); QTreeWidgetItem* item = new QTreeWidgetItem(commandTreeWidget);
item->setText(1, qApp->translate((*it)->className(), (*it)->getMenuText())); item->setText(1, qApp->translate((*it)->className(), (*it)->getMenuText()));
@ -188,6 +201,7 @@ void DlgCustomKeyboardImp::on_categoryBox_activated(int index)
item->setIcon(0, BitmapFactory().iconFromTheme((*it)->getPixmap())); item->setIcon(0, BitmapFactory().iconFromTheme((*it)->getPixmap()));
} }
} }
}
/** Assigns a new accelerator to the selected command. */ /** Assigns a new accelerator to the selected command. */
void DlgCustomKeyboardImp::on_buttonAssign_clicked() void DlgCustomKeyboardImp::on_buttonAssign_clicked()
@ -326,7 +340,6 @@ void DlgCustomKeyboardImp::on_editShortcut_textChanged(const QString& sc)
item->setToolTip(1, qApp->translate((*it)->className(), (*it)->getToolTipText())); item->setToolTip(1, qApp->translate((*it)->className(), (*it)->getToolTipText()));
item->setData(1, Qt::UserRole, QByteArray((*it)->getName())); item->setData(1, Qt::UserRole, QByteArray((*it)->getName()));
item->setSizeHint(0, QSize(32, 32)); item->setSizeHint(0, QSize(32, 32));
item->setBackgroundColor(0, Qt::lightGray);
if ((*it)->getPixmap()) if ((*it)->getPixmap())
item->setIcon(0, BitmapFactory().iconFromTheme((*it)->getPixmap())); item->setIcon(0, BitmapFactory().iconFromTheme((*it)->getPixmap()));
break; break;
@ -372,7 +385,6 @@ void DlgCustomKeyboardImp::onAddMacroAction(const QByteArray& macro)
item->setToolTip(1, QString::fromUtf8(pCmd->getToolTipText())); item->setToolTip(1, QString::fromUtf8(pCmd->getToolTipText()));
item->setData(1, Qt::UserRole, macro); item->setData(1, Qt::UserRole, macro);
item->setSizeHint(0, QSize(32, 32)); item->setSizeHint(0, QSize(32, 32));
item->setBackgroundColor(0, Qt::lightGray);
if (pCmd->getPixmap()) if (pCmd->getPixmap())
item->setIcon(0, BitmapFactory().iconFromTheme(pCmd->getPixmap())); item->setIcon(0, BitmapFactory().iconFromTheme(pCmd->getPixmap()));
} }
@ -412,7 +424,6 @@ void DlgCustomKeyboardImp::onModifyMacroAction(const QByteArray& macro)
item->setToolTip(1, QString::fromUtf8(pCmd->getToolTipText())); item->setToolTip(1, QString::fromUtf8(pCmd->getToolTipText()));
item->setData(1, Qt::UserRole, macro); item->setData(1, Qt::UserRole, macro);
item->setSizeHint(0, QSize(32, 32)); item->setSizeHint(0, QSize(32, 32));
item->setBackgroundColor(0, Qt::lightGray);
if (pCmd->getPixmap()) if (pCmd->getPixmap())
item->setIcon(0, BitmapFactory().iconFromTheme(pCmd->getPixmap())); item->setIcon(0, BitmapFactory().iconFromTheme(pCmd->getPixmap()));
if (commandTreeWidget->isItemSelected(item)) if (commandTreeWidget->isItemSelected(item))

View File

@ -204,6 +204,19 @@ void DlgCustomToolbars::on_categoryBox_activated(int index)
sepitem->setText(1, tr("<Separator>")); sepitem->setText(1, tr("<Separator>"));
sepitem->setData(1, Qt::UserRole, QByteArray("Separator")); sepitem->setData(1, Qt::UserRole, QByteArray("Separator"));
sepitem->setSizeHint(0, QSize(32, 32)); sepitem->setSizeHint(0, QSize(32, 32));
if (group == QLatin1String("Macros")) {
for (std::vector<Command*>::iterator it = aCmds.begin(); it != aCmds.end(); ++it) {
QTreeWidgetItem* item = new QTreeWidgetItem(commandTreeWidget);
item->setText(1, QString::fromUtf8((*it)->getMenuText()));
item->setToolTip(1, QString::fromUtf8((*it)->getToolTipText()));
item->setData(1, Qt::UserRole, QByteArray((*it)->getName()));
item->setSizeHint(0, QSize(32, 32));
if ((*it)->getPixmap())
item->setIcon(0, BitmapFactory().iconFromTheme((*it)->getPixmap()));
}
}
else {
for (std::vector<Command*>::iterator it = aCmds.begin(); it != aCmds.end(); ++it) { for (std::vector<Command*>::iterator it = aCmds.begin(); it != aCmds.end(); ++it) {
QTreeWidgetItem* item = new QTreeWidgetItem(commandTreeWidget); QTreeWidgetItem* item = new QTreeWidgetItem(commandTreeWidget);
item->setText(1, qApp->translate((*it)->className(), (*it)->getMenuText())); item->setText(1, qApp->translate((*it)->className(), (*it)->getMenuText()));
@ -214,6 +227,7 @@ void DlgCustomToolbars::on_categoryBox_activated(int index)
item->setIcon(0, BitmapFactory().iconFromTheme((*it)->getPixmap())); item->setIcon(0, BitmapFactory().iconFromTheme((*it)->getPixmap()));
} }
} }
}
void DlgCustomToolbars::on_workbenchBox_activated(int index) void DlgCustomToolbars::on_workbenchBox_activated(int index)
{ {
@ -541,7 +555,6 @@ void DlgCustomToolbars::onAddMacroAction(const QByteArray& macro)
item->setToolTip(1, QString::fromUtf8(pCmd->getToolTipText())); item->setToolTip(1, QString::fromUtf8(pCmd->getToolTipText()));
item->setData(1, Qt::UserRole, macro); item->setData(1, Qt::UserRole, macro);
item->setSizeHint(0, QSize(32, 32)); item->setSizeHint(0, QSize(32, 32));
item->setBackgroundColor(0, Qt::lightGray);
if (pCmd->getPixmap()) if (pCmd->getPixmap())
item->setIcon(0, BitmapFactory().iconFromTheme(pCmd->getPixmap())); item->setIcon(0, BitmapFactory().iconFromTheme(pCmd->getPixmap()));
} }
@ -582,7 +595,6 @@ void DlgCustomToolbars::onModifyMacroAction(const QByteArray& macro)
item->setToolTip(1, QString::fromUtf8(pCmd->getToolTipText())); item->setToolTip(1, QString::fromUtf8(pCmd->getToolTipText()));
item->setData(1, Qt::UserRole, macro); item->setData(1, Qt::UserRole, macro);
item->setSizeHint(0, QSize(32, 32)); item->setSizeHint(0, QSize(32, 32));
item->setBackgroundColor(0, Qt::lightGray);
if (pCmd->getPixmap()) if (pCmd->getPixmap())
item->setIcon(0, BitmapFactory().iconFromTheme(pCmd->getPixmap())); item->setIcon(0, BitmapFactory().iconFromTheme(pCmd->getPixmap()));
break; break;