Hides the ContinueUntilMain button if there is no flag called main

This commit is contained in:
mandlebro 2019-01-12 23:36:23 +00:00 committed by Itay Cohen
parent 75ae47dbcb
commit b0effdf94f
2 changed files with 16 additions and 1 deletions

View File

@ -78,7 +78,7 @@ DebugActions::DebugActions(QToolBar *toolBar, MainWindow *main) :
// startButton->setDefaultAction(actionStartEmul);
startButton->setMenu(startMenu);
QToolButton *continueUntilButton = new QToolButton;
continueUntilButton = new QToolButton;
continueUntilButton->setPopupMode(QToolButton::MenuButtonPopup);
connect(continueUntilButton, &QToolButton::triggered, continueUntilButton,
&QToolButton::setDefaultAction);
@ -112,6 +112,7 @@ DebugActions::DebugActions(QToolBar *toolBar, MainWindow *main) :
actionStart->setIcon(startDebugIcon);
actionStartEmul->setText(startEmulLabel);
actionStartEmul->setIcon(startEmulIcon);
continueUntilButton->setDefaultAction(actionContinueUntilMain);
setAllActionsVisible(false);
});
connect(actionStep, &QAction::triggered, Core(), &CutterCore::stepDebug);
@ -130,6 +131,7 @@ DebugActions::DebugActions(QToolBar *toolBar, MainWindow *main) :
actionStartEmul->setVisible(false);
actionStart->setText(restartDebugLabel);
actionStart->setIcon(restartIcon);
setButtonVisibleIfMainExists();
Core()->startDebug();
});
@ -154,6 +156,16 @@ DebugActions::DebugActions(QToolBar *toolBar, MainWindow *main) :
connect(actionContinueUntilSyscall, &QAction::triggered, Core(), &CutterCore::continueUntilSyscall);
}
void DebugActions::setButtonVisibleIfMainExists()
{
int mainExists = Core()->cmd("f?main; ??").toInt();
// if main is not a flag we hide the continue until main button
if (!mainExists) {
actionContinueUntilMain->setVisible(false);
continueUntilButton->setDefaultAction(actionContinueUntilCall);
}
}
void DebugActions::continueUntilMain()
{
Core()->continueUntilDebug("main");

View File

@ -4,6 +4,7 @@
class MainWindow;
class QToolBar;
class QToolButton;
class DebugActions : public QObject
{
@ -30,10 +31,12 @@ public:
private:
MainWindow *main;
QList<QAction *> allActions;
QToolButton *continueUntilButton;
private slots:
void continueUntilMain();
void attachProcessDialog();
void attachProcess(int pid);
void setAllActionsVisible(bool visible);
void setButtonVisibleIfMainExists();
};