Skip to content
  • Albert Astals Cid's avatar
    Implement swapBackingFile for the PDF backend · ca5422d0
    Albert Astals Cid authored and Albert Astals Cid's avatar Albert Astals Cid committed
    How does it work:
     * What it does is really closing and opening the file again through poppler
     * This means that things that are generated in "open" time like Page, Rects, Annotations, Forms need to be updated
    	* For Page what we do is swap the PagePrivate so that other classes that hold Page* don't break
    		* Since some parts of the PagePrivate can be reused, we move them in PagePrivate::adoptGeneratedContents
    	* For all the commands in the undo stack we need to update the annotations/forms it refers to, added a new function to do that
    	* The annotationmodel needs updating it's pointers
    	* The widgets for the forms are reused and their form* updated
    	* the widgets for the videos are recreased since videos don't really hold much content (you lose the playing status on save but i think that's acceptable)
    
    TODO: Make this work for .okular files
    TODO: For files with password we will need to reload the file, asking for the password again and thus losing the undo stack, warn the user
    TODO: autotests
    ca5422d0