summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ldmicro/commentdialog.cpp3
-rw-r--r--ldmicro/draw_outputdev.cpp5
-rw-r--r--ldmicro/includes/ldmicro.h4
-rw-r--r--ldmicro/ldmicro.cpp3
-rw-r--r--ldmicro/lutdialog.cpp20
-rw-r--r--ldmicro/maincontrols.cpp21
-rw-r--r--ldmicro/simulate.cpp4
-rw-r--r--ldmicro/toolbar.cpp16
8 files changed, 39 insertions, 37 deletions
diff --git a/ldmicro/commentdialog.cpp b/ldmicro/commentdialog.cpp
index 8e29528..28cd521 100644
--- a/ldmicro/commentdialog.cpp
+++ b/ldmicro/commentdialog.cpp
@@ -54,9 +54,9 @@ static void MakeControls(void)
}
static inline void DestroyWindow(){
- delete CommentDialog;
delete CommentTextbox;
delete CommentGrid;
+ delete CommentDialog;
ProgramChanged();
}
@@ -76,7 +76,6 @@ void ShowCommentDialog(char *comment)
strncpy(comment,
CommentTextbox->text().toStdString().c_str(),
MAX_COMMENT_LEN -1);
-
}
break;
case QDialog::Rejected:
diff --git a/ldmicro/draw_outputdev.cpp b/ldmicro/draw_outputdev.cpp
index d38f3a8..28b8f78 100644
--- a/ldmicro/draw_outputdev.cpp
+++ b/ldmicro/draw_outputdev.cpp
@@ -110,8 +110,10 @@ BOOL BlinkCursor(BOOL kill = FALSE)
if (PREV_x != c.left() || PREV_y != c.top() ||
PREV_w != c.width() || PREV_h != c.height())
{
+ scrollbar->setFrameRect(c);
CursorObject->setGeometry(c);
CursorObject->setVisible(TRUE);
+ scrollbar->ensureWidgetVisible(CursorObject);
PREV_x = c.left();
PREV_y = c.top();
PREV_w = c.width();
@@ -319,7 +321,6 @@ void PaintWidget::paintEvent(QPaintEvent *event)
cy += thisHeight;
cy += POS_HEIGHT;
}
- // printf("Endrung:%d\n", cy);
QSize DWSize = this->size();
int newHeight = ((cy + (POS_HEIGHT/2)) * FONT_HEIGHT + Y_PADDING + 50);
if(DWSize.height() + POS_HEIGHT < newHeight)
@@ -394,7 +395,7 @@ static void SetSyntaxHighlightingColours(void)
RGB(0, 0, 0), // simBg
RGB(130, 130, 130), // simRungNum
- RGB(100, 130, 130), // simOff
+ RGB(170, 200, 200), // simOff
RGB(255, 150, 150), // simOn
RGB(255, 150, 150), // simBusLeft
diff --git a/ldmicro/includes/ldmicro.h b/ldmicro/includes/ldmicro.h
index 34b9520..d6ca469 100644
--- a/ldmicro/includes/ldmicro.h
+++ b/ldmicro/includes/ldmicro.h
@@ -37,8 +37,8 @@ typedef signed long SDWORD;
// #define FREEZE_SUBKEY "LDMicro"
// Size of the font that we will use to draw the ladder diagrams, in pixels
-#define FONT_WIDTH 7
-#define FONT_HEIGHT 14
+#define FONT_WIDTH 8
+#define FONT_HEIGHT 16
//-----------------------------------------------
// Constants for the GUI. We have drop-down menus, a listview for the I/Os,
diff --git a/ldmicro/ldmicro.cpp b/ldmicro/ldmicro.cpp
index 8e5d758..fa5ea5a 100644
--- a/ldmicro/ldmicro.cpp
+++ b/ldmicro/ldmicro.cpp
@@ -294,9 +294,12 @@ void ProgramChanged(void)
}
#define CHANGING_PROGRAM(x) { \
+ if(!InSimulationMode) \
+ { \
UndoRemember(); \
x; \
ProgramChanged();\
+ } \
}
//-----------------------------------------------------------------------------
diff --git a/ldmicro/lutdialog.cpp b/ldmicro/lutdialog.cpp
index bd13fc8..feef56f 100644
--- a/ldmicro/lutdialog.cpp
+++ b/ldmicro/lutdialog.cpp
@@ -85,10 +85,12 @@ static inline void DestroyWindow (){
delete DestTextbox;
delete IndexTextbox;
delete CountTextbox;
- delete AsStringCheckbox;
+ if(WasAsString)
+ delete AsStringCheckbox;
delete FixedControlGrid;
delete LutGrid;
delete ButtonBox;
+ delete LutDialog;
ProgramChanged();
}
@@ -107,11 +109,8 @@ static void MakeFixedControls(BOOL forPwl)
Labels[2] = new QLabel(forPwl ? _("Points:") : _("Count:"));
DestTextbox = new QLineEdit();
- // gtk_entry_set_max_length (GTK_ENTRY (DestTextbox), 0);
IndexTextbox = new QLineEdit();
- // gtk_entry_set_max_length (GTK_ENTRY (IndexTextbox), 0);
CountTextbox = new QLineEdit();
- // gtk_entry_set_max_length (GTK_ENTRY (CountTextbox), 0);
DestTextbox->setValidator(
new QRegExpValidator(
QRegExp("[a-zA-Z0-9_]+")));
@@ -144,8 +143,11 @@ static void MakeFixedControls(BOOL forPwl)
LutGrid->addWidget(ButtonBox,0,1);
QObject::connect(ButtonBox, SIGNAL(accepted()), LutDialog, SLOT(accept()));
QObject::connect(ButtonBox, SIGNAL(rejected()), LutDialog, SLOT(reject()));
- QObject::connect(AsStringCheckbox,
- &QCheckBox::stateChanged, CheckBoxFunction);
+ if (!forPwl)
+ {
+ QObject::connect(AsStringCheckbox,
+ &QCheckBox::stateChanged, CheckBoxFunction);
+ }
QObject::connect(CountTextbox, &QLineEdit::textChanged,CountFunction);
}
@@ -420,17 +422,11 @@ void CountFunction(QString text)
// ShowLookUpTableDialog function to improve performance in Qt
void StringFunction(QString text)
{
- // printf("StringFunction called \n");
char* scratch = (char*)text.toStdString().c_str();
- // SendMessage(StringTextbox, WM_GETTEXT, (WPARAM)sizeof(scratch),
- // (LPARAM)scratch);
if(strcmp(scratch, PrevTableAsString)!=0) {
if(StringToValuesCache(scratch, &ControlCount)) {
strcpy(PrevTableAsString, scratch);
} else {
- // Too long; put back the old one
- // SendMessage(StringTextbox, WM_SETTEXT, 0,
- // (LPARAM)PrevTableAsString);
StringTextbox->setText(PrevTableAsString);
}
}
diff --git a/ldmicro/maincontrols.cpp b/ldmicro/maincontrols.cpp
index b0e1db1..7d78f6a 100644
--- a/ldmicro/maincontrols.cpp
+++ b/ldmicro/maincontrols.cpp
@@ -662,6 +662,8 @@ void SetMenusEnabled(BOOL canNegate, BOOL canNormal, BOOL canResetOnly,
EnableMenuItem(InstructionMenu, InsertFmtdStrMenu, t);
//Disable respective tool items
+ EnableMenuItem(NULL, ContactBtn, t);
+ EnableMenuItem(NULL, NegContactBtn, t);
EnableMenuItem(NULL, TonBtn, t);
EnableMenuItem(NULL, TofBtn, t);
EnableMenuItem(NULL, CtuBtn, t);
@@ -702,6 +704,22 @@ void ToggleSimulationMode(void)
CheckMenuItem(SimulateMenu, SimulationModeMenu, MF_CHECKED);
+ // Disable our easy-access toolbox
+ EnableMenuItem(NULL, ContactBtn, MF_GRAYED);
+ EnableMenuItem(NULL, NegContactBtn, MF_GRAYED);
+ EnableMenuItem(NULL, CoilBtn, MF_GRAYED);
+ EnableMenuItem(NULL, NegCoilBtn, MF_GRAYED);
+ EnableMenuItem(NULL, SetCoilBtn, MF_GRAYED);
+ EnableMenuItem(NULL, ResetCoilBtn, MF_GRAYED);
+ EnableMenuItem(NULL, AddBtn, MF_GRAYED);
+ EnableMenuItem(NULL, SubBtn, MF_GRAYED);
+ EnableMenuItem(NULL, MulBtn, MF_GRAYED);
+ EnableMenuItem(NULL, DivBtn, MF_GRAYED);
+ EnableMenuItem(NULL, TonBtn, MF_GRAYED);
+ EnableMenuItem(NULL, TofBtn, MF_GRAYED);
+ EnableMenuItem(NULL, CtuBtn, MF_GRAYED);
+ EnableMenuItem(NULL, CtdBtn, MF_GRAYED);
+
ClearSimulationData(); // simulation.cpp, ldmicro.h
// Recheck InSimulationMode, because there could have been a Compile
// error, which would have kicked us out of simulation mode.
@@ -728,6 +746,9 @@ void ToggleSimulationMode(void)
EnableMenuItem(TopMenu, InstructionMenu, MF_ENABLED);
EnableMenuItem(TopMenu, Compile, MF_ENABLED);
+ //Enable our Easy-access Toolbar
+ WhatCanWeDoFromCursorAndTopology();
+
CheckMenuItem(SimulateMenu, SimulationModeMenu, MF_UNCHECKED);
if(UartFunctionUsed()) {
diff --git a/ldmicro/simulate.cpp b/ldmicro/simulate.cpp
index 7211e96..392a9af 100644
--- a/ldmicro/simulate.cpp
+++ b/ldmicro/simulate.cpp
@@ -722,8 +722,6 @@ void SimulateOneCycle(BOOL forceRefresh)
if(NeedRedraw || SimulateRedrawAfterNextCycle || forceRefresh) {
InvalidateRect(DrawWindow, NULL, FALSE);
RefreshControlsToSettings();
- // gtk_widget_queue_draw(DrawWindow);
- // ListView_RedrawItems(IoList, 0, Prog.io.count - 1);
}
SimulateRedrawAfterNextCycle = FALSE;
@@ -854,8 +852,6 @@ void ShowUartSimulationWindow(void)
UartSimulationWindow = CreateWindowClient("UART Simulation (Terminal)",
TerminalX, TerminalY, TerminalW, TerminalH, MainWindow);
- // UartSimulationWindow->setWindowTitle("UART Simulation (Terminal)");
- /// remove close button
UartSimulationWindow->setWindowFlags(Qt::Window
| Qt::WindowMinimizeButtonHint |
Qt::WindowStaysOnTopHint);
diff --git a/ldmicro/toolbar.cpp b/ldmicro/toolbar.cpp
index 99bba4b..f37ec43 100644
--- a/ldmicro/toolbar.cpp
+++ b/ldmicro/toolbar.cpp
@@ -53,21 +53,7 @@ void CreateToolBar()
DivIco = new QIcon(DIV_ICON);
CtuIco = new QIcon(CTU_ICON);
CtdIco = new QIcon(CTD_ICON);
- /*ContactBtn = new QAction(*ContactIco, "C-NO");
- NegContactBtn = new QAction(*NegContactIco, "C-NC");
- CoilBtn = new QAction(*CoilIco, "L-NO");
- NegCoilBtn = new QAction(*NegCoilIco, "L-NC");
- SetCoilBtn = new QAction(*SetCoilIco, "L-SO");
- ResetCoilBtn = new QAction(*ResetCoilIco, "L-RO");
- TonBtn = new QAction(*TonIco, "TON");
- TofBtn = new QAction(*TofIco, "TOF");
- RtoBtn = new QAction(*RtoIco, "RTO");
- AddBtn = new QAction(*AddIco, "Add");
- SubBtn = new QAction(*SubIco, "Sub");
- MulBtn = new QAction(*MulIco, "Mul");
- DivBtn = new QAction(*DivIco, "Div");
- CtuBtn = new QAction(*CtuIco, "CTU");
- CtdBtn = new QAction(*CtdIco, "CTD");*/
+
EasyAccessTool = new QToolBar();
EasyAccessTool->addSeparator();
ContactBtn = EasyAccessTool->addAction(*ContactIco, "Normal Contact");