]> git.lyx.org Git - lyx.git/blobdiff - src/Mover.h
Hack to display section symbol
[lyx.git] / src / Mover.h
index 7c0c5021f0e869443b145dc43a68957449a90f41..a684a875579ccc9e7ed8741c6e3dcb7d34a85dec 100644 (file)
@@ -28,16 +28,20 @@ class Mover
 {
 public:
        virtual ~Mover() {}
+       Mover(Mover &&) = default;
+       Mover & operator=(Mover &&) = default;
+       Mover(Mover const &) = default;
+       Mover & operator=(Mover const &) = default;
+
+       Mover() = default;
 
        /** Copy file @c from to @c to.
         *  This version should be used to copy files from the original
-        *  location to the temporary directory, since @c to and @c latex
-        *  would be equal in this case.
+        *  location to the temporary directory.
         *  \returns true if successful.
         */
        bool
-       copy(support::FileName const & from, support::FileName const & to,
-            unsigned long int mode = (unsigned long int)-1) const;
+       copy(support::FileName const & from, support::FileName const & to) const;
 
        /** Copy file @c from to @c to.
         *  \see SpecialisedMover::SpecialisedMover() for an explanation of
@@ -46,19 +50,22 @@ public:
         *  directory to the export location, since @c to and @c latex may
         *  not be equal in this case.
         *  \returns true if successful.
+        *  NOTE: Although this routine simply calls do_copy() and
+        *  Mover::do_copy() does not itself make any use of the @c latex argument,
+        *  SpecialisedMover overrides do_copy(), so SpecialisedMover::copy(), which
+        *  is just Mover::copy(), calls SpecialisedMover::do_copy(), and the @c latex
+        *  argument IS in that case used.
         */
        bool
        copy(support::FileName const & from, support::FileName const & to,
-            std::string const & latex,
-            unsigned long int mode = (unsigned long int)-1) const
+            std::string const & latex) const
        {
-               return do_copy(from, to, latex, mode);
+               return do_copy(from, to, latex);
        }
 
        /** Rename file @c from as @c to.
         *  This version should be used to move files from the original
-        *  location to the temporary directory, since @c to and @c latex
-        *  would be equal in this case.
+        *  location to the temporary directory.
         *  \returns true if successful.
         */
        bool
@@ -82,7 +89,7 @@ public:
 protected:
        virtual bool
        do_copy(support::FileName const & from, support::FileName const & to,
-               std::string const &, unsigned long int mode) const;
+               std::string const &) const;
 
        virtual bool
        do_rename(support::FileName const & from, support::FileName const & to,
@@ -98,13 +105,17 @@ protected:
  *  picture files. If such a reference has a relative path, then the
  *  copied .fig file will require a transformation of the picture file
  *  reference if it is to be found by Xfig.
+ *
+ *  So, in this case, we need three arguments:
+ *  (i)   @c from  the location of the file to be moved
+ *  (ii)  @c to    the location to which it should be moved
+ *  (iii) @c latex the identifier that should be used in the sort of
+ *                 transformation just mentioned.
  */
 class SpecialisedMover : public Mover
 {
 public:
-       SpecialisedMover() {}
-
-       virtual ~SpecialisedMover() {}
+       SpecialisedMover() = default;
 
        /** @c command should be of the form
         *  <code>
@@ -113,14 +124,11 @@ public:
         *  where $$s is a placeholder for the lyx support directory,
         *        $$i is a placeholder for the name of the file to be moved,
         *        $$o is a placeholder for the name of the file after moving,
-        *        $$l is a placeholder for the name of the file after moving,
-        *        suitable as argument to a latex include command. This is
-        *        either an absolute filename or relative to the master
-        *        document.
-        *        $$o and $$l can only differ if the file is copied from the
-        *        temporary directory to the export location. If it is copied
-        *        from the original location to the temporary directory, they
-        *        are the same, so $$l may be ommitted in this case.
+        *        $$l is a placeholder for the latex argument, as explained above.
+        *  $$o and $$l can only differ if the file is copied from the temporary
+        *  directory to the export location. If it is copied from the original
+        *  location to the temporary directory, they are the same, so $$l may be
+        *  ignored in this case, as it is in the Mover baseclass.
         */
        SpecialisedMover(std::string const & command)
                : command_(command) {}
@@ -129,13 +137,11 @@ public:
        std::string const & command() const { return command_; }
 
 private:
-       virtual bool
-       do_copy(support::FileName const & from, support::FileName const & to,
-               std::string const & latex, unsigned long int mode) const;
+       bool do_copy(support::FileName const & from, support::FileName const & to,
+               std::string const & latex) const override;
 
-       virtual bool
-       do_rename(support::FileName const & from, support::FileName const & to,
-                 std::string const & latex) const;
+       bool do_rename(support::FileName const & from, support::FileName const & to,
+                 std::string const & latex) const override;
 
        std::string command_;
 };