Skip to content

Commit

Permalink
#6131: Refactor Python Script Panel
Browse files Browse the repository at this point in the history
  • Loading branch information
codereader committed Oct 15, 2022
1 parent 35fed5b commit 2528f11
Show file tree
Hide file tree
Showing 5 changed files with 49 additions and 15 deletions.
37 changes: 37 additions & 0 deletions radiant/ui/script/ScriptPanel.h
@@ -0,0 +1,37 @@
#pragma once

#include "i18n.h"
#include "ui/iusercontrol.h"
#include "ScriptWindow.h"

namespace ui
{

class ScriptPanel :
public IUserControl
{
public:
constexpr static const char* const Name = "ScriptPanel";

std::string getControlName() override
{
return Name;
}

std::string getDisplayName() override
{
return _("Script");
}

std::string getIcon() override
{
return "icon_script.png";
}

wxWindow* createWidget(wxWindow* parent) override
{
return new ScriptWindow(parent);
}
};

}
20 changes: 8 additions & 12 deletions radiant/ui/script/ScriptUserInterfaceModule.cpp
Expand Up @@ -6,10 +6,11 @@
#include "ui/imainframe.h"
#include "i18n.h"
#include "ui/igroupdialog.h"
#include "ui/iuserinterface.h"
#include "module/StaticModule.h"

#include "ScriptMenu.h"
#include "ScriptWindow.h"
#include "ScriptPanel.h"

namespace ui
{
Expand Down Expand Up @@ -37,6 +38,7 @@ class ScriptUserInterfaceModule :
MODULE_SCRIPTING_SYSTEM,
MODULE_MENUMANAGER,
MODULE_MAINFRAME,
MODULE_USERINTERFACE,
};

return _dependencies;
Expand All @@ -59,10 +61,14 @@ class ScriptUserInterfaceModule :

_scriptsReloadedConn = GlobalScriptingSystem().signal_onScriptsReloaded()
.connect(sigc::mem_fun(this, &ScriptUserInterfaceModule::onScriptsReloaded));

GlobalUserInterface().registerControl(std::make_shared<ScriptPanel>());
}

void shutdownModule() override
{
GlobalUserInterface().unregisterControl(ScriptPanel::Name);

_scriptsReloadedConn.disconnect();
_scriptMenu.reset();
}
Expand All @@ -78,17 +84,7 @@ class ScriptUserInterfaceModule :
{
_scriptMenu = std::make_shared<ScriptMenu>();

// Add the scripting widget to the groupdialog
IGroupDialog::PagePtr page(new IGroupDialog::Page);

page->name = "ScriptWindow";
page->windowLabel = _("Script");
page->page = new ScriptWindow(GlobalMainFrame().getWxTopLevelWindow());
page->tabIcon = "icon_script.png";
page->tabLabel = _("Script");
page->position = IGroupDialog::Page::Position::Console - 10; // insert before console

GlobalGroupDialog().addPage(page);
GlobalGroupDialog().addControl(ScriptPanel::Name);
}
};

Expand Down
3 changes: 0 additions & 3 deletions radiant/ui/script/ScriptWindow.h
Expand Up @@ -11,9 +11,6 @@ namespace wxutil { class PythonSourceViewCtrl; }
namespace ui
{

class ScriptWindow;
typedef std::shared_ptr<ScriptWindow> ScriptWindowPtr;

class ScriptWindow :
public wxPanel
{
Expand Down
1 change: 1 addition & 0 deletions tools/msvc/DarkRadiant.vcxproj
Expand Up @@ -565,6 +565,7 @@
<ClInclude Include="..\..\radiant\ui\prefdialog\PreferenceItem.h" />
<ClInclude Include="..\..\radiant\ui\prefdialog\PrefPage.h" />
<ClInclude Include="..\..\radiant\ui\script\ScriptMenu.h" />
<ClInclude Include="..\..\radiant\ui\script\ScriptPanel.h" />
<ClInclude Include="..\..\radiant\ui\script\ScriptWindow.h" />
<ClInclude Include="..\..\radiant\ui\SelectionModeToggle.h" />
<ClInclude Include="..\..\radiant\ui\selectionset\SelectionSetToolmenu.h" />
Expand Down
3 changes: 3 additions & 0 deletions tools/msvc/DarkRadiant.vcxproj.filters
Expand Up @@ -1410,6 +1410,9 @@
<ClInclude Include="..\..\radiant\ui\favourites\FavouritesBrowserControl.h">
<Filter>src\ui\favourites</Filter>
</ClInclude>
<ClInclude Include="..\..\radiant\ui\script\ScriptPanel.h">
<Filter>src\ui\script</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\radiant\darkradiant.rc" />
Expand Down

0 comments on commit 2528f11

Please sign in to comment.