Skip to content

Commit

Permalink
Merge pull request #360 from Jedi18/master
Browse files Browse the repository at this point in the history
Minor fix for context menu item connection
  • Loading branch information
feragon committed Sep 13, 2020
2 parents b4c701b + 64bc768 commit 3949a79
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 32 deletions.
2 changes: 2 additions & 0 deletions lcUI/lua/guibridge.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,8 @@ void addLCBindings(lua_State *L) {
.addFunction("invertSelection", &lc::ui::MainWindow::invertSelection)
.addFunction("runLastOperation", &lc::ui::MainWindow::runLastOperation)
.addFunction("currentOperation", &lc::ui::MainWindow::currentOperation)
.addFunction("copySelectedEntities", &lc::ui::MainWindow::copySelectedEntities)
.addFunction("pasteEvent", &lc::ui::MainWindow::pasteEvent)
.addOverloadedFunctions("addMenu", static_cast<lc::ui::api::Menu*(lc::ui::MainWindow::*)(const std::string&)>(&lc::ui::MainWindow::addMenu), static_cast<void(lc::ui::MainWindow::*)(lc::ui::api::Menu*)>(&lc::ui::MainWindow::addMenu))
.addOverloadedFunctions("removeMenu", static_cast<void(lc::ui::MainWindow::*)(const char*)>(&lc::ui::MainWindow::removeMenu), static_cast<void(lc::ui::MainWindow::*)(int)>(&lc::ui::MainWindow::removeMenu))
.addOverloadedFunctions("runOperation", &lc::ui::MainWindow::runOperation, [](lc::ui::MainWindow& self, kaguya::LuaRef operation) {
Expand Down
61 changes: 29 additions & 32 deletions lcUI/mainwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -55,18 +55,45 @@ MainWindow::MainWindow()

_toolbar.addSnapOptions();

addOtherMenus();

_toolbar.generateButtonsMap();
readUiSettings();

_cadMdiChild.viewer()->setContextMenuManagerId(_contextMenuManagerId);

PropertyEditor* propertyEditor = PropertyEditor::GetPropertyEditor(this);
this->addDockWidget(Qt::BottomDockWidgetArea, propertyEditor);

/* Shortcuts */
copyShortcut = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_C), this);
pasteShortcut = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_V), this);

connect(copyShortcut, &QShortcut::activated, [this]() { this->copySelectedEntities(this->cadMdiChild()->selection()); });
connect(pasteShortcut, &QShortcut::activated, this, &MainWindow::pasteEvent);

this->resizeDocks({ &_cliCommand, propertyEditor }, { 65, 35 }, Qt::Horizontal);
}

MainWindow::~MainWindow()
{
WindowManager::removeWindow(this);
delete ui;
}

void MainWindow::addOtherMenus() {
// add lua script
kaguya::State state(_luaInterface.luaState());
state.dostring("run_luascript = function() lc.LuaScript(mainWindow):show() end");
state.dostring("run_customizetoolbar = function() mainWindow:runCustomizeToolbar() end");
state["run_aboutdialog"] = kaguya::function([&] {
auto aboutDialog = new dialog::AboutDialog(this);
aboutDialog->show();
});
});
state["run_textdialog"] = kaguya::function([&] {
auto textDialog = new dialog::TextDialog(this, this);
textDialog->show();
});
});

api::Menu* luaMenu = addMenu("Lua");
luaMenu->addItem("Run script", state["run_luascript"]);
Expand All @@ -91,36 +118,6 @@ MainWindow::MainWindow()
if (textMenu != nullptr) {
textMenu->addItem("Text Dialog", state["run_textdialog"]);
}

_toolbar.generateButtonsMap();
readUiSettings();

_cadMdiChild.viewer()->setContextMenuManagerId(_contextMenuManagerId);

PropertyEditor* propertyEditor = PropertyEditor::GetPropertyEditor(this);
this->addDockWidget(Qt::BottomDockWidgetArea, propertyEditor);

/* Shortcuts */
copyShortcut = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_C), this);
pasteShortcut = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_V), this);

connect(copyShortcut, &QShortcut::activated, [this]() { this->copySelectedEntities(this->cadMdiChild()->selection()); });
connect(pasteShortcut, &QShortcut::activated, this, &MainWindow::pasteEvent);

this->resizeDocks({ &_cliCommand, propertyEditor }, { 65, 35 }, Qt::Horizontal);

/*QStringList fontPaths = QStandardPaths::standardLocations(QStandardPaths::FontsLocation);
std::vector<std::string> fontPathList;
for (QString font : fontPaths) {
fontPathList.push_back(font.toStdString());
}
_cadMdiChild.viewer()->documentCanvas()->addFontsFromPath(fontPathList);*/
}

MainWindow::~MainWindow()
{
WindowManager::removeWindow(this);
delete ui;
}

void MainWindow::runOperation(kaguya::LuaRef operation, const std::string& init_method) {
Expand Down
5 changes: 5 additions & 0 deletions lcUI/mainwindow.h
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,11 @@ namespace lc
*/
void selectionChanged();

/**
* \brief Add other additional menus
*/
void addOtherMenus();

public slots:
// CadMdiChild slots
void triggerMousePressed();
Expand Down

0 comments on commit 3949a79

Please sign in to comment.