/usr/share/pyshared/ninja_ide/gui/main_panel/start_page.py is in ninja-ide 2.3-2.
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 | # -*- coding: utf-8 -*-
import os
from urlparse import urlparse, urlunparse
from PyQt4.QtGui import QWidget
from PyQt4.QtGui import QVBoxLayout
from PyQt4.QtCore import QUrl
from PyQt4.QtCore import QDir
from PyQt4.QtCore import QSettings
from PyQt4.QtCore import SIGNAL
from PyQt4.QtDeclarative import QDeclarativeView
from ninja_ide import resources
from ninja_ide.gui.main_panel import itab_item
class StartPage(QWidget, itab_item.ITabItem):
def __init__(self, parent=None):
super(StartPage, self).__init__(parent)
self._id = "Start Page"
vbox = QVBoxLayout(self)
self.view = QDeclarativeView()
self.view.setMinimumWidth(400)
self.view.setResizeMode(QDeclarativeView.SizeRootObjectToView)
path_qml = QDir.fromNativeSeparators(
os.path.join(resources.QML_FILES, "StartPage.qml"))
path_qml = urlunparse(urlparse(path_qml)._replace(scheme='file'))
self.view.setSource(QUrl(path_qml))
self.root = self.view.rootObject()
vbox.addWidget(self.view)
self.load_items()
self.connect(self.root, SIGNAL("openProject(QString)"),
self._open_project)
self.connect(self.root, SIGNAL("removeProject(QString)"),
self._on_click_on_delete)
self.connect(self.root, SIGNAL("markAsFavorite(QString, bool)"),
self._on_click_on_favorite)
self.connect(self.root, SIGNAL("openPreferences()"),
lambda: self.emit(SIGNAL("openPreferences()")))
def _open_project(self, path):
self.emit(SIGNAL("openProject(QString)"), path)
def _on_click_on_delete(self, path):
settings = QSettings(resources.SETTINGS_PATH, QSettings.IniFormat)
recent_projects = settings.value("recentProjects")
if path in recent_projects:
del recent_projects[path]
settings.setValue("recentProjects", recent_projects)
def _on_click_on_favorite(self, path, value):
settings = QSettings(resources.SETTINGS_PATH, QSettings.IniFormat)
recent_projects = settings.value("recentProjects")
properties = recent_projects[path]
properties["isFavorite"] = value
recent_projects[path] = properties
settings.setValue("recentProjects", recent_projects)
def load_items(self):
settings = QSettings(resources.SETTINGS_PATH, QSettings.IniFormat)
listByFavorites = []
listNoneFavorites = []
recent_projects_dict = dict(settings.value('recentProjects', {}))
#Filter for favorites
for recent_project_path, content in list(recent_projects_dict.items()):
if bool(dict(content)["isFavorite"]):
listByFavorites.append((recent_project_path,
content["lastopen"]))
else:
listNoneFavorites.append((recent_project_path,
content["lastopen"]))
if len(listByFavorites) > 1:
# sort by date favorites
listByFavorites = sorted(listByFavorites,
key=lambda date: listByFavorites[1])
if len(listNoneFavorites) > 1:
#sort by date last used
listNoneFavorites = sorted(listNoneFavorites,
key=lambda date: listNoneFavorites[1])
for recent_project_path in listByFavorites:
path = recent_project_path[0]
name = recent_projects_dict[path]['name']
self.root.add_project(name, path, True)
for recent_project_path in listNoneFavorites:
path = recent_project_path[0]
name = recent_projects_dict[path]['name']
self.root.add_project(name, path, False)
|