prepare UI for release, disable unused features, rename file format to .ppi
This commit is contained in:
@@ -27,7 +27,7 @@ void global_exception_handler(NSException* e)
|
|||||||
[alert runModal];
|
[alert runModal];
|
||||||
|
|
||||||
if (App::I.canvas && App::I.canvas->m_canvas)
|
if (App::I.canvas && App::I.canvas->m_canvas)
|
||||||
App::I.canvas->m_canvas->project_save_thread(App::I.data_path + "/recovery.pano");
|
App::I.canvas->m_canvas->project_save_thread(App::I.data_path + "/recovery.ppi");
|
||||||
|
|
||||||
std::terminate();
|
std::terminate();
|
||||||
}
|
}
|
||||||
@@ -40,7 +40,7 @@ void global_signal_handler(int e)
|
|||||||
[alert runModal];
|
[alert runModal];
|
||||||
|
|
||||||
if (App::I.canvas && App::I.canvas->m_canvas)
|
if (App::I.canvas && App::I.canvas->m_canvas)
|
||||||
App::I.canvas->m_canvas->project_save_thread(App::I.data_path + "/recovery.pano");
|
App::I.canvas->m_canvas->project_save_thread(App::I.data_path + "/recovery.ppi");
|
||||||
|
|
||||||
std::terminate();
|
std::terminate();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,10 +9,8 @@
|
|||||||
/* Begin PBXBuildFile section */
|
/* Begin PBXBuildFile section */
|
||||||
AD02F0C31EDC457C00B2E692 /* sequencer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD02F0C01EDC456800B2E692 /* sequencer.cpp */; };
|
AD02F0C31EDC457C00B2E692 /* sequencer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD02F0C01EDC456800B2E692 /* sequencer.cpp */; };
|
||||||
AD02F0C41EDC457C00B2E692 /* sequencer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD02F0C01EDC456800B2E692 /* sequencer.cpp */; };
|
AD02F0C41EDC457C00B2E692 /* sequencer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD02F0C01EDC456800B2E692 /* sequencer.cpp */; };
|
||||||
AD06989720CC6C350010825F /* ZipArchive.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AD06989620CC6C350010825F /* ZipArchive.framework */; };
|
|
||||||
AD06989A20CC6C4C0010825F /* ZipArchive.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AD06989920CC6C4C0010825F /* ZipArchive.framework */; };
|
AD06989A20CC6C4C0010825F /* ZipArchive.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AD06989920CC6C4C0010825F /* ZipArchive.framework */; };
|
||||||
AD06989B20CC84DB0010825F /* ZipArchive.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = AD06989920CC6C4C0010825F /* ZipArchive.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
AD06989B20CC84DB0010825F /* ZipArchive.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = AD06989920CC6C4C0010825F /* ZipArchive.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||||
AD06989D20CC894B0010825F /* ZipArchive.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = AD06989620CC6C350010825F /* ZipArchive.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
|
||||||
AD0E119B1ECA215600CDA6BB /* node_scroll.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD0E11951ECA20F200CDA6BB /* node_scroll.cpp */; };
|
AD0E119B1ECA215600CDA6BB /* node_scroll.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD0E11951ECA20F200CDA6BB /* node_scroll.cpp */; };
|
||||||
AD0E119C1ECA215600CDA6BB /* app_events.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD0E11921ECA20F200CDA6BB /* app_events.cpp */; };
|
AD0E119C1ECA215600CDA6BB /* app_events.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD0E11921ECA20F200CDA6BB /* app_events.cpp */; };
|
||||||
AD0E119D1ECA215600CDA6BB /* app_layout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD0E11931ECA20F200CDA6BB /* app_layout.cpp */; };
|
AD0E119D1ECA215600CDA6BB /* app_layout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD0E11931ECA20F200CDA6BB /* app_layout.cpp */; };
|
||||||
@@ -119,8 +117,6 @@
|
|||||||
AD787AEA20D4611100C4712A /* PanoQL.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = AD787ADD20D4611100C4712A /* PanoQL.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
AD787AEA20D4611100C4712A /* PanoQL.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = AD787ADD20D4611100C4712A /* PanoQL.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
||||||
AD787AF720D4637E00C4712A /* ThumbnailProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = AD787AF620D4637E00C4712A /* ThumbnailProvider.m */; };
|
AD787AF720D4637E00C4712A /* ThumbnailProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = AD787AF620D4637E00C4712A /* ThumbnailProvider.m */; };
|
||||||
AD787AFB20D4637E00C4712A /* PanoThumb.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = AD787AF320D4637E00C4712A /* PanoThumb.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
AD787AFB20D4637E00C4712A /* PanoThumb.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = AD787AF320D4637E00C4712A /* PanoThumb.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
||||||
AD787AFF20D5AD1500C4712A /* ZipArchive.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AD06989620CC6C350010825F /* ZipArchive.framework */; };
|
|
||||||
AD787B0020D5AD1700C4712A /* ZipArchive.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AD06989620CC6C350010825F /* ZipArchive.framework */; };
|
|
||||||
ADBC8C4E1FAE7D360094B339 /* node_dialog_browse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ADBC8C471FAE7CC20094B339 /* node_dialog_browse.cpp */; };
|
ADBC8C4E1FAE7D360094B339 /* node_dialog_browse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ADBC8C471FAE7CC20094B339 /* node_dialog_browse.cpp */; };
|
||||||
ADBC8C4F1FAE7D370094B339 /* node_dialog_browse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ADBC8C471FAE7CC20094B339 /* node_dialog_browse.cpp */; };
|
ADBC8C4F1FAE7D370094B339 /* node_dialog_browse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ADBC8C471FAE7CC20094B339 /* node_dialog_browse.cpp */; };
|
||||||
ADBC8C551FAFD0520094B339 /* app_cloud.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ADBC8C511FAFD0360094B339 /* app_cloud.cpp */; };
|
ADBC8C551FAFD0520094B339 /* app_cloud.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ADBC8C511FAFD0360094B339 /* app_cloud.cpp */; };
|
||||||
@@ -214,7 +210,6 @@
|
|||||||
dstPath = "";
|
dstPath = "";
|
||||||
dstSubfolderSpec = 10;
|
dstSubfolderSpec = 10;
|
||||||
files = (
|
files = (
|
||||||
AD06989D20CC894B0010825F /* ZipArchive.framework in CopyFiles */,
|
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -445,7 +440,6 @@
|
|||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
AD787ADF20D4611100C4712A /* QuickLook.framework in Frameworks */,
|
AD787ADF20D4611100C4712A /* QuickLook.framework in Frameworks */,
|
||||||
AD787B0020D5AD1700C4712A /* ZipArchive.framework in Frameworks */,
|
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -453,7 +447,6 @@
|
|||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
AD787AFF20D5AD1500C4712A /* ZipArchive.framework in Frameworks */,
|
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -467,7 +460,6 @@
|
|||||||
AD3087C82061D1CD009F9260 /* CoreGraphics.framework in Frameworks */,
|
AD3087C82061D1CD009F9260 /* CoreGraphics.framework in Frameworks */,
|
||||||
AD3087C62061D1B4009F9260 /* CoreVideo.framework in Frameworks */,
|
AD3087C62061D1B4009F9260 /* CoreVideo.framework in Frameworks */,
|
||||||
AD3087C2205F016F009F9260 /* AVFoundation.framework in Frameworks */,
|
AD3087C2205F016F009F9260 /* AVFoundation.framework in Frameworks */,
|
||||||
AD06989720CC6C350010825F /* ZipArchive.framework in Frameworks */,
|
|
||||||
AD30D8331F8049BD00B6A112 /* Photos.framework in Frameworks */,
|
AD30D8331F8049BD00B6A112 /* Photos.framework in Frameworks */,
|
||||||
AD759B691F279B3900211963 /* GLKit.framework in Frameworks */,
|
AD759B691F279B3900211963 /* GLKit.framework in Frameworks */,
|
||||||
ADD7D2B31EBFA42C00D5A897 /* Security.framework in Frameworks */,
|
ADD7D2B31EBFA42C00D5A897 /* Security.framework in Frameworks */,
|
||||||
@@ -817,9 +809,11 @@
|
|||||||
isa = PBXNativeTarget;
|
isa = PBXNativeTarget;
|
||||||
buildConfigurationList = AD787AEB20D4611100C4712A /* Build configuration list for PBXNativeTarget "PanoQL" */;
|
buildConfigurationList = AD787AEB20D4611100C4712A /* Build configuration list for PBXNativeTarget "PanoQL" */;
|
||||||
buildPhases = (
|
buildPhases = (
|
||||||
|
AD536B7221530A6C0033E46B /* Generate Version */,
|
||||||
AD787AD920D4611100C4712A /* Sources */,
|
AD787AD920D4611100C4712A /* Sources */,
|
||||||
AD787ADA20D4611100C4712A /* Frameworks */,
|
AD787ADA20D4611100C4712A /* Frameworks */,
|
||||||
AD787ADB20D4611100C4712A /* Resources */,
|
AD787ADB20D4611100C4712A /* Resources */,
|
||||||
|
AD536B7421530AA60033E46B /* Versioning Info.plist */,
|
||||||
);
|
);
|
||||||
buildRules = (
|
buildRules = (
|
||||||
);
|
);
|
||||||
@@ -834,9 +828,11 @@
|
|||||||
isa = PBXNativeTarget;
|
isa = PBXNativeTarget;
|
||||||
buildConfigurationList = AD787AFC20D4637F00C4712A /* Build configuration list for PBXNativeTarget "PanoThumb" */;
|
buildConfigurationList = AD787AFC20D4637F00C4712A /* Build configuration list for PBXNativeTarget "PanoThumb" */;
|
||||||
buildPhases = (
|
buildPhases = (
|
||||||
|
AD536B7321530A8A0033E46B /* Generate Version */,
|
||||||
AD787AEF20D4637E00C4712A /* Sources */,
|
AD787AEF20D4637E00C4712A /* Sources */,
|
||||||
AD787AF020D4637E00C4712A /* Frameworks */,
|
AD787AF020D4637E00C4712A /* Frameworks */,
|
||||||
AD787AF120D4637E00C4712A /* Resources */,
|
AD787AF120D4637E00C4712A /* Resources */,
|
||||||
|
AD536B7521530AB80033E46B /* Versioning Info.plist */,
|
||||||
);
|
);
|
||||||
buildRules = (
|
buildRules = (
|
||||||
);
|
);
|
||||||
@@ -975,6 +971,62 @@
|
|||||||
shellPath = /bin/sh;
|
shellPath = /bin/sh;
|
||||||
shellScript = "# Use the commit count as CFBundleVersion\nGIT_COMMIT_COUNT=`git rev-list --count HEAD`\n/usr/libexec/PlistBuddy -c \"Set :CFBundleVersion ${GIT_COMMIT_COUNT}\" \"${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}\"\n\n## Use the last annotated tag as CFBundleShortVersionString\nGIT_TAG=`git describe --tags --abbrev=0`\n/usr/libexec/PlistBuddy -c \"Set :CFBundleShortVersionString ${GIT_TAG}\" \"${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}\"\n";
|
shellScript = "# Use the commit count as CFBundleVersion\nGIT_COMMIT_COUNT=`git rev-list --count HEAD`\n/usr/libexec/PlistBuddy -c \"Set :CFBundleVersion ${GIT_COMMIT_COUNT}\" \"${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}\"\n\n## Use the last annotated tag as CFBundleShortVersionString\nGIT_TAG=`git describe --tags --abbrev=0`\n/usr/libexec/PlistBuddy -c \"Set :CFBundleShortVersionString ${GIT_TAG}\" \"${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}\"\n";
|
||||||
};
|
};
|
||||||
|
AD536B7221530A6C0033E46B /* Generate Version */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
);
|
||||||
|
name = "Generate Version";
|
||||||
|
outputPaths = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "python scripts/pre-build.py $CONFIGURATION";
|
||||||
|
};
|
||||||
|
AD536B7321530A8A0033E46B /* Generate Version */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
);
|
||||||
|
name = "Generate Version";
|
||||||
|
outputPaths = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "python scripts/pre-build.py $CONFIGURATION";
|
||||||
|
};
|
||||||
|
AD536B7421530AA60033E46B /* Versioning Info.plist */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
);
|
||||||
|
name = "Versioning Info.plist";
|
||||||
|
outputPaths = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "# Use the commit count as CFBundleVersion\nGIT_COMMIT_COUNT=`git rev-list --count HEAD`\n/usr/libexec/PlistBuddy -c \"Set :CFBundleVersion ${GIT_COMMIT_COUNT}\" \"${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}\"\n\n## Use the last annotated tag as CFBundleShortVersionString\nGIT_TAG=`git describe --tags --abbrev=0`\n/usr/libexec/PlistBuddy -c \"Set :CFBundleShortVersionString ${GIT_TAG}\" \"${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}\"\n";
|
||||||
|
};
|
||||||
|
AD536B7521530AB80033E46B /* Versioning Info.plist */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
);
|
||||||
|
name = "Versioning Info.plist";
|
||||||
|
outputPaths = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "# Use the commit count as CFBundleVersion\nGIT_COMMIT_COUNT=`git rev-list --count HEAD`\n/usr/libexec/PlistBuddy -c \"Set :CFBundleVersion ${GIT_COMMIT_COUNT}\" \"${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}\"\n\n## Use the last annotated tag as CFBundleShortVersionString\nGIT_TAG=`git describe --tags --abbrev=0`\n/usr/libexec/PlistBuddy -c \"Set :CFBundleShortVersionString ${GIT_TAG}\" \"${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}\"\n";
|
||||||
|
};
|
||||||
ADB86F64214E9D0D004E7CB8 /* Generate Version */ = {
|
ADB86F64214E9D0D004E7CB8 /* Generate Version */ = {
|
||||||
isa = PBXShellScriptBuildPhase;
|
isa = PBXShellScriptBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
@@ -1443,7 +1495,7 @@
|
|||||||
INFOPLIST_FILE = PanoQL/Info.plist;
|
INFOPLIST_FILE = PanoQL/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 9.2;
|
IPHONEOS_DEPLOYMENT_TARGET = 9.2;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.omixlab.panopainter.ios.PanoQL;
|
PRODUCT_BUNDLE_IDENTIFIER = com.omixlab.panopainter.ios.ql;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
@@ -1485,7 +1537,7 @@
|
|||||||
INFOPLIST_FILE = PanoQL/Info.plist;
|
INFOPLIST_FILE = PanoQL/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 9.2;
|
IPHONEOS_DEPLOYMENT_TARGET = 9.2;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.omixlab.panopainter.ios.PanoQL;
|
PRODUCT_BUNDLE_IDENTIFIER = com.omixlab.panopainter.ios.ql;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
@@ -1528,7 +1580,7 @@
|
|||||||
INFOPLIST_FILE = PanoThumb/Info.plist;
|
INFOPLIST_FILE = PanoThumb/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 9.2;
|
IPHONEOS_DEPLOYMENT_TARGET = 9.2;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.omixlab.panopainter.ios.PanoThumb;
|
PRODUCT_BUNDLE_IDENTIFIER = com.omixlab.panopainter.ios.thumb;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
@@ -1570,7 +1622,7 @@
|
|||||||
INFOPLIST_FILE = PanoThumb/Info.plist;
|
INFOPLIST_FILE = PanoThumb/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 9.2;
|
IPHONEOS_DEPLOYMENT_TARGET = 9.2;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.omixlab.panopainter.ios.PanoThumb;
|
PRODUCT_BUNDLE_IDENTIFIER = com.omixlab.panopainter.ios.thumb;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
void global_exception_handler(NSException* e)
|
void global_exception_handler(NSException* e)
|
||||||
{
|
{
|
||||||
if (App::I.canvas && App::I.canvas->m_canvas)
|
if (App::I.canvas && App::I.canvas->m_canvas)
|
||||||
App::I.canvas->m_canvas->project_save_thread(App::I.data_path + "/recovery.pano");
|
App::I.canvas->m_canvas->project_save_thread(App::I.data_path + "/recovery.ppi");
|
||||||
|
|
||||||
std::terminate();
|
std::terminate();
|
||||||
}
|
}
|
||||||
@@ -22,7 +22,7 @@ void global_exception_handler(NSException* e)
|
|||||||
void global_signal_handler(int e)
|
void global_signal_handler(int e)
|
||||||
{
|
{
|
||||||
if (App::I.canvas && App::I.canvas->m_canvas)
|
if (App::I.canvas && App::I.canvas->m_canvas)
|
||||||
App::I.canvas->m_canvas->project_save_thread(App::I.data_path + "/recovery.pano");
|
App::I.canvas->m_canvas->project_save_thread(App::I.data_path + "/recovery.ppi");
|
||||||
|
|
||||||
std::terminate();
|
std::terminate();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -635,10 +635,12 @@
|
|||||||
<icon icon="page_add" width="20"/>
|
<icon icon="page_add" width="20"/>
|
||||||
<text text="Import" grow="1" margin="0 0 0 5" font-face="arial" font-size="11"/>
|
<text text="Import" grow="1" margin="0 0 0 5" font-face="arial" font-size="11"/>
|
||||||
</button-custom>
|
</button-custom>
|
||||||
|
<!--
|
||||||
<button-custom id="file-open" text="Menu" height="40" align="center" color=".2" pad="0 0 0 10" dir="row">
|
<button-custom id="file-open" text="Menu" height="40" align="center" color=".2" pad="0 0 0 10" dir="row">
|
||||||
<icon icon="page_add" width="20"/>
|
<icon icon="page_add" width="20"/>
|
||||||
<text text="Open" grow="1" margin="0 0 0 5" font-face="arial" font-size="11"/>
|
<text text="Open" grow="1" margin="0 0 0 5" font-face="arial" font-size="11"/>
|
||||||
</button-custom>
|
</button-custom>
|
||||||
|
-->
|
||||||
<button-custom id="file-browse" text="Menu" height="40" align="center" color=".2" pad="0 0 0 10" dir="row">
|
<button-custom id="file-browse" text="Menu" height="40" align="center" color=".2" pad="0 0 0 10" dir="row">
|
||||||
<icon icon="page_add" width="20"/>
|
<icon icon="page_add" width="20"/>
|
||||||
<text text="Browse" grow="1" margin="0 0 0 5" font-face="arial" font-size="11"/>
|
<text text="Browse" grow="1" margin="0 0 0 5" font-face="arial" font-size="11"/>
|
||||||
@@ -662,10 +664,12 @@
|
|||||||
<icon icon="disk" width="20"/>
|
<icon icon="disk" width="20"/>
|
||||||
<text text="Export JPG" grow="1" margin="0 0 0 5" font-face="arial" font-size="11"/>
|
<text text="Export JPG" grow="1" margin="0 0 0 5" font-face="arial" font-size="11"/>
|
||||||
</button-custom>
|
</button-custom>
|
||||||
|
<!--
|
||||||
<button-custom id="file-export-cubes" text="Menu" height="40" align="center" color=".2" pad="0 0 0 10" dir="row">
|
<button-custom id="file-export-cubes" text="Menu" height="40" align="center" color=".2" pad="0 0 0 10" dir="row">
|
||||||
<icon icon="page_white_stack" width="20"/>
|
<icon icon="page_white_stack" width="20"/>
|
||||||
<text text="Export Cubes" grow="1" margin="0 0 0 5" font-face="arial" font-size="11"/>
|
<text text="Export Cubes" grow="1" margin="0 0 0 5" font-face="arial" font-size="11"/>
|
||||||
</button-custom>
|
</button-custom>
|
||||||
|
-->
|
||||||
<button-custom id="file-cloud-upload" text="Menu" height="40" align="center" color=".2" pad="0 0 0 10" dir="row">
|
<button-custom id="file-cloud-upload" text="Menu" height="40" align="center" color=".2" pad="0 0 0 10" dir="row">
|
||||||
<icon icon="weather_clouds" width="20"/>
|
<icon icon="weather_clouds" width="20"/>
|
||||||
<text text="Cloud Upload" grow="1" margin="0 0 0 5" font-face="arial" font-size="11"/>
|
<text text="Cloud Upload" grow="1" margin="0 0 0 5" font-face="arial" font-size="11"/>
|
||||||
@@ -791,19 +795,20 @@
|
|||||||
<button-custom id="menu-timelapse" width="80" height="100%" margin="0 0 0 0" justify="center" align="center" pad="8" color=".1">
|
<button-custom id="menu-timelapse" width="80" height="100%" margin="0 0 0 0" justify="center" align="center" pad="8" color=".1">
|
||||||
<text text="Timelapse" font-face="arial" font-size="11"/>
|
<text text="Timelapse" font-face="arial" font-size="11"/>
|
||||||
</button-custom>
|
</button-custom>
|
||||||
|
<!--
|
||||||
<button-custom id="menu-about" width="60" height="100%" margin="0 0 0 0" justify="center" align="center" pad="8" color=".1">
|
<button-custom id="menu-about" width="60" height="100%" margin="0 0 0 0" justify="center" align="center" pad="8" color=".1">
|
||||||
<text text="About" font-face="arial" font-size="11"/>
|
<text text="About" font-face="arial" font-size="11"/>
|
||||||
</button-custom>
|
</button-custom>
|
||||||
<button id="btn-anim" width="70" height="100%" margin="1 0 0 10" text="Animate"/>
|
<button id="btn-anim" width="70" height="100%" margin="1 0 0 10" text="Animate"/>
|
||||||
|
-->
|
||||||
<node dir="row" justify="center" grow="1">
|
<node dir="row" justify="center" grow="1">
|
||||||
<button id="btn-pen" width="50" height="100%" margin="0 0 0 0" text="Pen"/>
|
<button id="btn-pen" width="50" height="100%" margin="0 0 0 0" text="Pen"/>
|
||||||
<button id="btn-pick" width="50" height="100%" margin="0 0 0 0" text="Pick"/>
|
<button id="btn-pick" width="50" height="100%" margin="0 0 0 0" text="Pick"/>
|
||||||
<button id="btn-touchlock" width="50" height="100%" margin="0 0 0 0" text="Lock"/>
|
<button id="btn-touchlock" width="50" height="100%" margin="0 0 0 0" text="Lock"/>
|
||||||
|
|
||||||
<button id="btn-erase" width="60" height="100%" margin="0 0 0 5" text="Erase"/>
|
<button id="btn-erase" width="60" height="100%" margin="0 0 0 5" text="Eraser"/>
|
||||||
|
|
||||||
<button id="btn-cam" width="70" height="100%" margin="0 0 0 5" text="Camera"/>
|
<button id="btn-cam" width="70" height="100%" margin="0 0 0 5" text="Parallax"/>
|
||||||
|
|
||||||
<button id="btn-line" width="50" height="100%" margin="0 0 0 5" text="Line"/>
|
<button id="btn-line" width="50" height="100%" margin="0 0 0 5" text="Line"/>
|
||||||
<button id="btn-grid" width="50" height="100%" margin="0 0 0 0" text="Grid"/>
|
<button id="btn-grid" width="50" height="100%" margin="0 0 0 0" text="Grid"/>
|
||||||
@@ -830,7 +835,9 @@
|
|||||||
<button-custom id="btn-stroke" width="50" height="50" margin="0 0 5 0" thickness="1" border-color=".1" pad="2">
|
<button-custom id="btn-stroke" width="50" height="50" margin="0 0 5 0" thickness="1" border-color=".1" pad="2">
|
||||||
<image path="data/ui/stroke.png" width="100%" height="100%" align="center" justify="flex-end"/>
|
<image path="data/ui/stroke.png" width="100%" height="100%" align="center" justify="flex-end"/>
|
||||||
</button-custom>
|
</button-custom>
|
||||||
|
<!--
|
||||||
<button id="btn-brush-preset" width="50" height="50" margin="0 0 5 0" text="Preset" thickness="1" border-color=".1" pad="2"/>
|
<button id="btn-brush-preset" width="50" height="50" margin="0 0 5 0" text="Preset" thickness="1" border-color=".1" pad="2"/>
|
||||||
|
-->
|
||||||
<button-custom id="btn-brush" width="50" height="50" margin="0 0 5 0" thickness="1" border-color=".1" pad="2">
|
<button-custom id="btn-brush" width="50" height="50" margin="0 0 5 0" thickness="1" border-color=".1" pad="2">
|
||||||
<image path="data/ui/brushes.png" width="100%" height="100%" align="center" justify="flex-end"/>
|
<image path="data/ui/brushes.png" width="100%" height="100%" align="center" justify="flex-end"/>
|
||||||
</button-custom>
|
</button-custom>
|
||||||
@@ -840,9 +847,11 @@
|
|||||||
<button-custom id="btn-layer" width="50" height="50" margin="0 0 5 0" thickness="1" border-color=".1" pad="2">
|
<button-custom id="btn-layer" width="50" height="50" margin="0 0 5 0" thickness="1" border-color=".1" pad="2">
|
||||||
<image path="data/ui/layers.png" width="100%" height="100%" align="center" justify="flex-end"/>
|
<image path="data/ui/layers.png" width="100%" height="100%" align="center" justify="flex-end"/>
|
||||||
</button-custom>
|
</button-custom>
|
||||||
|
<!--
|
||||||
<button-custom id="btn-grids-panel" width="50" height="50" margin="0 0 5 0" thickness="1" border-color=".1" pad="2">
|
<button-custom id="btn-grids-panel" width="50" height="50" margin="0 0 5 0" thickness="1" border-color=".1" pad="2">
|
||||||
<image path="data/ui/grid.png" width="100%" height="100%" align="center" justify="flex-end" mips="true"/>
|
<image path="data/ui/grid.png" width="100%" height="100%" align="center" justify="flex-end" mips="true"/>
|
||||||
</button-custom>
|
</button-custom>
|
||||||
|
-->
|
||||||
</border>
|
</border>
|
||||||
<!-- side bar -->
|
<!-- side bar -->
|
||||||
<node height="100%" dir="row" shrink="1">
|
<node height="100%" dir="row" shrink="1">
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ void App::cloud_upload()
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
std::thread([this] {
|
std::thread([this] {
|
||||||
std::string path = data_path + "/" + doc_name + ".pano";
|
std::string path = data_path + "/" + doc_name + ".ppi";
|
||||||
if (ui::Canvas::I->m_unsaved)
|
if (ui::Canvas::I->m_unsaved)
|
||||||
{
|
{
|
||||||
Canvas::I->project_save_thread(path);
|
Canvas::I->project_save_thread(path);
|
||||||
@@ -34,7 +34,7 @@ void App::cloud_upload()
|
|||||||
async_redraw();
|
async_redraw();
|
||||||
async_end();
|
async_end();
|
||||||
|
|
||||||
upload(path, doc_name + ".pano", [this,pb](float p){
|
upload(path, doc_name + ".ppi", [this,pb](float p){
|
||||||
async_start();
|
async_start();
|
||||||
pb->m_progress->SetWidthP(p * 100.f);
|
pb->m_progress->SetWidthP(p * 100.f);
|
||||||
async_redraw();
|
async_redraw();
|
||||||
@@ -59,7 +59,7 @@ void App::cloud_upload()
|
|||||||
void App::cloud_upload_all()
|
void App::cloud_upload_all()
|
||||||
{
|
{
|
||||||
std::thread([this] {
|
std::thread([this] {
|
||||||
auto names = Asset::list_files(data_path, false, ".*\\.pano");
|
auto names = Asset::list_files(data_path, false, ".*\\.ppi");
|
||||||
|
|
||||||
gl_state gl;
|
gl_state gl;
|
||||||
std::shared_ptr<NodeProgressBar> pb;
|
std::shared_ptr<NodeProgressBar> pb;
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ void App::dialog_newdoc()
|
|||||||
dialog->btn_ok->on_click = [this, dialog](Node*)
|
dialog->btn_ok->on_click = [this, dialog](Node*)
|
||||||
{
|
{
|
||||||
std::string name = dialog->input->m_string;
|
std::string name = dialog->input->m_string;
|
||||||
std::string path = data_path + "/" + name + ".pano";
|
std::string path = data_path + "/" + name + ".ppi";
|
||||||
|
|
||||||
auto action = [this, dialog, name] {
|
auto action = [this, dialog, name] {
|
||||||
std::array<int, 4> resolutions{ 512, 1024, 1536, 2048 };
|
std::array<int, 4> resolutions{ 512, 1024, 1536, 2048 };
|
||||||
@@ -255,14 +255,14 @@ void App::dialog_save_ver()
|
|||||||
static char tmp_name[256];
|
static char tmp_name[256];
|
||||||
sprintf(tmp_name, "%s.%02d", base.c_str(), i);
|
sprintf(tmp_name, "%s.%02d", base.c_str(), i);
|
||||||
next = tmp_name;
|
next = tmp_name;
|
||||||
if (Asset::exist(data_path + "/" + next + ".pano", false))
|
if (Asset::exist(data_path + "/" + next + ".ppi", false))
|
||||||
continue;
|
continue;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
doc_name = next;
|
doc_name = next;
|
||||||
title_update();
|
title_update();
|
||||||
canvas->m_canvas->project_save(data_path + "/" + next + ".pano");
|
canvas->m_canvas->project_save(data_path + "/" + next + ".ppi");
|
||||||
}
|
}
|
||||||
|
|
||||||
void App::dialog_save()
|
void App::dialog_save()
|
||||||
@@ -281,7 +281,7 @@ void App::dialog_save()
|
|||||||
dialog->btn_ok->on_click = [this, dialog](Node*)
|
dialog->btn_ok->on_click = [this, dialog](Node*)
|
||||||
{
|
{
|
||||||
std::string name = dialog->input->m_string;
|
std::string name = dialog->input->m_string;
|
||||||
std::string path = data_path + "/" + name + ".pano";
|
std::string path = data_path + "/" + name + ".ppi";
|
||||||
|
|
||||||
if (name.empty())
|
if (name.empty())
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1483,7 +1483,7 @@ void ui::Canvas::export_cubes(std::string data_path)
|
|||||||
static char name[128];
|
static char name[128];
|
||||||
sprintf(name, "%s.zip", data_path.c_str());
|
sprintf(name, "%s.zip", data_path.c_str());
|
||||||
auto zip_path = [NSString stringWithUTF8String : name];
|
auto zip_path = [NSString stringWithUTF8String : name];
|
||||||
[SSZipArchive createZipFileAtPath:zip_path withFilesAtPaths:files];
|
//[SSZipArchive createZipFileAtPath:zip_path withFilesAtPaths:files];
|
||||||
for (NSString* f : files)
|
for (NSString* f : files)
|
||||||
[[NSFileManager defaultManager] removeItemAtPath:f error:nil];
|
[[NSFileManager defaultManager] removeItemAtPath:f error:nil];
|
||||||
#endif
|
#endif
|
||||||
@@ -1494,7 +1494,7 @@ void ui::Canvas::project_save(std::function<void()> on_complete)
|
|||||||
if (App::I.check_license())
|
if (App::I.check_license())
|
||||||
{
|
{
|
||||||
std::thread t([=] {
|
std::thread t([=] {
|
||||||
project_save_thread(App::I.data_path + "/" + App::I.doc_name + ".pano");
|
project_save_thread(App::I.data_path + "/" + App::I.doc_name + ".ppi");
|
||||||
if (on_complete)
|
if (on_complete)
|
||||||
on_complete();
|
on_complete();
|
||||||
});
|
});
|
||||||
@@ -1524,7 +1524,7 @@ void ui::Canvas::project_save_thread(std::string file_path)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
// static char name[128];
|
// static char name[128];
|
||||||
// sprintf(name, "%s/latlong.pano", data_path.c_str());
|
// sprintf(name, "%s/latlong.ppi", data_path.c_str());
|
||||||
FILE* fp = fopen(file_path.c_str(), "wb");
|
FILE* fp = fopen(file_path.c_str(), "wb");
|
||||||
if (!fp)
|
if (!fp)
|
||||||
{
|
{
|
||||||
@@ -1836,7 +1836,7 @@ ui::Image ui::Canvas::thumbnail_generate(int w, int h)
|
|||||||
ui::Image ui::Canvas::thumbnail_read(std::string data_path)
|
ui::Image ui::Canvas::thumbnail_read(std::string data_path)
|
||||||
{
|
{
|
||||||
// static char name[128];
|
// static char name[128];
|
||||||
// sprintf(name, "%s/latlong.pano", data_path.c_str());
|
// sprintf(name, "%s/latlong.ppi", data_path.c_str());
|
||||||
FILE* fp = fopen(data_path.c_str(), "rb");
|
FILE* fp = fopen(data_path.c_str(), "rb");
|
||||||
if (!fp)
|
if (!fp)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -272,7 +272,7 @@ static void SetupExceptionHandler()
|
|||||||
BT_SetPreErrHandler([](INT_PTR){
|
BT_SetPreErrHandler([](INT_PTR){
|
||||||
if (ui::Canvas::I)
|
if (ui::Canvas::I)
|
||||||
{
|
{
|
||||||
auto path = App::I.data_path + "/recovery.pano";
|
auto path = App::I.data_path + "/recovery.ppi";
|
||||||
ui::Canvas::I->project_save_thread(path);
|
ui::Canvas::I->project_save_thread(path);
|
||||||
static char abspath[MAX_PATH];
|
static char abspath[MAX_PATH];
|
||||||
GetFullPathNameA(path.c_str(), MAX_PATH, abspath, NULL);
|
GetFullPathNameA(path.c_str(), MAX_PATH, abspath, NULL);
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ void NodeDialogBrowse::init_controls()
|
|||||||
root()->update();
|
root()->update();
|
||||||
};
|
};
|
||||||
container = find<Node>("files-list");
|
container = find<Node>("files-list");
|
||||||
auto names = Asset::list_files(data_path, false, ".*\\.pano");
|
auto names = Asset::list_files(data_path, false, ".*\\.ppi");
|
||||||
for (const auto& n : names)
|
for (const auto& n : names)
|
||||||
{
|
{
|
||||||
auto node = new NodeDialogBrowseItem;
|
auto node = new NodeDialogBrowseItem;
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ void NodeDialogOpen::init_controls()
|
|||||||
root()->update();
|
root()->update();
|
||||||
};
|
};
|
||||||
container = find<Node>("files-list");
|
container = find<Node>("files-list");
|
||||||
auto names = Asset::list_files(data_path, false, ".*\\.pano");
|
auto names = Asset::list_files(data_path, false, ".*\\.ppi");
|
||||||
for (const auto& n : names)
|
for (const auto& n : names)
|
||||||
{
|
{
|
||||||
auto node = new NodeDialogOpenItem;
|
auto node = new NodeDialogOpenItem;
|
||||||
|
|||||||
Reference in New Issue
Block a user