This file is indexed.

/usr/share/gEcrit/gEcritSession.py is in gecrit 2.8.2-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
#  Copyright (C) 2011  Groza Cristian
#
#   This program 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.
#
#   This program 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 this program.  If not, see <http://www.gnu.org/licenses/>.


import cPickle
import os
import Exceptions

class gEcritSession:
    """
    gEcritSession
    
    This class represents the saved state of the gEcrit application.
    
    It stores and manages information such as open documents, GUI perspective
    and current selected tab.
    """

    __session_dump_path = os.path.join(os.path.expanduser("~"), ".gEcrit", "session.gecrit")


    def __init__(self):
        """
        __init__
        
        Basic constructor.
        """
        self.opened_files = []

        self.layout_perspective = ""

        self.current_tab = 0


    def RecordAppState(self, app_instance):
        """
        RecordAppState

        Saves the state of the application.
        The data it collects is:
        open documents, GUI perspective, current selected tab.
        """
        self.opened_files = []
        documents = app_instance.GetAllDocuments()
        for d in documents:
            if d is not None:
                if d.GetFilePath():
                    self.opened_files.append(d.GetFilePath())

        self.layout_perspective = app_instance.GetAuiManager().SavePerspective()

        self.current_tab = app_instance.GetTabManager().GetSelection()
        if self.current_tab < 0: self.current_tab = 0

    def RestoreAppState(self, app_instance):
        """
        RestoreAppState

        Restores the open documents, the GUI perspective and selected
        document.
        """
        app_instance.OpenFile(self.opened_files)
        app_instance.GetAuiManager().LoadPerspective(self.layout_perspective)
        app_instance.GetTabManager().SetSelection(self.current_tab)

    def SaveToFile(self):
        """
        SaveToFile

        Serializes and saves this object to file.
        """
        dump_file = open(gEcritSession.__session_dump_path, "w")
        cPickle.dump(self, dump_file)

    @staticmethod
    def LoadFromFile():
        """
        LoadFromFile

        Loads the serialized object of this class.
        If it does not exist, throws NoSessionFile exception.
        """
        if os.path.exists(gEcritSession.__session_dump_path):
            session_file = open(gEcritSession.__session_dump_path, "r")
            return cPickle.load(session_file)
        else:
             raise Exceptions.NoSessionFile

    @staticmethod
    def DeleteSessionFile(event):
        """
        DeleteSessionFile

        Deletes the file where this object is serialized.
        """
        if os.path.exists(gEcritSession.__session_dump_path):
            os.remove(gEcritSession.__session_dump_path)