# This file is part of the Linux Process Explorer # See www.sourceforge.net/projects/procexp # # 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 2, 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, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA # # implements a message UI capable of supressing messages which the user already knows # from PyQt4 import QtGui, uic import os dialog = None import configobj g_settings = {} def _loadMsgSettings(): """ load messages earlier shown """ global g_settings settingsPath = os.path.expanduser("~/.procexp/questions") if os.path.exists(settingsPath): f = file(settingsPath,"rb") settingsObj = configobj.ConfigObj(infile=f) g_settings=settingsObj.dict() def _saveMsgSettings(): """ save messages we dont want to see anymore """ settingsPath = os.path.expanduser("~/.procexp") if not(os.path.exists(settingsPath)): os.makedirs(settingsPath) f = file(settingsPath + "/questions","wb") cfg = configobj.ConfigObj(g_settings) cfg.write(f) f.close() def clearAllMessages(): """ clear persisted messages we dont want to see """ settingsPath = os.path.expanduser("~/.procexp/questions") if os.path.exists(settingsPath): os.remove(settingsPath) global g_settings g_settings = {} def doMessageWindow(msg): """Make a message window""" _loadMsgSettings() if g_settings.has_key(msg): return global dialog dialog = QtGui.QDialog() msgDialog = uic.loadUi(os.path.join(os.path.dirname(__file__), "./ui/message.ui"), baseinstance=dialog) msgDialog.messageLabel.setText(msg) dialog.exec_() if msgDialog.showAgainCheckBox.isChecked(): g_settings[msg] = True _saveMsgSettings()