Commit 7b2de418 authored by Jim Nelson's avatar Jim Nelson

Merge from 0.7.1+branch.

parents 0f499a29 af61ecfc
......@@ -346,7 +346,7 @@ DIST_FILES = Makefile configure minver $(EXPANDED_SRC_FILES) $(EXPANDED_VAPI_FIL
$(EXPANDED_SRC_HEADER_FILES) $(EXPANDED_RESOURCE_FILES) $(TEXT_FILES) $(EXPANDED_ICON_FILES) \
$(EXPANDED_SYS_INTEGRATION_FILES) $(EXPANDED_PO_FILES) po/shotwell.pot windows/install-deps \
windows/shotwell.rc windows/winstall.iss src/windows.c src/GConf.vala libraw-config \
$(EXPANDED_HELP_FILES) $(EXPANDED_HELP_IMAGES)
$(EXPANDED_HELP_FILES) $(EXPANDED_HELP_IMAGES) apport/shotwell.py
DIST_TAR = $(PROGRAM)-$(VERSION).tar
DIST_TAR_BZ2 = $(DIST_TAR).bz2
......
......@@ -144,7 +144,7 @@ msgid ""
"\n"
"%s"
msgstr ""
"샷웰 라이브러리에 접근하 중 치명적인 오류가 발생했습니다. 샷웰을 계속 실행할 수 없습니다.\n"
"샷웰 라이브러리에 접근하 중 치명적인 오류가 발생했습니다. 샷웰을 계속 실행할 수 없습니다.\n"
"\n"
"%s"
......
......@@ -474,7 +474,7 @@ public class EntryMultiCompletion : Gtk.EntryCompletion {
private string delimiter;
public EntryMultiCompletion(Gee.Collection<string> completion_list, string? delimiter) {
assert(delimiter == null || delimiter.len() == 1);
assert(delimiter == null || delimiter.length == 1);
this.delimiter = delimiter;
set_model(create_completion_store(completion_list));
......@@ -513,7 +513,7 @@ public class EntryMultiCompletion : Gtk.EntryCompletion {
string last_part = get_last_part(key.strip(), delimiter);
if (last_part.len() == 0)
if (last_part.length == 0)
return false; // need at least one character to show matches
return possible_match.has_prefix(last_part.strip());
......@@ -527,7 +527,7 @@ public class EntryMultiCompletion : Gtk.EntryCompletion {
Gtk.Entry entry = (Gtk.Entry)get_entry();
string old_text = entry.get_text();
if (old_text.len() > 0) {
if (old_text.length > 0) {
if (old_text.contains(delimiter)) {
long start = old_text.pointer_to_offset(old_text.rchr(-1, delimiter[0]));
old_text = old_text.substring(0, start + 1) + (delimiter != " " ? " " : "");
......@@ -537,7 +537,7 @@ public class EntryMultiCompletion : Gtk.EntryCompletion {
string new_text = old_text + match + delimiter + (delimiter != " " ? " " : "");
entry.set_text(new_text);
entry.set_position((int) new_text.len());
entry.set_position((int) new_text.length);
return true;
}
......
......@@ -519,7 +519,7 @@ public class DirectoryMonitor : Object {
}
protected virtual void notify_discovery_failed(string reason) {
mdbg("discovery failed: %s".printf(reason));
warning("discovery failed: %s", reason);
discovery_failed(reason);
}
......@@ -766,12 +766,20 @@ public class DirectoryMonitor : Object {
}
private async void explore_async(File dir, FileInfo? dir_info, bool in_discovery) {
if (files.contains(dir, dir_info)) {
warning("Directory loop detected at %s, not exploring", dir.get_path());
explore_directory_completed(in_discovery);
return;
}
// if FileInfo wasn't supplied by caller, fetch it now
FileInfo? local_dir_info = dir_info;
if (local_dir_info == null) {
try {
local_dir_info = yield dir.query_info_async(SUPPLIED_ATTRIBUTES,
FileQueryInfoFlags.NOFOLLOW_SYMLINKS, DEFAULT_PRIORITY, cancellable);
FileQueryInfoFlags.NONE, DEFAULT_PRIORITY, cancellable);
} catch (Error err) {
warning("Unable to retrieve info on %s: %s", dir.get_path(), err.message);
......@@ -783,7 +791,8 @@ public class DirectoryMonitor : Object {
// verify this is a directory
if (local_dir_info.get_file_type() != FileType.DIRECTORY) {
notify_discovery_failed(_("Unable to monitor %s: Not a directory").printf(dir.get_path()));
notify_discovery_failed(_("Unable to monitor %s: Not a directory (%s)").printf(
dir.get_path(), local_dir_info.get_file_type().to_string()));
explore_directory_completed(in_discovery);
......@@ -799,7 +808,7 @@ public class DirectoryMonitor : Object {
try {
FileEnumerator enumerator = yield dir.enumerate_children_async(SUPPLIED_ATTRIBUTES,
FileQueryInfoFlags.NOFOLLOW_SYMLINKS, DEFAULT_PRIORITY, cancellable);
FileQueryInfoFlags.NONE, DEFAULT_PRIORITY, cancellable);
for (;;) {
List<FileInfo>? infos = yield enumerator.next_files_async(10, DEFAULT_PRIORITY,
cancellable);
......
......@@ -2612,14 +2612,18 @@ public abstract class Photo : PhotoSource {
throw err;
}
// attach the editable file to the photo and start monitoring the new file
// attach the editable file to the photo
attach_editable(editable_file_format, create_editable_file);
start_monitoring_editable(create_editable_file);
current_editable_file = create_editable_file;
}
assert(current_editable_file != null);
// if not already monitoring, monitor now
if (editable_monitor == null)
start_monitoring_editable(current_editable_file);
launch_editor(current_editable_file, get_file_format());
}
......@@ -2687,7 +2691,7 @@ public abstract class Photo : PhotoSource {
FileInfo info;
try {
info = file.query_filesystem_info("standard:*", null);
info = file.query_filesystem_info(DirectoryMonitor.SUPPLIED_ATTRIBUTES, null);
} catch (Error err) {
warning("Unable to read editable filesystem info for %s: %s", to_string(), err.message);
detach_editable(false, true);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment