diff --git a/ui/Makefile b/ui/Makefile index 33f9bba6..c805fba1 100755 --- a/ui/Makefile +++ b/ui/Makefile @@ -1,3 +1,4 @@ +#********************************************************************** # TODO: build to a BUILD_DIR... # TODO: build all target platforms... # - Windows (AppJS) @@ -20,6 +21,9 @@ APP_NAME=ImageGrid.Viewer uglifyjs $< -c -o $@ + +#********************************************************************** + # get all the .less files to process... CSS_FILES := $(patsubst %.less,%.css,$(wildcard *.less)) @@ -35,52 +39,82 @@ JS_MIN_FILES := $(patsubst %.js,%.min.js,$(wildcard *.js)) LOGS := *.log BUILD_DIR=build +WIN_BUILD_DIR=build/Win32 +MAC_BUILD_DIR=build/MacOSX +ANDROID_BUILD_DIR=build/Android +IOS_BUILD_DIR=build/iOS +DIST_DIR=dist + +# XXX add version +WIN_DIST_ZIP=$(DIST_DIR)/$(APP_NAME)-win32.zip + + +APP_ZIP=$(BUILD_DIR)/app.zip + + + +#********************************************************************** all: dev -css: $(CSS_FILES) - minify: $(JS_MIN_FILES) + +#********************************************************************** # build dependencies... +# XXX can make auto-create directories??? -build_dir: +$(BUILD_DIR): mkdir -p $(BUILD_DIR) +$(WIN_BUILD_DIR): + mkdir -p $(WIN_BUILD_DIR) +$(MAC_BUILD_DIR): + mkdir -p $(MAC_BUILD_DIR) +$(ANDROID_BUILD_DIR): + mkdir -p $(ANDROID_BUILD_DIR) +$(IOS_BUILD_DIR): + mkdir -p $(IOS_BUILD_DIR) -app_zip: css build_dir - zip -r $(BUILD_DIR)/app.zip $(NW_PROJECT_FILE) $(JS_FILES) $(CSS_FILES) $(HTML_FILES) $(LIB_DIR) $(EXT_LIB_DIR) +$(DIST_DIR): + mkdir -p $(DIST_DIR) +$(APP_ZIP): $(CSS_FILES) $(BUILD_DIR) + zip -r $(APP_ZIP) $(NW_PROJECT_FILE) $(JS_FILES) $(CSS_FILES) $(HTML_FILES) $(LIB_DIR) $(EXT_LIB_DIR) + + + +#********************************************************************** # dev env... -dev: css +dev: $(CSS_FILES) unzip -uj $(wildcard targets/node-webkit/node-webkit-*-win-ia32.zip) -d . chmod +x *.{exe,dll} -dev-targets: - mkdir -p targets/node-webkit - wget +#dev-targets: +# mkdir -p targets/node-webkit +# wget + +#********************************************************************** # build targets... # node-webkit win32 -win32: app_zip build_dir - unzip -uj $(wildcard targets/node-webkit/node-webkit-*-win-ia32.zip) -d $(BUILD_DIR) - cat $(BUILD_DIR)/app.zip >> $(BUILD_DIR)/nw.exe - mv $(BUILD_DIR)/nw.exe $(BUILD_DIR)/$(APP_NAME).exe - chmod +x $(BUILD_DIR)/*.{exe,dll} - rm -f $(BUILD_DIR)/app.zip - -mac: css minify - -phonegap-remote: css minify +win32: $(APP_ZIP) $(WIN_BUILD_DIR) + unzip -uj $(wildcard targets/node-webkit/node-webkit-*-win-ia32.zip) -d $(WIN_BUILD_DIR) + cat $(APP_ZIP) >> $(WIN_BUILD_DIR)/nw.exe + mv $(WIN_BUILD_DIR)/nw.exe $(WIN_BUILD_DIR)/$(APP_NAME).exe + chmod +x $(WIN_BUILD_DIR)/*.{exe,dll} +win32-dist: win32 $(DIST_DIR) + zip -rj $(WIN_DIST_ZIP) $(WIN_BUILD_DIR) +#********************************************************************** # cleanup... clean-dev: @@ -95,3 +129,5 @@ clean: clean-build clean-all: clean clean-dev + +#********************************************************************** diff --git a/ui/base.js b/ui/base.js index ca57591a..a5957af2 100755 --- a/ui/base.js +++ b/ui/base.js @@ -990,6 +990,13 @@ function fitNImages(n, fixed_proportions){ var w = image.outerWidth(true) var h = image.outerHeight(true) + // XXX needs testing -- might be wrong for fit-viewer + different + // viewer proportions... + if(fixed_proportions){ + w = Math.min(w, h) + h = w + } + var W = viewer.innerWidth() var H = viewer.innerHeight() diff --git a/ui/data.js b/ui/data.js index 285bbfbc..812abc35 100755 --- a/ui/data.js +++ b/ui/data.js @@ -426,8 +426,9 @@ function getBaseURL(){ // // NOTE: mode can be either 'absolute' (default) or 'relative'... function normalizePath(url, base, mode){ - mode = mode == null ? 'absolute' : mode base = base == null ? getBaseURL() : base + //mode = /^\./.test(base) && mode == null ? 'relative' : null + mode = mode == null ? 'absolute' : mode // windows path... // - replace all '\\' with '/'... diff --git a/ui/keybindings.js b/ui/keybindings.js index 3396d34d..9c1d26d2 100755 --- a/ui/keybindings.js +++ b/ui/keybindings.js @@ -424,7 +424,9 @@ var KEYBOARD_CONFIG = { // zooming... - '#1': doc('Fit image', function(){ fitNImages(1) }), + '#1': doc('Fit image to screen', function(){ fitNImages(1) }), + '#2': doc('Show big image', function(){ fitNImages(1.5, true) }), + '#3': doc('Show small image', function(){ fitNImages(3, true) }), '-': doc('Zoom in', function(){ zoomOut() }), '=': doc('Zoom out', function(){ zoomIn() }), diff --git a/ui/layout.css b/ui/layout.css index 7da252eb..0bf9719c 100644 --- a/ui/layout.css +++ b/ui/layout.css @@ -848,17 +848,17 @@ body { .dark.viewer .overlay-block .background { background: #0a0a0a; } -.large.marks-visible.viewer:not(.single-image-mode) .current.image { +.large.viewer:not(.single-image-mode) .current.image { border-width: 3px; } -.large.marks-visible.viewer:not(.single-image-mode) .marked.image:after { +.large.viewer:not(.single-image-mode) .marked.image:after { -webkit-transform: rotate(0deg) scaleY(0.7) scaleX(0.7); -moz-transform: rotate(0deg) scaleY(0.7) scaleX(0.7); -o-transform: rotate(0deg) scaleY(0.7) scaleX(0.7); -ms-transform: rotate(0deg) scaleY(0.7) scaleX(0.7); transform: rotate(0deg) scaleY(0.7) scaleX(0.7); } -.small.marks-visible.viewer:not(.single-image-mode) .marked.image:after { +.small.viewer:not(.single-image-mode) .marked.image:after { -webkit-transform: rotate(0deg) scaleY(1.8) scaleX(1.8); -moz-transform: rotate(0deg) scaleY(1.8) scaleX(1.8); -o-transform: rotate(0deg) scaleY(1.8) scaleX(1.8); diff --git a/ui/layout.less b/ui/layout.less index ff581d71..cf426f96 100755 --- a/ui/layout.less +++ b/ui/layout.less @@ -846,14 +846,14 @@ body { } -.large.marks-visible.viewer:not(.single-image-mode) .current.image { +.large.viewer:not(.single-image-mode) .current.image { border-width: 3px; } -.large.marks-visible.viewer:not(.single-image-mode) .marked.image:after { +.large.viewer:not(.single-image-mode) .marked.image:after { .scale(0.7); } -.small.marks-visible.viewer:not(.single-image-mode) .marked.image:after { +.small.viewer:not(.single-image-mode) .marked.image:after { .scale(1.8); } diff --git a/ui/marks.js b/ui/marks.js index 03ebc716..54867a4e 100755 --- a/ui/marks.js +++ b/ui/marks.js @@ -46,6 +46,9 @@ function loadMarkedOnlyData(cmp, no_cleanout_marks){ DATA.current = getGIDBefore(cur, 0) reloadViewer() toggleMarkesView('off') + // XXX FIX: for some reason not all previews get updated to the + // right size... + updateImages() return DATA } @@ -58,6 +61,9 @@ function loadAllImages(){ // returning from marks only view... DATA.current = cur reloadViewer() + // XXX FIX: for some reason not all previews get updated to the + // right size... + updateImages() return DATA }