Fix syntax error, add file changed/saved indicator
This commit is contained in:
parent
6028925475
commit
2767b03c01
12
Makefile
12
Makefile
@ -14,11 +14,7 @@ all:
|
||||
|
||||
dev: all
|
||||
|
||||
build:
|
||||
@mkdir -p build
|
||||
./cmake.sh Tyro
|
||||
|
||||
run: build
|
||||
run: all
|
||||
ifneq ($(OS),Darwin)
|
||||
./$(PROGRAM)
|
||||
else
|
||||
@ -27,11 +23,11 @@ endif
|
||||
|
||||
|
||||
ifeq ($(OS),Darwin)
|
||||
run-app:
|
||||
run-app: all
|
||||
open -a $(PWD)/build/Tyro.app
|
||||
endif
|
||||
|
||||
run-grind:
|
||||
run-grind: all
|
||||
valgrind $(PROGRAM)
|
||||
|
||||
# Make optimized and striped executable
|
||||
@ -80,8 +76,6 @@ run-tests: tests
|
||||
tests: $(TEST_RUNNER)
|
||||
./build/test_runner
|
||||
|
||||
|
||||
|
||||
tests-verbose: $(TEST_RUNNER)
|
||||
./build/test_runner -s
|
||||
|
||||
|
@ -194,7 +194,20 @@ bool EditPane::SaveFile(const wxString &filename)
|
||||
if (this->FileWritable())
|
||||
{
|
||||
this->SetSavePoint();
|
||||
return wxStyledTextCtrl::SaveFile(filename);
|
||||
bool saved = wxStyledTextCtrl::SaveFile(filename);
|
||||
|
||||
if (saved)
|
||||
{
|
||||
auto parent = (wxAuiNotebook*) this->GetParent();
|
||||
auto currentPage = parent->GetCurrentPage();
|
||||
auto idx = parent->GetPageIndex(currentPage);
|
||||
wxString currentTitle = parent->GetPageText(idx);
|
||||
|
||||
currentTitle.Replace("*", "");
|
||||
parent->SetPageText(idx, currentTitle);
|
||||
}
|
||||
|
||||
return saved;
|
||||
}
|
||||
|
||||
return false;
|
||||
@ -270,6 +283,25 @@ void EditPane::BindEvents()
|
||||
}
|
||||
}, wxID_ANY);
|
||||
|
||||
// On modification, update parent tab to show "dirtyness"
|
||||
this->Bind(wxEVT_STC_MODIFIED, [=](wxStyledTextEvent& event) {
|
||||
auto parent = (wxAuiNotebook*) this->GetParent();
|
||||
auto currentPage = parent->GetCurrentPage();
|
||||
auto idx = parent->GetPageIndex(currentPage);
|
||||
wxString currentTitle = parent->GetPageText(idx);
|
||||
|
||||
if (this->IsModified() && ! currentTitle.Contains("*"))
|
||||
{
|
||||
parent->SetPageText(idx, currentTitle + "*");
|
||||
}
|
||||
|
||||
if (currentTitle.Contains("*") && ! this->IsModified())
|
||||
{
|
||||
currentTitle.Replace("*", "");
|
||||
parent->SetPageText(idx, currentTitle);
|
||||
}
|
||||
}, wxID_ANY);
|
||||
|
||||
// this->Bind(wxEVT_STC_CHARADDED, &EditPane::OnCharAdded, this, wxID_ANY);
|
||||
}
|
||||
|
||||
@ -405,19 +437,19 @@ void EditPane::_ApplyTheme(JsonValue &lexer_map)
|
||||
}
|
||||
|
||||
// Set bold, if it applies
|
||||
if this->theme_config->GetThemeValue("bold", key).isBool())
|
||||
if (this->theme_config->GetThemeValue("bold", key).isBool())
|
||||
{
|
||||
this->StyleSetBold(i, this->theme_config->GetThemeValue("bold", key).asBool());
|
||||
}
|
||||
|
||||
// Italic
|
||||
if this->theme_config->GetThemeValue("italic", key).isBool())
|
||||
if (this->theme_config->GetThemeValue("italic", key).isBool())
|
||||
{
|
||||
this->StyleSetItalic(i, this->theme_config->GetThemeValue("italic", key).asBool());
|
||||
}
|
||||
|
||||
// Underline
|
||||
if this->theme_config->GetThemeValue("underline", key).isBool())
|
||||
if (this->theme_config->GetThemeValue("underline", key).isBool())
|
||||
{
|
||||
this->StyleSetUnderline(i, this->theme_config->GetThemeValue("underline", key).asBool());
|
||||
}
|
||||
|
@ -1,20 +1,17 @@
|
||||
#include "src/widgets/TyroMenu.h"
|
||||
#include "src/settings/LangConfig.h"
|
||||
|
||||
static LangConfig *lang_config = nullptr;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
TyroMenu::TyroMenu()
|
||||
{
|
||||
fileMenu = new wxMenu();
|
||||
editMenu = new wxMenu();
|
||||
viewMenu = new wxMenu();
|
||||
langMenu = new wxMenu();
|
||||
helpMenu = new wxMenu();
|
||||
this->fileMenu = new wxMenu();
|
||||
this->editMenu = new wxMenu();
|
||||
this->viewMenu = new wxMenu();
|
||||
this->langMenu = new wxMenu();
|
||||
this->helpMenu = new wxMenu();
|
||||
|
||||
lang_config = new LangConfig();
|
||||
this->lang_config = new LangConfig();
|
||||
|
||||
this->SetupMainMenus();
|
||||
this->SetupLangMenu();
|
||||
@ -33,7 +30,7 @@ TyroMenu::TyroMenu()
|
||||
TyroMenu::~TyroMenu()
|
||||
{
|
||||
wxLogDebug("TyroMenu Destructor Called.");
|
||||
delete lang_config;
|
||||
delete this->lang_config;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -44,41 +41,38 @@ TyroMenu::~TyroMenu()
|
||||
void TyroMenu::SetupMainMenus()
|
||||
{
|
||||
// Add items to top-level menus
|
||||
fileMenu->Append(wxID_NEW, "&New\tCtrl+N", "Create a new file");
|
||||
fileMenu->AppendSeparator();
|
||||
fileMenu->Append(wxID_OPEN, "&Open\tCtrl+O", "Opens an existing file");
|
||||
fileMenu->Append(myID_OPEN_DIR, "&Open Dir\tShift+Ctrl+O", "Opens the selected folder in the sidebar");
|
||||
|
||||
fileMenu->Append(wxID_SAVE, "&Save\tCtrl+S", "Save the content");
|
||||
fileMenu->Append(wxID_SAVEAS, "Save &As...\tShift+Ctrl+S", "Save current file as...");
|
||||
fileMenu->AppendSeparator();
|
||||
fileMenu->Append(wxID_CLOSE, "&Close\tCtrl+W", "Close the current document");
|
||||
fileMenu->Append(myID_CLOSE_ALL, "C&lose All\tShift+Ctrl+W", "Close all open documents.");
|
||||
fileMenu->Append(wxID_EXIT, "&Quit\tCtrl+Q", "Quit the application");
|
||||
this->fileMenu->Append(wxID_NEW, "&New\tCtrl+N", "Create a new file");
|
||||
this->fileMenu->AppendSeparator();
|
||||
this->fileMenu->Append(wxID_OPEN, "&Open\tCtrl+O", "Opens an existing file");
|
||||
this->fileMenu->Append(myID_OPEN_DIR, "&Open Dir\tShift+Ctrl+O", "Opens the selected folder in the sidebar");
|
||||
this->fileMenu->AppendSeparator();
|
||||
this->fileMenu->Append(wxID_SAVE, "&Save\tCtrl+S", "Save the content");
|
||||
this->fileMenu->Append(wxID_SAVEAS, "Save &As...\tShift+Ctrl+S", "Save current file as...");
|
||||
this->fileMenu->AppendSeparator();
|
||||
this->fileMenu->Append(wxID_CLOSE, "&Close\tCtrl+W", "Close the current document");
|
||||
this->fileMenu->Append(myID_CLOSE_ALL, "C&lose All\tShift+Ctrl+W", "Close all open documents.");
|
||||
this->fileMenu->Append(wxID_EXIT, "&Quit\tCtrl+Q", "Quit the application");
|
||||
|
||||
editMenu->Append(wxID_UNDO, "&Undo\tCtrl+Z", "Undo last action");
|
||||
editMenu->Append(wxID_REDO, "&Redo\tCtrl+Y", "Redo last action");
|
||||
editMenu->AppendSeparator();
|
||||
editMenu->Append(wxID_CUT, "Cu&t\tCtrl+X", "Cut selected text");
|
||||
editMenu->Append(wxID_COPY, "&Copy\tCtrl+C", "Copy selected text");
|
||||
editMenu->Append(wxID_PASTE, "&Paste\tCtrl+V", "Paste contents of clipboard");
|
||||
this->editMenu->Append(wxID_UNDO, "&Undo\tCtrl+Z", "Undo last action");
|
||||
this->editMenu->Append(wxID_REDO, "&Redo\tCtrl+Y", "Redo last action");
|
||||
this->editMenu->AppendSeparator();
|
||||
this->editMenu->Append(wxID_CUT, "Cu&t\tCtrl+X", "Cut selected text");
|
||||
this->editMenu->Append(wxID_COPY, "&Copy\tCtrl+C", "Copy selected text");
|
||||
this->editMenu->Append(wxID_PASTE, "&Paste\tCtrl+V", "Paste contents of clipboard");
|
||||
//editMenu->Append(wxID_DELETE, "&Delete\tDel");
|
||||
editMenu->AppendSeparator();
|
||||
editMenu->Append(wxID_FIND, "&Find\tCtrl+F");
|
||||
editMenu->Append(wxID_REPLACE, "&Replace\tCtrl+R");
|
||||
|
||||
editMenu->AppendSeparator();
|
||||
editMenu->Append(wxID_SELECTALL, "Select All\tCtrl+A", "Select all the text in the current document");
|
||||
#ifndef TRAVIS
|
||||
editMenu->AppendSeparator();
|
||||
editMenu->Append(wxID_PREFERENCES, "&Preferences\tCtrl+P");
|
||||
#endif
|
||||
this->editMenu->AppendSeparator();
|
||||
this->editMenu->Append(wxID_FIND, "&Find\tCtrl+F");
|
||||
this->editMenu->Append(wxID_REPLACE, "&Replace\tCtrl+R");
|
||||
this->editMenu->AppendSeparator();
|
||||
this->editMenu->Append(wxID_SELECTALL, "Select All\tCtrl+A", "Select all the text in the current document");
|
||||
this->editMenu->AppendSeparator();
|
||||
this->editMenu->Append(wxID_PREFERENCES, "&Preferences\tCtrl+P");
|
||||
|
||||
viewMenu->AppendCheckItem(myID_VIEW_WHITESPACE, "Show Invisible Characters\tCtrl+Shift+I", "Toggle visibility of white space characters");
|
||||
viewMenu->AppendCheckItem(myID_VIEW_LINE_ENDINGS, "Show line endings", "Toggle visibility of line ending characters");
|
||||
viewMenu->AppendCheckItem(myID_LINE_WRAP, "Word Wrap", "Toggle wrapping of long lines");
|
||||
this->viewMenu->AppendCheckItem(myID_VIEW_WHITESPACE, "Show Invisible Characters\tCtrl+Shift+I", "Toggle visibility of white space characters");
|
||||
this->viewMenu->AppendCheckItem(myID_VIEW_LINE_ENDINGS, "Show line endings", "Toggle visibility of line ending characters");
|
||||
this->viewMenu->AppendCheckItem(myID_LINE_WRAP, "Word Wrap", "Toggle wrapping of long lines");
|
||||
|
||||
helpMenu->Append(wxID_ABOUT, "&About...\tF1", "Show info about this application");
|
||||
this->helpMenu->Append(wxID_ABOUT, "&About...\tF1", "Show info about this application");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -4,6 +4,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "src/widgets/widget.h"
|
||||
#include "src/settings/LangConfig.h"
|
||||
|
||||
class TyroMenu : public wxMenuBar {
|
||||
public:
|
||||
@ -13,6 +14,7 @@ public:
|
||||
void SetIdChecked(int id, bool checked);
|
||||
void SetCurrentLanguage(string lang);
|
||||
private:
|
||||
LangConfig *lang_config = nullptr;
|
||||
wxMenu *fileMenu = nullptr;
|
||||
wxMenu *editMenu = nullptr;
|
||||
wxMenu *viewMenu = nullptr;
|
||||
@ -21,4 +23,4 @@ private:
|
||||
void SetupMainMenus();
|
||||
void SetupLangMenu();
|
||||
void EnableEntireMenu(size_t menuId, wxMenu *menu, bool enable);
|
||||
};
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user