Skip to content

Commit

Permalink
#5721: Implement the converter algorithm
Browse files Browse the repository at this point in the history
  • Loading branch information
codereader committed Aug 22, 2021
1 parent 77aa7eb commit 5ead4e9
Show file tree
Hide file tree
Showing 5 changed files with 81 additions and 196 deletions.
136 changes: 0 additions & 136 deletions install/ui/convertmodeldialog.fbp
Expand Up @@ -715,142 +715,6 @@
</object>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">6</property>
<property name="flag">wxBOTTOM|wxTOP</property>
<property name="proportion">0</property>
<object class="wxStaticText" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Export Options</property>
<property name="markup">0</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">OptionsLabel</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<property name="wrap">-1</property>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">12</property>
<property name="flag">wxEXPAND|wxLEFT</property>
<property name="proportion">0</property>
<object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property>
<property name="name">bSizer20</property>
<property name="orient">wxVERTICAL</property>
<property name="permission">none</property>
<object class="sizeritem" expanded="0">
<property name="border">6</property>
<property name="flag">wxBOTTOM|wxTOP</property>
<property name="proportion">0</property>
<object class="wxCheckBox" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="checked">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Center Objects around Origin</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">CenterObjects</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
</object>
</object>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">12</property>
<property name="flag">wxALIGN_RIGHT|wxLEFT|wxTOP</property>
Expand Down
26 changes: 0 additions & 26 deletions install/ui/convertmodeldialog.xrc
Expand Up @@ -130,32 +130,6 @@
</object>
</object>
</object>
<object class="sizeritem">
<option>0</option>
<flag>wxBOTTOM|wxTOP</flag>
<border>6</border>
<object class="wxStaticText" name="OptionsLabel">
<label>Export Options</label>
<wrap>-1</wrap>
</object>
</object>
<object class="sizeritem">
<option>0</option>
<flag>wxEXPAND|wxLEFT</flag>
<border>12</border>
<object class="wxBoxSizer">
<orient>wxVERTICAL</orient>
<object class="sizeritem">
<option>0</option>
<flag>wxBOTTOM|wxTOP</flag>
<border>6</border>
<object class="wxCheckBox" name="CenterObjects">
<label>Center Objects around Origin</label>
<checked>0</checked>
</object>
</object>
</object>
</object>
<object class="sizeritem">
<option>0</option>
<flag>wxALIGN_RIGHT|wxLEFT|wxTOP</flag>
Expand Down
25 changes: 4 additions & 21 deletions radiant/ui/modelexport/ConvertModelDialog.cpp
Expand Up @@ -35,7 +35,6 @@ namespace
{
const char* const WINDOW_TITLE = N_("Convert Model");

const char* RKEY_MODEL_CONVERSION_CENTER_OBJECTS = "user/ui/convertModel/centerObjects";
const char* RKEY_MODEL_CONVERSION_INPUT_PATH = "user/ui/convertModel/inputPath";
const char* RKEY_MODEL_CONVERSION_OUTPUT_PATH = "user/ui/convertModel/outputPath";
const char* RKEY_MODEL_CONVERSION_OUTPUT_FORMAT = "user/ui/convertModel/outputFormat";
Expand All @@ -56,7 +55,6 @@ void ConvertModelDialog::populateWindow()

makeLabelBold(this, "InputPathLabel");
makeLabelBold(this, "OutputPathLabel");
makeLabelBold(this, "OptionsLabel");
makeLabelBold(this, "InfoLabel");

wxButton* exportButton = findNamedObject<wxButton>(this, "ConvertButton");
Expand Down Expand Up @@ -99,13 +97,6 @@ void ConvertModelDialog::populateWindow()
}

recentOutputPath = os::standardPathWithSlash(recentOutputPath) + "models/";

if (!os::fileOrDirExists(recentOutputPath))
{
rMessage() << "Creating default model output folder: " << recentOutputPath << std::endl;

os::makeDirectory(recentOutputPath);
}
}

if (!recentFormat.empty())
Expand All @@ -131,9 +122,6 @@ void ConvertModelDialog::populateWindow()
// we do this ourselves in this class when the user hits OK
pathEntry->setAskForOverwrite(false);

bool centerObjects = registry::getValue<bool>(RKEY_MODEL_CONVERSION_CENTER_OBJECTS);
findNamedObject<wxCheckBox>(this, "CenterObjects")->SetValue(centerObjects);

auto* infoPanel = findNamedObject<wxPanel>(this, "InfoPanel");

// Create info panel
Expand All @@ -151,10 +139,9 @@ void ConvertModelDialog::populateWindow()

void ConvertModelDialog::onConvert(wxCommandEvent& ev)
{
bool centerObjects = findNamedObject<wxCheckBox>(this, "CenterObjects")->GetValue();
std::string inputFilename = findNamedObject<wxutil::PathEntry>(this, "InputPathFilePicker")->getValue();
std::string outputFilename = findNamedObject<wxutil::PathEntry>(this, "OutputPathFilePicker")->getValue();
std::string outputFormat = wxutil::ChoiceHelper::GetSelectedStoredString(findNamedObject<wxChoice>(this, "OutputFormatChoice"));
auto inputFilename = findNamedObject<wxutil::PathEntry>(this, "InputPathFilePicker")->getValue();
auto outputFilename = findNamedObject<wxutil::PathEntry>(this, "OutputPathFilePicker")->getValue();
auto outputFormat = wxutil::ChoiceHelper::GetSelectedStoredString(findNamedObject<wxChoice>(this, "OutputFormatChoice"));

if (inputFilename.empty())
{
Expand All @@ -181,13 +168,12 @@ void ConvertModelDialog::onConvert(wxCommandEvent& ev)

try
{
// ConvertModel <InputPath> <OutputPath> <ExportFormat> [<CenterObjects>]
// ConvertModel <InputPath> <OutputPath> <ExportFormat>
cmd::ArgumentList argList;

argList.push_back(inputFilename);
argList.push_back(outputFilename);
argList.push_back(outputFormat);
argList.push_back(centerObjects);

GlobalCommandSystem().executeCommand("ConvertModel", argList);

Expand Down Expand Up @@ -292,9 +278,6 @@ void ConvertModelDialog::saveOptionsToRegistry()
findNamedObject<wxutil::PathEntry>(this, "OutputPathFilePicker")->getValue());
registry::setValue(RKEY_MODEL_CONVERSION_INPUT_PATH,
findNamedObject<wxutil::PathEntry>(this, "InputPathFilePicker")->getValue());

registry::setValue(RKEY_MODEL_CONVERSION_CENTER_OBJECTS,
findNamedObject<wxCheckBox>(this, "CenterObjects")->GetValue());
}

void ConvertModelDialog::ShowDialog(const cmd::ArgumentList& args)
Expand Down

0 comments on commit 5ead4e9

Please sign in to comment.