(Re-)adding detection of added files. Recent change has postponed that by 5 minutes
Change-Id: Ic77bc62df3b7d11444908075149c4cbfc0bf844d
diff --git a/gui/fs-watcher.cc b/gui/fs-watcher.cc
index a4b46ef..18d004d 100644
--- a/gui/fs-watcher.cc
+++ b/gui/fs-watcher.cc
@@ -163,9 +163,17 @@
// _LOG_DEBUG ("Attempt to add path to watcher: " << absFilePath.toStdString ());
m_watcher->addPath (absFilePath);
- if (notifyCallbacks && fileInfo.isFile ())
+ if (fileInfo.isFile ())
{
- DidFileChanged (absFilePath);
+ QString relFile = absFilePath;
+ relFile.remove (0, m_dirPath.size ());
+ filesystem::path aFile (relFile.toStdString ());
+
+ if (notifyCallbacks ||
+ !m_fileState->LookupFile (aFile.relative_path ().generic_string ()) /* file does not exist there, but exists locally: added */)
+ {
+ DidFileChanged (absFilePath);
+ }
}
}
else
diff --git a/src/action-log.cc b/src/action-log.cc
index 5514022..354334f 100644
--- a/src/action-log.cc
+++ b/src/action-log.cc
@@ -145,11 +145,17 @@
// "Upgrading" database
sqlite3_exec (m_db, "ALTER TABLE FileState ADD COLUMN directory TEXT", NULL, NULL, NULL);
+ _LOG_DEBUG_COND (sqlite3_errcode (m_db) != SQLITE_OK, sqlite3_errmsg (m_db));
+
sqlite3_exec (m_db, "CREATE INDEX FileState_directory ON FileState (directory)", NULL, NULL, NULL);
+ _LOG_DEBUG_COND (sqlite3_errcode (m_db) != SQLITE_OK, sqlite3_errmsg (m_db));
+
sqlite3_exec (m_db, "UPDATE FileState SET directory = directory_name(filename) WHERE directory IS NULL", NULL, NULL, NULL);
+ _LOG_DEBUG_COND (sqlite3_errcode (m_db) != SQLITE_OK, sqlite3_errmsg (m_db));
// Another "upgrade"
sqlite3_exec (m_db, "BEGIN TRANSACTION; ALTER TABLE FileState ADD COLUMN is_complete INTEGER; UPDATE FileState SET is_complete = 1; END TRANSACTION;", NULL, NULL, NULL);
+ _LOG_DEBUG_COND (sqlite3_errcode (m_db) != SQLITE_OK, sqlite3_errmsg (m_db));
}
tuple<sqlite3_int64 /*version*/, Ccnx::CcnxCharbufPtr /*device name*/, sqlite3_int64 /*seq_no*/>
@@ -486,6 +492,8 @@
BOOST_THROW_EXCEPTION (Error::ActionLog () << errmsg_info_str ("action cannot be decoded"));
}
+ _LOG_DEBUG ("AddRemoteAction: [" << deviceName << "] seqno: " << seqno);
+
sqlite3_stmt *stmt;
int res = sqlite3_prepare_v2 (m_db, "INSERT INTO ActionLog "
"(device_name, seq_no, action, filename, version, action_timestamp, "
@@ -496,6 +504,7 @@
" ?, datetime(?, 'unixepoch'), datetime(?, 'unixepoch'), datetime(?, 'unixepoch'), ?,?, "
" ?, ?, "
" ?, ?);", -1, &stmt, 0);
+ _LOG_DEBUG_COND (sqlite3_errcode (m_db) != SQLITE_OK, sqlite3_errmsg (m_db));
CcnxCharbufPtr device_name = deviceName.toCcnxCharbuf ();
sqlite3_bind_blob (stmt, 1, device_name->buf (), device_name->length (), SQLITE_STATIC);