/* * Copyright (C) 2011, 2014 Nicolas Bonnefon and other contributors * * This file is part of glogg. * * glogg is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * glogg is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with glogg. If not, see . */ #ifndef SESSIONINFO_H #define SESSIONINFO_H #include #include #include #include #include "persistable.h" // Simple component class containing information related to the session // to be persisted and reloaded upon start class SessionInfo : public Persistable { public: SessionInfo() : openFiles_() { } // Geometry of the main window // (this is an opaque string which is interpreted by the // MainWindow implementation) QByteArray geometry() const { return geometry_; } void setGeometry( const QByteArray& geometry ) { geometry_ = geometry; } struct OpenFile { std::string fileName; uint64_t topLine; // The view context contains parameter specific to the view's // implementation (such as geometry...) std::string viewContext; }; // List of the loaded files std::vector openFiles() const { return openFiles_; } void setOpenFiles( const std::vector& loaded_files ) { openFiles_ = loaded_files; } // Reads/writes the current config in the QSettings object passed virtual void saveToStorage( QSettings& settings ) const; virtual void retrieveFromStorage( QSettings& settings ); private: static const int OPENFILES_VERSION; QByteArray geometry_; QByteArray crawlerState_; std::vector openFiles_; }; #endif