]> git.lyx.org Git - lyx.git/blobdiff - src/support/FileMonitor.C
remove unused stuff
[lyx.git] / src / support / FileMonitor.C
index 322da96665d234a3ae88994d45cb7dd0be00b2e5..1a04c1695e61f0b6cb2876011d06353035073f2b 100644 (file)
 
 #include <config.h>
 
-#include "FileMonitor.h"
+#include "support/FileMonitor.h"
+#include "support/filename.h"
+#include "support/lyxlib.h"
 
+// FIXME Interface violation
 #include "frontends/Timeout.h"
 
-#include "support/FileInfo.h"
-#include "support/lyxlib.h"
-
 #include <boost/bind.hpp>
+#include <boost/filesystem/operations.hpp>
 #include <boost/signals/trackable.hpp>
 
+
+using std::string;
+
+namespace fs = boost::filesystem;
+
 namespace lyx {
 namespace support {
 
-struct FileMonitor::Impl : public boost::signals::trackable {
+class FileMonitor::Impl : public boost::signals::trackable {
+public:
 
        ///
-       Impl(string const & file_with_path, int interval);
+       Impl(FileName const & file_with_path, int interval);
 
        ///
        void monitorFile();
 
        ///
-       string filename_;
+       FileName filename_;
 
        ///
        Timeout timer_;
 
        /// This signal is emitted if the file is modified (has a new checksum).
-       boost::signal0<void> fileChanged_;
+       FileMonitor::FileChangedSig fileChanged_;
 
        /** We use these to ascertain whether a file (once loaded successfully)
         *  has changed.
@@ -49,7 +56,7 @@ struct FileMonitor::Impl : public boost::signals::trackable {
 };
 
 
-FileMonitor::FileMonitor(string const & file_with_path, int interval)
+FileMonitor::FileMonitor(FileName const & file_with_path, int interval)
        : pimpl_(new Impl(file_with_path, interval))
 {}
 
@@ -58,7 +65,7 @@ FileMonitor::~FileMonitor()
 {}
 
 
-void FileMonitor::reset(string const & file_with_path) const
+void FileMonitor::reset(FileName const & file_with_path) const
 {
        if (pimpl_->filename_ == file_with_path)
                return;
@@ -74,7 +81,7 @@ void FileMonitor::reset(string const & file_with_path) const
 }
 
 
-string const & FileMonitor::filename() const
+FileName const & FileMonitor::filename() const
 {
        return pimpl_->filename_;
 }
@@ -85,11 +92,10 @@ void FileMonitor::start() const
        if (monitoring())
                return;
 
-       FileInfo finfo(pimpl_->filename_);
-       if (!finfo.isOK())
+       if (!fs::exists(pimpl_->filename_.toFilesystemEncoding()))
                return;
 
-       pimpl_->timestamp_ = finfo.getModificationTime();
+       pimpl_->timestamp_ = fs::last_write_time(pimpl_->filename_.toFilesystemEncoding());
        pimpl_->checksum_ = sum(pimpl_->filename_);
 
        if (pimpl_->timestamp_ && pimpl_->checksum_) {
@@ -137,7 +143,7 @@ boost::signals::connection FileMonitor::connect(slot_type const & slot) const
 //------------------------------
 
 
-FileMonitor::Impl::Impl(string const & file_with_path, int interval)
+FileMonitor::Impl::Impl(FileName const & file_with_path, int interval)
        : filename_(file_with_path),
          timer_(interval, Timeout::ONETIME),
          timestamp_(0),
@@ -151,14 +157,13 @@ void FileMonitor::Impl::monitorFile()
 {
        bool changed = false;
 
-       FileInfo finfo(filename_);
-       if (!finfo.isOK()) {
+       if (!fs::exists(filename_.toFilesystemEncoding())) {
                changed = timestamp_ || checksum_;
                timestamp_ = 0;
                checksum_ = 0;
 
        } else {
-               time_t const new_timestamp = finfo.getModificationTime();
+               time_t const new_timestamp = fs::last_write_time(filename_.toFilesystemEncoding());
 
                if (new_timestamp != timestamp_) {
                        timestamp_ = new_timestamp;