Skip to content
This repository was archived by the owner on Oct 21, 2024. It is now read-only.

Commit 53956a2

Browse files
authored
v1.3+1.7.2 safe mode
1 parent 464c2e5 commit 53956a2

File tree

5 files changed

+57
-32
lines changed

5 files changed

+57
-32
lines changed

CMakeLists.txt.user

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<!DOCTYPE QtCreatorProject>
3-
<!-- Written by QtCreator 14.0.1, 2024-10-15T09:01:28. -->
3+
<!-- Written by QtCreator 14.0.1, 2024-10-15T10:49:00. -->
44
<qtcreator>
55
<data>
66
<variable>EnvironmentId</variable>
@@ -109,14 +109,14 @@
109109
<value type="int" key="CMake.Configure.BaseEnvironment">2</value>
110110
<value type="bool" key="CMake.Configure.ClearSystemEnvironment">false</value>
111111
<valuelist type="QVariantList" key="CMake.Configure.UserEnvironmentChanges"/>
112-
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}
113-
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
112+
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX}
113+
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}
114114
-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx}
115-
-DCMAKE_BUILD_TYPE:STRING=Debug
115+
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
116116
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
117-
-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX}
118-
-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG}
119-
-DCMAKE_GENERATOR:STRING=Ninja</value>
117+
-DCMAKE_BUILD_TYPE:STRING=Debug
118+
-DCMAKE_GENERATOR:STRING=Ninja
119+
-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG}</value>
120120
<value type="int" key="EnableQmlDebugging">0</value>
121121
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:\Users\14354\Documents\Qt Projects\MicrologicIDE\build\Desktop_Qt_6_7_2_MinGW_64_bit-Debug</value>
122122
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
@@ -166,14 +166,14 @@
166166
<value type="int" key="CMake.Configure.BaseEnvironment">2</value>
167167
<value type="bool" key="CMake.Configure.ClearSystemEnvironment">false</value>
168168
<valuelist type="QVariantList" key="CMake.Configure.UserEnvironmentChanges"/>
169-
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}
170-
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
169+
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX}
170+
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}
171171
-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx}
172-
-DCMAKE_BUILD_TYPE:STRING=Release
172+
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
173173
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
174-
-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX}
175-
-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG}
176-
-DCMAKE_GENERATOR:STRING=Ninja</value>
174+
-DCMAKE_BUILD_TYPE:STRING=Release
175+
-DCMAKE_GENERATOR:STRING=Ninja
176+
-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG}</value>
177177
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:\Users\14354\Documents\Qt Projects\MicrologicIDE\build\Desktop_Qt_6_7_2_MinGW_64_bit-Release</value>
178178
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
179179
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
@@ -222,14 +222,14 @@
222222
<value type="int" key="CMake.Configure.BaseEnvironment">2</value>
223223
<value type="bool" key="CMake.Configure.ClearSystemEnvironment">false</value>
224224
<valuelist type="QVariantList" key="CMake.Configure.UserEnvironmentChanges"/>
225-
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}
226-
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
225+
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX}
226+
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}
227227
-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx}
228-
-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo
228+
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
229229
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
230-
-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX}
231-
-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG}
232-
-DCMAKE_GENERATOR:STRING=Ninja</value>
230+
-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo
231+
-DCMAKE_GENERATOR:STRING=Ninja
232+
-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG}</value>
233233
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:\Users\14354\Documents\Qt Projects\MicrologicIDE\build\Desktop_Qt_6_7_2_MinGW_64_bit-RelWithDebInfo</value>
234234
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
235235
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
@@ -276,14 +276,14 @@
276276
<value type="int" key="CMake.Configure.BaseEnvironment">2</value>
277277
<value type="bool" key="CMake.Configure.ClearSystemEnvironment">false</value>
278278
<valuelist type="QVariantList" key="CMake.Configure.UserEnvironmentChanges"/>
279-
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}
280-
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
279+
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX}
280+
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}
281281
-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx}
282-
-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo
282+
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
283283
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
284-
-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX}
285-
-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG}
286-
-DCMAKE_GENERATOR:STRING=Ninja</value>
284+
-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo
285+
-DCMAKE_GENERATOR:STRING=Ninja
286+
-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG}</value>
287287
<value type="int" key="EnableQmlDebugging">0</value>
288288
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:\Users\14354\Documents\Qt Projects\MicrologicIDE\build\Desktop_Qt_6_7_2_MinGW_64_bit-Profile</value>
289289
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
@@ -331,14 +331,14 @@
331331
<value type="int" key="CMake.Configure.BaseEnvironment">2</value>
332332
<value type="bool" key="CMake.Configure.ClearSystemEnvironment">false</value>
333333
<valuelist type="QVariantList" key="CMake.Configure.UserEnvironmentChanges"/>
334-
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}
335-
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
334+
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX}
335+
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}
336336
-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx}
337-
-DCMAKE_BUILD_TYPE:STRING=MinSizeRel
337+
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
338338
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
339-
-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX}
340-
-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG}
341-
-DCMAKE_GENERATOR:STRING=Ninja</value>
339+
-DCMAKE_BUILD_TYPE:STRING=MinSizeRel
340+
-DCMAKE_GENERATOR:STRING=Ninja
341+
-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG}</value>
342342
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:\Users\14354\Documents\Qt Projects\MicrologicIDE\build\Desktop_Qt_6_7_2_MinGW_64_bit-MinSizeRel</value>
343343
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
344344
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">

Micrologic.exe

0 Bytes
Binary file not shown.

MicrologicIDE.cpp

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ MicrologicIDE::MicrologicIDE(QWidget *parent) : QMainWindow(parent), ui(new Ui::
5151

5252
connect(ui->darkModeAction, &QAction::triggered, this, &MicrologicIDE::darkMode);
5353
connect(ui->lightModeAction, &QAction::triggered, this, &MicrologicIDE::lightMode);
54+
connect(ui->safeModeAction, &QAction::triggered, this, &MicrologicIDE::safeMode);
5455

5556
connect(ui->runAction, &QAction::triggered, this, &MicrologicIDE::runFile);
5657
connect(debugger, SIGNAL(fileChanged(QString)), this, SLOT(updateDebug()));
@@ -359,6 +360,14 @@ void MicrologicIDE::darkMode(){
359360
blankChars={" ","\n",errorStart,errorEnd,"<br>"};
360361
}
361362

363+
void MicrologicIDE::safeMode(){
364+
safe=!safe;
365+
makeMarks();
366+
QAction *action = findChild<QAction*>("safeModeAction");
367+
if(!action) return;
368+
action->setText(safe?"关闭安全模式":"打开安全模式");
369+
}
370+
362371
int countInput(std::vector<std::string> lines){
363372
int ans=0;
364373
for(int i=0;i<lines.size();i++){
@@ -456,7 +465,10 @@ std::vector<bool> MicrologicIDE::grammarCheck(std::vector<std::string> lines){
456465
while (std::getline(ss, s, ' ')) {
457466
args.push_back(s);
458467
}
459-
if(args.size()==0) ans[i]=true;
468+
if(safe&&count(unsafeKeys.begin(),unsafeKeys.end(),args[0])){
469+
ans[i]=false;
470+
}
471+
else if(args.size()==0) ans[i]=true;
460472
else if(args[0]=="end"||args[0]=="clear"){
461473
ans[i]=args.size()==1;
462474
}

MicrologicIDE.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ class MicrologicIDE : public QMainWindow
1717
public:
1818
std::string currentContent;
1919
std::string path;
20+
bool safe=false;
2021

2122
std::string errorStart{},errorEnd{};
2223
std::string keyStart{},keyEnd{};
@@ -31,6 +32,8 @@ class MicrologicIDE : public QMainWindow
3132

3233
std::vector<std::string> blankChars;
3334
const std::vector<std::string> keys={"end","line","wline","N","A","R","T","C","P","set","check","input:","input","output:","output","tick","tick!","speed","path","open","safe-open","mod","check-mods","block","block-type","tag","type","check-input","check-output","inspect","del","export","echo","@echo","clear","help","lang"};
35+
const std::vector<std::string> unsafeKeys={"end","check","output","tick","tick!","path","check-mods","block-type","tag","type","check-input","check-output","inspect","del","export","clear","help","lang"};
36+
3437
const std::vector<std::string> nums={"0","1","2","3","4","5","6","7","8","9"};
3538

3639
explicit MicrologicIDE(QWidget *parent = 0);
@@ -66,6 +69,7 @@ class MicrologicIDE : public QMainWindow
6669

6770
void lightMode();
6871
void darkMode();
72+
void safeMode();
6973

7074
int charCount(int,int);
7175

MicrologicIDE.ui

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@
9191
</property>
9292
<addaction name="lightModeAction"/>
9393
<addaction name="darkModeAction"/>
94+
<addaction name="safeModeAction"/>
9495
</widget>
9596
<widget class="QMenu" name="menu_H">
9697
<property name="title">
@@ -289,6 +290,14 @@
289290
<string>浅色模式</string>
290291
</property>
291292
</action>
293+
<action name="safeModeAction">
294+
<property name="text">
295+
<string>打开安全模式</string>
296+
</property>
297+
<property name="shortcut">
298+
<string>Alt+S</string>
299+
</property>
300+
</action>
292301
</widget>
293302
<layoutdefault spacing="6" margin="11"/>
294303
<resources>

0 commit comments

Comments
 (0)