mirror of
https://github.com/Poikilos/b3view.git
synced 2023-10-03 07:58:48 -07:00
Use std::runtime_error to fix exception conversions.
This commit is contained in:
parent
7761dea137
commit
a686c61f1d
@ -72,12 +72,17 @@ void Engine::setEnableTextureInterpolation(bool EnableTextureInterpolation)
|
||||
|
||||
void Engine::addRecent(std::string path)
|
||||
{
|
||||
try {
|
||||
if (!this->hasRecent(path)) {
|
||||
int count = this->countRecent();
|
||||
std::string name = "recent" + std::to_string(count);
|
||||
this->settings.set(name, path);
|
||||
}
|
||||
}
|
||||
catch (const std::runtime_error& ex) {
|
||||
std::cerr << ex.what();
|
||||
}
|
||||
}
|
||||
|
||||
void Engine::addRecentPaths(std::vector<std::string> paths)
|
||||
{
|
||||
|
@ -794,12 +794,12 @@ void UserInterface::clearRecent()
|
||||
void UserInterface::addRecentMenuItem(std::string path, bool addToEngine)
|
||||
{
|
||||
if (!this->recent_initialized) {
|
||||
throw std::string("The UI is not ready in addRecent.");
|
||||
throw std::runtime_error("The UI is not ready in addRecent.");
|
||||
}
|
||||
if (!this->hasRecent(path)) {
|
||||
wstring path_ws = Utility::toWstring(path);
|
||||
if (this->uic_file_recent_next < UserInterface::UIC_FILE_RECENT_FIRST) {
|
||||
throw std::string("this->uic_file_recent_next is "
|
||||
throw std::runtime_error("this->uic_file_recent_next is "
|
||||
+ std::to_string(this->uic_file_recent_next)
|
||||
+ " but should be equal to or greater than first: "
|
||||
+ std::to_string(this->uic_file_recent_next));
|
||||
@ -821,17 +821,23 @@ void UserInterface::addRecentMenuItem(std::string path, bool addToEngine)
|
||||
void UserInterface::addRecentMenuItems(std::vector<std::string> paths, bool addToEngine)
|
||||
{
|
||||
if (!this->recent_initialized) {
|
||||
throw std::string("The UI is not ready in addRecent.");
|
||||
throw std::runtime_error("The UI is not ready in addRecent.");
|
||||
}
|
||||
for (std::vector<std::string>::iterator it = paths.begin() ; it != paths.end(); ++it) {
|
||||
try {
|
||||
this->addRecentMenuItem(*it, addToEngine);
|
||||
}
|
||||
catch (const std::runtime_error& ex) {
|
||||
cerr << ex.what();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool UserInterface::hasRecent(std::string path)
|
||||
{
|
||||
if (!this->recent_initialized) {
|
||||
throw std::string("The UI is not ready in addRecent.");
|
||||
throw std::runtime_error("The UI is not ready in addRecent.");
|
||||
}
|
||||
for (std::vector<u32>::iterator uiIt = this->recentIndices.begin() ; uiIt != this->recentIndices.end(); ++uiIt) {
|
||||
IGUIContextMenu* menu = this->recentMenu->getSubMenu(*uiIt);
|
||||
@ -843,7 +849,7 @@ bool UserInterface::hasRecent(std::string path)
|
||||
else {
|
||||
const std::string msg = "There was no menu for " + std::to_string(*uiIt) + " in hasRecent";
|
||||
cerr << msg << endl;
|
||||
throw std::string(msg);
|
||||
throw std::runtime_error(msg);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
@ -852,7 +858,7 @@ bool UserInterface::hasRecent(std::string path)
|
||||
void UserInterface::openRecent(s32 menuID, std::wstring menuText)
|
||||
{
|
||||
if (!this->recent_initialized) {
|
||||
throw std::string("The UI is not ready in addRecent.");
|
||||
throw std::runtime_error("The UI is not ready in addRecent.");
|
||||
}
|
||||
IGUIElement* menu = this->recentMenu->getElementFromId(menuID);
|
||||
std::string path = Utility::toString(menu->getText());
|
||||
@ -899,8 +905,16 @@ bool UserInterface::OnEvent(const SEvent& event)
|
||||
else {
|
||||
result = m_Engine->loadMesh(fileOpenDialog->getFileName());
|
||||
}
|
||||
this->addRecentMenuItem(Utility::toString(path), true);
|
||||
if (result) {
|
||||
try {
|
||||
|
||||
this->addRecentMenuItem(Utility::toString(path), true);
|
||||
}
|
||||
catch (const std::runtime_error& ex) {
|
||||
cerr << ex.what();
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!result) {
|
||||
this->m_Engine->m_Device->getGUIEnvironment()->addMessageBox(
|
||||
L"Load Mesh", L"The model is inaccessible or not in a compatible format.");
|
||||
|
@ -2,10 +2,10 @@
|
||||
1554970747 source:/opt/b3view/Debug.cpp
|
||||
"Debug.h"
|
||||
|
||||
1554970753 /opt/b3view/Debug.h
|
||||
1616415754 /opt/b3view/Debug.h
|
||||
<iostream>
|
||||
|
||||
1613679774 source:/opt/b3view/Engine.cpp
|
||||
1616415912 source:/opt/b3view/Engine.cpp
|
||||
<string>
|
||||
<filesystem>
|
||||
"Engine.h"
|
||||
@ -76,7 +76,7 @@
|
||||
"Engine.h"
|
||||
<Windows.h>
|
||||
|
||||
1613683794 source:/opt/b3view/settings.cpp
|
||||
1616415840 source:/opt/b3view/settings.cpp
|
||||
"Utility.h"
|
||||
"settings.h"
|
||||
<fstream>
|
||||
@ -85,7 +85,7 @@
|
||||
<algorithm>
|
||||
<assert.h>
|
||||
|
||||
1613683794 source:/opt/b3view/UserInterface.cpp
|
||||
1616415979 source:/opt/b3view/UserInterface.cpp
|
||||
"Debug.h"
|
||||
"Engine.h"
|
||||
"Utility.h"
|
||||
|
14
readme.md
14
readme.md
@ -11,6 +11,20 @@ Website: [poikilos.org](https://poikilos.org)
|
||||
|
||||
## Requirements
|
||||
* libirrlicht
|
||||
(or libirrlicht1.8)
|
||||
|
||||
### Development
|
||||
|
||||
* libirrlicht-dbg
|
||||
(or libirrlicht1.8-dbg)
|
||||
* libfreetype6-dev
|
||||
- In CodeBlocks (once per computer): Settings, Compiler, Search paths, /usr/include/freetype2
|
||||
- Ensure includes do not put freetype2 first (that directory contains freetype and ft2build.h. Also, freetype itself does its includes as freetype not freetype2/freetype).
|
||||
|
||||
CodeBlocks says it is looking for boost_filesystem and boost_system, which may be due to Irrlicht.
|
||||
* libbost-filesystem-dev
|
||||
- In CodeBlocks (once per computer): Settings, Compiler, Search paths, /usr/include/freetype2
|
||||
* libboost-system-dev
|
||||
|
||||
## Main Features in poikilos fork
|
||||
* stabilized (makes sure font, model or texture loads before using;
|
||||
|
@ -194,7 +194,7 @@ bool Settings::save(std::string path)
|
||||
bool Settings::save()
|
||||
{
|
||||
if (this->path.length() == 0) {
|
||||
throw std::string("There is no path during save().");
|
||||
throw std::runtime_error("There is no path during save().");
|
||||
}
|
||||
return this->save(this->path);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user