def executeAsRootWithThread(_command=[], _executableName=None): if uni.isRunableAsRoot(): roar = RunAsRootWithThread(_command, _executableName) roar.start() time.sleep(1) return True return False
def executeAsRootWithThread(_command=[], _executableName=None): if uni.isRunableAsRoot(): roar = RunAsRootWithThread(_command, _executableName) roar.start() time.sleep(1) return True return False
def executeAsRoot(_command=[], _executableName=None): if uni.isRunableAsRoot(): pathOfExecutable = None if _executableName in ["HamsiManager", "HamsiManagerInstaller"]: pathOfExecutable = findExecutablePath(_executableName) if pathOfExecutable is not None: _command = [pathOfExecutable] + _command return execute([fu.joinPath(uni.getLibraryDirectoryPath(), "kde4", "libexec", "kdesu")] + _command) return False
def executeAsRoot(_command=[], _executableName=None): if uni.isRunableAsRoot(): pathOfExecutable = None if _executableName in ["HamsiManager", "HamsiManagerInstaller"]: pathOfExecutable = findExecutablePath(_executableName) if pathOfExecutable is not None: _command = [pathOfExecutable] + _command return execute([ fu.joinPath(uni.getLibraryDirectoryPath(), "kde4", "libexec", "kdesu") ] + _command) return False
if fu.isFile( fu.joinPath(fu.userDirectoryPath, ".local", "applications", "HamsiManager.desktop")): fu.removeFileOrDir( fu.joinPath(fu.userDirectoryPath, ".local", "applications", "HamsiManager.desktop")) self.isUninstallFinished = True self.close() except: from Core import ReportBug ReportBug.ReportBug() if uni.isRunningAsRoot() is False and uni.isRunableAsRoot(): answer = Dialogs.askSpecial( translate("Uninstall", "Are You Want To Run As Root?"), translate( "Uninstall", "Hamsi Manager Uninstaller is running with user privileges.<br>Do you want to run Hamsi Manager Uninstaller with root rights?" ), translate("Uninstall", "Yes"), translate("Uninstall", "No (Continue as is)"), None) if answer == translate("Uninstall", "Yes"): NewApp = Execute.executeAsRootWithThread([], "HamsiManagerUninstaller") sys.exit() try: MainWidget = Main() MainWidget.setWindowTitle( translate("Uninstall", "Hamsi Manager Uninstaller") + " " +
def __init__(self, _parent): MMenuBar.__init__(self, _parent) self.mTableTools = None self.mQuickOptions = None self.mFile = self.addMenu(translate("MenuBar", "File")) self.mFile.setObjectName("File") self.mEdit = self.addMenu(translate("MenuBar", "Edit")) self.mEdit.setObjectName("Edit") self.mView = self.addMenu(translate("MenuBar", "View")) self.mView.setObjectName("View") self.mSettings = self.addMenu(translate("MenuBar", "Settings")) self.mSettings.setObjectName("Settings") if isActivePyKDE4: self.mHelpMenu = getMainWindow().helpMenu() self.mHelpMenu.setObjectName(self.mHelpMenu.title()) self.aHelpMenu = self.addMenu(self.mHelpMenu) else: self.mHelpMenu = self.addMenu(translate("MenuBar", "Help")) self.mHelpMenu.setObjectName("Help") mExport = MMenu(translate("MenuBar", "Export"), self.mEdit) mExport.setObjectName("Export") mExportToFile = MMenu(translate("MenuBar", "Export To File"), self.mEdit) mExportToFile.setObjectName("Export To File") mExportToFile.addAction(translate("MenuBar", "HTML Format")).setObjectName("HTML Format") mExportToFile.addAction(translate("MenuBar", "Text Format")).setObjectName("Text Format") mExportToFile.addAction(translate("MenuBar", "HTML Format (File Tree)")).setObjectName("HTML Format (File Tree)") mExportToFile.addAction(translate("MenuBar", "Text Format (File Tree)")).setObjectName("Text Format (File Tree)") mShowInWindow = MMenu(translate("MenuBar", "Show In New Window"), self.mEdit) mShowInWindow.setObjectName("Show In New Window") mShowInWindow.addAction(translate("MenuBar", "HTML Format")).setObjectName("HTML Format") mShowInWindow.addAction(translate("MenuBar", "Text Format")).setObjectName("Text Format") mShowInWindow.addAction(translate("MenuBar", "HTML Format (File Tree)")).setObjectName("HTML Format (File Tree)") mShowInWindow.addAction(translate("MenuBar", "Text Format (File Tree)")).setObjectName("Text Format (File Tree)") mCopyToClipBoard = MMenu(translate("MenuBar", "Copy To Clipboard"), self.mEdit) mCopyToClipBoard.setObjectName("Copy To Clipboard") mCopyToClipBoard.addAction(translate("MenuBar", "HTML Format")).setObjectName("HTML Format") mCopyToClipBoard.addAction(translate("MenuBar", "Text Format")).setObjectName("Text Format") mCopyToClipBoard.addAction(translate("MenuBar", "HTML Format (File Tree)")).setObjectName("HTML Format (File Tree)") mCopyToClipBoard.addAction(translate("MenuBar", "Text Format (File Tree)")).setObjectName("Text Format (File Tree)") mExport.addMenu(mExportToFile) mExport.addMenu(mShowInWindow) mExport.addMenu(mCopyToClipBoard) self.mFile.addAction(translate("MenuBar", "Open State")).setObjectName("Open State") self.mFile.addAction(translate("MenuBar", "Save State")).setObjectName("Save State") if uni.isRunableAsRoot(): mRunAsRoot = MMenu(translate("MenuBar", "Run As Root"), self.mFile) mRunAsRoot.addAction(translate("MenuBar", "With This Profile (My Settings)")).setObjectName("With This Profile (My Settings)") mRunAsRoot.addAction(translate("MenuBar", "With Root Profile (Own Settings)")).setObjectName("With Root Profile (Own Settings)") self.mFile.addMenu(mRunAsRoot) self.mFile.addAction(translate("MenuBar", "Quit")).setObjectName("Quit") self.mEdit.addMenu(mExport) actOptions = self.mSettings.addAction(translate("MenuBar", "Options")) actOptions.setObjectName("Options") actOptions.setIcon(MIcon("Images:options.png")) self.mSettings.addAction(translate("MenuBar", "My Plugins")).setObjectName("My Plugins") self.mSettings.addAction(translate("MenuBar", "Reconfigure")).setObjectName("Reconfigure") if uni.isRunableAsRoot(): self.mSettings.addAction(translate("MenuBar", "My Plugins (System)")).setObjectName("My Plugins (System)") self.mSettings.addAction(translate("MenuBar", "Reconfigure (System)")).setObjectName("Reconfigure (System)") if isActivePyKDE4: actReportBug = MAction(translate("MenuBar", "Report Bug"), self.mHelpMenu) actReportBug.setObjectName("Report Bug") self.mHelpMenu.insertAction(self.mHelpMenu.actions()[3], actReportBug) actSuggestIdea = MAction(translate("MenuBar", "Suggest Idea"), self.mHelpMenu) actSuggestIdea.setObjectName("Suggest Idea") self.mHelpMenu.insertAction(self.mHelpMenu.actions()[3], actSuggestIdea) actUNo = 9 while actUNo > 0: try: actUpdate = MAction(translate("MenuBar", "Update"), self.mHelpMenu) actUpdate.setObjectName("Update") self.mHelpMenu.insertAction(self.mHelpMenu.actions()[actUNo], actUpdate) break except: actUNo -= 3 else: self.mHelpMenu.addAction(translate("MenuBar", "Report Bug")).setObjectName("Report Bug") self.mHelpMenu.addAction(translate("MenuBar", "Suggest Idea")).setObjectName("Suggest Idea") self.mHelpMenu.addAction(translate("MenuBar", "Update")).setObjectName("Update") self.mHelpMenu.addAction(translate("MenuBar", "About Hamsi Manager")).setObjectName("About Hamsi Manager") self.mHelpMenu.addAction(translate("MenuBar", "About QT")).setObjectName("About QT") MObject.connect(self, SIGNAL("triggered(QAction *)"), Bars.clickedAnAction)
fileContent = MyConfigure.getConfiguredDesktopFileContent(self.installationDirectory) fu.writeToFile("/usr/share/applications/HamsiManager.desktop", fileContent) if uni.isRunningAsRoot() is False: if fu.isDir(fu.joinPath(fu.userDirectoryPath, ".local", "applications")) is False: fu.makeDirs(fu.joinPath(fu.userDirectoryPath, ".local", "applications")) fileContent = MyConfigure.getConfiguredDesktopFileContent(self.installationDirectory) fu.writeToFile(fu.joinPath(fu.userDirectoryPath, ".local", "applications", "HamsiManager.desktop"), fileContent) self.isInstallFinished = True self.close() except: from Core import ReportBug ReportBug.ReportBug() if uni.isRunningAsRoot() is False and uni.isRunableAsRoot(): answer = Dialogs.askSpecial(translate("Install", "Are You Want To Run As Root?"), translate("Install", "Hamsi Manager Installer is running with user privileges.<br>Do you want to run Hamsi Manager installer with root rights?<br><b>Note: </b>The other users on your system has to inherit these permissions and install the program to a location other than their /home directories."), translate("Install", "Yes"), translate("Install", "No (Continue as is)"), None) if answer == translate("Install", "Yes"): NewApp = Execute.executeAsRootWithThread([], "HamsiManagerInstaller") sys.exit() try: MainWidget = Main() MainWidget.setWindowTitle(translate("Install", "Hamsi Manager Installer") + " " + uni.version) MainWidget.setGeometry(300, 300, 650, 350) MainWidget.show() uni.isStartingSuccessfully = True except: from Core import ReportBug
def __init__(self, _parent): MMenuBar.__init__(self, _parent) self.mTableTools = None self.mQuickOptions = None self.mFile = self.addMenu(translate("MenuBar", "File")) self.mFile.setObjectName("File") self.mEdit = self.addMenu(translate("MenuBar", "Edit")) self.mEdit.setObjectName("Edit") self.mView = self.addMenu(translate("MenuBar", "View")) self.mView.setObjectName("View") self.mSettings = self.addMenu(translate("MenuBar", "Settings")) self.mSettings.setObjectName("Settings") if isActivePyKDE4: self.mHelpMenu = getMainWindow().helpMenu() self.mHelpMenu.setObjectName(self.mHelpMenu.title()) self.aHelpMenu = self.addMenu(self.mHelpMenu) else: self.mHelpMenu = self.addMenu(translate("MenuBar", "Help")) self.mHelpMenu.setObjectName("Help") mExport = MMenu(translate("MenuBar", "Export"), self.mEdit) mExport.setObjectName("Export") mExportToFile = MMenu(translate("MenuBar", "Export To File"), self.mEdit) mExportToFile.setObjectName("Export To File") mExportToFile.addAction(translate( "MenuBar", "HTML Format")).setObjectName("HTML Format") mExportToFile.addAction(translate( "MenuBar", "Text Format")).setObjectName("Text Format") mExportToFile.addAction(translate( "MenuBar", "HTML Format (File Tree)")).setObjectName( "HTML Format (File Tree)") mExportToFile.addAction(translate( "MenuBar", "Text Format (File Tree)")).setObjectName( "Text Format (File Tree)") mShowInWindow = MMenu(translate("MenuBar", "Show In New Window"), self.mEdit) mShowInWindow.setObjectName("Show In New Window") mShowInWindow.addAction(translate( "MenuBar", "HTML Format")).setObjectName("HTML Format") mShowInWindow.addAction(translate( "MenuBar", "Text Format")).setObjectName("Text Format") mShowInWindow.addAction(translate( "MenuBar", "HTML Format (File Tree)")).setObjectName( "HTML Format (File Tree)") mShowInWindow.addAction(translate( "MenuBar", "Text Format (File Tree)")).setObjectName( "Text Format (File Tree)") mCopyToClipBoard = MMenu(translate("MenuBar", "Copy To Clipboard"), self.mEdit) mCopyToClipBoard.setObjectName("Copy To Clipboard") mCopyToClipBoard.addAction(translate( "MenuBar", "HTML Format")).setObjectName("HTML Format") mCopyToClipBoard.addAction(translate( "MenuBar", "Text Format")).setObjectName("Text Format") mCopyToClipBoard.addAction( translate("MenuBar", "HTML Format (File Tree)")).setObjectName( "HTML Format (File Tree)") mCopyToClipBoard.addAction( translate("MenuBar", "Text Format (File Tree)")).setObjectName( "Text Format (File Tree)") mExport.addMenu(mExportToFile) mExport.addMenu(mShowInWindow) mExport.addMenu(mCopyToClipBoard) self.mFile.addAction(translate( "MenuBar", "Open State")).setObjectName("Open State") self.mFile.addAction(translate( "MenuBar", "Save State")).setObjectName("Save State") if uni.isRunableAsRoot(): mRunAsRoot = MMenu(translate("MenuBar", "Run As Root"), self.mFile) mRunAsRoot.addAction( translate("MenuBar", "With This Profile (My Settings)")).setObjectName( "With This Profile (My Settings)") mRunAsRoot.addAction( translate("MenuBar", "With Root Profile (Own Settings)")).setObjectName( "With Root Profile (Own Settings)") self.mFile.addMenu(mRunAsRoot) self.mFile.addAction(translate("MenuBar", "Quit")).setObjectName("Quit") self.mEdit.addMenu(mExport) actOptions = self.mSettings.addAction(translate("MenuBar", "Options")) actOptions.setObjectName("Options") actOptions.setIcon(MIcon("Images:options.png")) self.mSettings.addAction(translate( "MenuBar", "My Plugins")).setObjectName("My Plugins") self.mSettings.addAction(translate( "MenuBar", "Reconfigure")).setObjectName("Reconfigure") if uni.isRunableAsRoot(): self.mSettings.addAction( translate("MenuBar", "My Plugins (System)")).setObjectName( "My Plugins (System)") self.mSettings.addAction( translate("MenuBar", "Reconfigure (System)")).setObjectName( "Reconfigure (System)") if isActivePyKDE4: actReportBug = MAction(translate("MenuBar", "Report Bug"), self.mHelpMenu) actReportBug.setObjectName("Report Bug") self.mHelpMenu.insertAction(self.mHelpMenu.actions()[3], actReportBug) actSuggestIdea = MAction(translate("MenuBar", "Suggest Idea"), self.mHelpMenu) actSuggestIdea.setObjectName("Suggest Idea") self.mHelpMenu.insertAction(self.mHelpMenu.actions()[3], actSuggestIdea) actUNo = 9 while actUNo > 0: try: actUpdate = MAction(translate("MenuBar", "Update"), self.mHelpMenu) actUpdate.setObjectName("Update") self.mHelpMenu.insertAction( self.mHelpMenu.actions()[actUNo], actUpdate) break except: actUNo -= 3 else: self.mHelpMenu.addAction(translate( "MenuBar", "Report Bug")).setObjectName("Report Bug") self.mHelpMenu.addAction(translate( "MenuBar", "Suggest Idea")).setObjectName("Suggest Idea") self.mHelpMenu.addAction(translate( "MenuBar", "Update")).setObjectName("Update") self.mHelpMenu.addAction( translate("MenuBar", "About Hamsi Manager")).setObjectName( "About Hamsi Manager") self.mHelpMenu.addAction(translate( "MenuBar", "About QT")).setObjectName("About QT") MObject.connect(self, SIGNAL("triggered(QAction *)"), Bars.clickedAnAction)