summaryrefslogtreecommitdiff
path: root/core/src/UI
diff options
context:
space:
mode:
authorrtk0c <[email protected]>2021-04-01 22:18:46 -0700
committerrtk0c <[email protected]>2021-04-01 22:18:46 -0700
commit2f4b9db39239ed5150094a81743beea42a3eedc2 (patch)
tree7d5795f7c23eb4f92ccffe2476da019db9977f2b /core/src/UI
parent44f5fa5c8f258e8fc1f7d7e2e45e0485bd6cc490 (diff)
Initial work on SQLite database
Diffstat (limited to 'core/src/UI')
-rw-r--r--core/src/UI/UI_MainWindow.cpp31
1 files changed, 15 insertions, 16 deletions
diff --git a/core/src/UI/UI_MainWindow.cpp b/core/src/UI/UI_MainWindow.cpp
index 661c535..a47efab 100644
--- a/core/src/UI/UI_MainWindow.cpp
+++ b/core/src/UI/UI_MainWindow.cpp
@@ -15,18 +15,6 @@
namespace fs = std::filesystem;
namespace {
-bool LoadProjectAt(const std::filesystem::path& path) {
- auto& uis = UIState::GetInstance();
- try {
- auto project = Project::Load(path);
- uis.SetCurrentProject(std::make_unique<Project>(std::move(project)));
-
- return true;
- } catch (const std::exception& e) {
- return false;
- }
-}
-
void ProjectTab_Normal() {
auto ls = LocaleStrings::Instance.get();
auto& gs = GlobalStates::GetInstance();
@@ -100,8 +88,7 @@ void ProjectTab_NoProject() {
if (ImGui::Button(ls->DialogConfirm.Get(), !dirNameIsValid || projectName.empty())) {
ImGui::CloseCurrentPopup();
- auto project = Project::Create(std::move(projectName), dirPath);
- uis.SetCurrentProject(std::make_unique<Project>(std::move(project)));
+ uis.SetCurrentProject(std::make_unique<Project>(std::move(dirPath), std::move(projectName)));
// Dialog just got closed, reset states
projectName = "";
@@ -123,7 +110,14 @@ void ProjectTab_NoProject() {
auto selection = pfd::open_file(ls->OpenProjectDialogTitle.Get()).result();
if (!selection.empty()) {
fs::path path(selection[0]);
- openErrorDialog = !LoadProjectAt(path);
+
+ try {
+ // Project's constructor wants a path to directory containing cplt_project.json
+ uis.SetCurrentProject(std::make_unique<Project>(path.parent_path()));
+ openErrorDialog = false;
+ } catch (const std::exception& e) {
+ openErrorDialog = true;
+ }
}
}
@@ -154,7 +148,12 @@ void ProjectTab_NoProject() {
ImGui::SameLine();
if (ImGui::Button(ICON_FA_FOLDER_OPEN)) {
- openErrorDialog = !LoadProjectAt(path / "cplt_project.json");
+ try {
+ uis.SetCurrentProject(std::make_unique<Project>(path));
+ openErrorDialog = false;
+ } catch (const std::exception& e) {
+ openErrorDialog = true;
+ }
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("%s", ls->OpenRecentProjectTooltip.Get());