diff options
| author | Tavmjong Bah <tavmjong@free.fr> | 2018-10-28 20:05:46 +0000 |
|---|---|---|
| committer | Tavmjong Bah <tavmjong@free.fr> | 2018-11-04 09:37:02 +0000 |
| commit | a2c03bc4c183a094d019762334f44ce6a9082b1a (patch) | |
| tree | 4322124ee8b2bde36778650fabb75bb57bc32c9b /src/inkview-window.cpp | |
| parent | Rewrite of inkview using InkApplication (Gtk::Application). (diff) | |
| download | inkscape-a2c03bc4c183a094d019762334f44ce6a9082b1a.tar.gz inkscape-a2c03bc4c183a094d019762334f44ce6a9082b1a.zip | |
Add --preload option.
Diffstat (limited to 'src/inkview-window.cpp')
| -rw-r--r-- | src/inkview-window.cpp | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/src/inkview-window.cpp b/src/inkview-window.cpp index 7f4826ae6..6567828cd 100644 --- a/src/inkview-window.cpp +++ b/src/inkview-window.cpp @@ -23,17 +23,25 @@ InkviewWindow::InkviewWindow(const Gio::Application::type_vec_files files, bool fullscreen, bool recursive, int timer, - double scale) + double scale, + bool preload + ) : _files(files) , _fullscreen(fullscreen) , _recursive(recursive) , _timer(timer) , _scale(scale) + , _preload(preload) , _index(-1) , _view(nullptr) , _controlwindow(nullptr) { _files = create_file_list(_files); + + if (_preload) { + preload_documents(); + } + _documents.resize( _files.size(), nullptr); // We keep _documents and _files in sync. // Callbacks @@ -167,6 +175,24 @@ InkviewWindow::load_document() return document; } + + +void +InkviewWindow::preload_documents() +{ + for (auto it =_files.begin(); it != _files.end(); ) { + + SPDocument* document = + SPDocument::createNewDoc ((*it)->get_parse_name().c_str(), true, false); + if (document) { + _documents.push_back(document); + ++it; + } else { + it = _files.erase(it); + } + } +} + static std::string window_markup = R"( <interface> <object class="GtkWindow" id="ControlWindow"> |
