本文整理汇总了Python中pitivi.project.ProjectManager.loadProject方法的典型用法代码示例。如果您正苦于以下问题:Python ProjectManager.loadProject方法的具体用法?Python ProjectManager.loadProject怎么用?Python ProjectManager.loadProject使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pitivi.project.ProjectManager
的用法示例。
在下文中一共展示了ProjectManager.loadProject方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: TestProjectManager
# 需要导入模块: from pitivi.project import ProjectManager [as 别名]
# 或者: from pitivi.project.ProjectManager import loadProject [as 别名]
class TestProjectManager(TestCase):
def setUp(self):
self.manager = ProjectManager(None)
self.listener = ProjectManagerListener(self.manager)
self.signals = self.listener.signals
def testLoadProjectFailedUnknownFormat(self):
"""
Check that new-project-failed is emitted when we don't have a suitable
formatter.
"""
uri = "file:///Untitled.meh"
self.manager.loadProject(uri)
# loading
name, args = self.signals[0]
self.assertEqual(uri, args[0], self.signals)
# failed
name, args = self.signals[1]
self.assertEqual("new-project-failed", name)
signalUri, unused_message = args
self.assertEqual(uri, signalUri, self.signals)
def testLoadProjectClosesCurrent(self):
"""
Check that new-project-failed is emited if we can't close the current
project instance.
"""
state = {"tried-close": False}
def close():
state["tried-close"] = True
return False
self.manager.closeRunningProject = close
uri = "file:///Untitled.xptv"
self.manager.current_project = MockProject()
self.manager.loadProject(uri)
self.assertEqual(0, len(self.signals))
self.assertTrue(state["tried-close"], self.signals)
def testLoadProject(self):
self.manager.newBlankProject()
name, args = self.signals[0]
self.assertEqual("new-project-loading", name, self.signals)
name, args = self.signals[1]
self.assertEqual("new-project-created", name, self.signals)
name, args = self.signals[2]
self.assertEqual("new-project-loaded", name, self.signals)
def testMissingUriForwarded(self):
def quit(mainloop):
mainloop.quit()
def missingUriCb(self, project, error, clip_asset, mainloop, result):
print(project, error, clip_asset, mainloop, result)
result[0] = True
mainloop.quit()
self.mainloop = GLib.MainLoop()
result = [False]
self.manager.connect(
"missing-uri", missingUriCb, self.mainloop, result)
# Load a project with a missing asset.
unused, xges_path = tempfile.mkstemp()
with open(xges_path, "w") as xges:
xges.write("""<ges version='0.1'>
<project>
<ressources>
<asset id='file:///icantpossiblyexist.png' extractable-type-name='GESUriClip' />
</ressources>
<timeline>
<track caps='video/x-raw' track-type='4' track-id='0' />
<layer priority='0'>
<clip id='0' asset-id='file:///icantpossiblyexist.png' type-name='GESUriClip' layer-priority='0' track-types='4' start='0' duration='2590000000' inpoint='0' rate='0' />
</layer>
</timeline>
</project>
</ges>""")
uri = "file://%s" % xges_path
try:
self.assertTrue(self.manager.loadProject(uri))
GLib.timeout_add_seconds(5, quit, self.mainloop)
self.mainloop.run()
self.assertTrue(result[0], "missing not missing")
finally:
os.remove(xges_path)
def testCloseRunningProjectNoProject(self):
self.assertTrue(self.manager.closeRunningProject())
self.assertFalse(self.signals)
#.........这里部分代码省略.........
示例2: Pitivi
# 需要导入模块: from pitivi.project import ProjectManager [as 别名]
# 或者: from pitivi.project.ProjectManager import loadProject [as 别名]
#.........这里部分代码省略.........
# The app is already started and the window already created.
# Present the already existing window.
try:
# TODO: Use present() instead of present_with_time() when
# https://bugzilla.gnome.org/show_bug.cgi?id=688830 is fixed.
from gi.repository import GdkX11
x11_server_time = GdkX11.x11_get_server_time(self.gui.get_window())
self.gui.present_with_time(x11_server_time)
except ImportError:
# On Wayland or Quartz (Mac OS X) backend there is no GdkX11,
# so just use present() directly here.
self.gui.present()
# No need to show the welcome wizard.
return
self.createMainWindow()
self.welcome_wizard = StartUpWizard(self)
self.welcome_wizard.show()
def createMainWindow(self):
if self.gui:
return
self.gui = PitiviMainWindow(self)
self.add_window(self.gui)
# We might as well show it.
self.gui.show()
def openCb(self, unused_app, giofiles, unused_count, unused_hint):
assert giofiles
self.createMainWindow()
if len(giofiles) > 1:
self.warning(
"Can open only one project file at a time. Ignoring the rest!")
project_file = giofiles[0]
self.project_manager.loadProject(quote_uri(project_file.get_uri()))
return True
def shutdown(self):
"""
Close Pitivi.
@return: C{True} if Pitivi was successfully closed, else C{False}.
@rtype: C{bool}
"""
self.debug("shutting down")
# Refuse to close if we are not done with the current project.
if not self.project_manager.closeRunningProject():
self.warning(
"Not closing since running project doesn't want to close")
return False
if self.welcome_wizard:
self.welcome_wizard.hide()
if self.gui:
self.gui.destroy()
self.threads.stopAllThreads()
self.settings.storeSettings()
self.quit()
return True
self._first_action = True
def _setScenarioFile(self, uri):
if 'PITIVI_SCENARIO_FILE' in os.environ:
uri = quote_uri(os.environ['PITIVI_SCENARIO_FILE'])
else:
cache_dir = get_dir(os.path.join(xdg_cache_home(), "scenarios"))
scenario_name = str(time.strftime("%Y%m%d-%H%M%S"))
示例3: TestProjectManager
# 需要导入模块: from pitivi.project import ProjectManager [as 别名]
# 或者: from pitivi.project.ProjectManager import loadProject [as 别名]
class TestProjectManager(TestCase):
def setUp(self):
app = mock.MagicMock()
self.manager = ProjectManager(app)
self.listener = ProjectManagerListener(self.manager)
self.signals = self.listener.signals
def testLoadProjectFailedUnknownFormat(self):
"""
Check that new-project-failed is emitted when we don't have a suitable
formatter.
"""
uri = "file:///Untitled.meh"
self.manager.loadProject(uri)
# loading
name, args = self.signals[0]
self.assertEqual(uri, args[0].get_uri(), self.signals)
# failed
name, args = self.signals[1]
self.assertEqual("new-project-failed", name)
signalUri, unused_message = args
self.assertEqual(uri, signalUri, self.signals)
def testLoadProjectClosesCurrent(self):
"""
Check that new-project-failed is emited if we can't close the current
project instance.
"""
state = {"tried-close": False}
def close():
state["tried-close"] = True
return False
self.manager.closeRunningProject = close
uri = "file:///Untitled.xptv"
self.manager.current_project = mock.Mock()
self.manager.loadProject(uri)
self.assertEqual(0, len(self.signals))
self.assertTrue(state["tried-close"], self.signals)
def testLoadProject(self):
self.manager.newBlankProject()
name, args = self.signals[0]
self.assertEqual("new-project-loading", name, self.signals)
name, args = self.signals[1]
self.assertEqual("new-project-created", name, self.signals)
name, args = self.signals[2]
self.assertEqual("new-project-loaded", name, self.signals)
def testMissingUriForwarded(self):
mainloop = common.create_main_loop()
def missingUriCb(self, project, error, clip_asset, result):
result[0] = True
mainloop.quit()
result = [False]
self.manager.connect("missing-uri", missingUriCb, result)
with common.created_project_file() as uri:
self.assertTrue(self.manager.loadProject(uri))
mainloop.run()
self.assertTrue(result[0], "missing-uri has not been emitted")
def testLoaded(self):
mainloop = common.create_main_loop()
def new_project_loaded_cb(project_manager, project):
mainloop.quit()
self.manager.connect("new-project-loaded", new_project_loaded_cb)
asset_uri = common.get_sample_uri("flat_colour1_640x480.png")
with common.created_project_file(asset_uri=asset_uri) as uri:
self.assertTrue(self.manager.loadProject(uri))
mainloop.run()
project = self.manager.current_project
self.assertFalse(project.at_least_one_asset_missing)
self.assertTrue(project.loaded)
self.assertFalse(project.hasUnsavedModifications())
def testCloseRunningProjectNoProject(self):
self.assertTrue(self.manager.closeRunningProject())
self.assertFalse(self.signals)
def testCloseRunningProjectRefuseFromSignal(self):
def closing(manager, project):
return False
self.manager.current_project = mock.Mock()
self.manager.current_project.uri = "file:///ciao"
#.........这里部分代码省略.........
示例4: Pitivi
# 需要导入模块: from pitivi.project import ProjectManager [as 别名]
# 或者: from pitivi.project.ProjectManager import loadProject [as 别名]
#.........这里部分代码省略.........
self.quit_action = Gio.SimpleAction.new("quit", None)
self.quit_action.connect("activate", self._quitCb)
self.add_action(self.quit_action)
self.add_accelerator("<Control>q", "app.quit", None)
def _activateCb(self, unused_app):
if self.gui:
# The app is already started and the window already created.
# Present the already existing window.
# TODO: Use present() instead of present_with_time() when
# https://bugzilla.gnome.org/show_bug.cgi?id=688830 is fixed.
x11_server_time = GdkX11.x11_get_server_time(self.gui.get_window())
self.gui.present_with_time(x11_server_time)
# No need to show the welcome wizard.
return
self.createMainWindow()
self.welcome_wizard = StartUpWizard(self)
self.welcome_wizard.show()
def createMainWindow(self):
if self.gui:
return
self.gui = PitiviMainWindow(self)
self.add_window(self.gui)
# We might as well show it.
self.gui.show()
def openCb(self, unused_app, giofiles, unused_count, unused_hint):
assert giofiles
self.createMainWindow()
if len(giofiles) > 1:
self.warning("Can open only one project file at a time. Ignoring the rest!")
project_file = giofiles[0]
self.project_manager.loadProject(quote_uri(project_file.get_uri()))
return True
def shutdown(self):
"""
Close Pitivi.
@return: C{True} if Pitivi was successfully closed, else C{False}.
@rtype: C{bool}
"""
self.debug("shutting down")
# Refuse to close if we are not done with the current project.
if not self.project_manager.closeRunningProject():
self.warning("Not closing since running project doesn't want to close")
return False
if self.welcome_wizard:
self.welcome_wizard.hide()
if self.gui:
self.gui.destroy()
self.threads.stopAllThreads()
self.settings.storeSettings()
self.quit()
return True
def _newProjectLoaded(self, unused_project_manager, project, unused_fully_loaded):
self.action_log.clean()
self.timeline_log_observer.startObserving(project.timeline)
self.project_log_observer.startObserving(project)
def _projectClosed(self, unused_project_manager, project):
self.project_log_observer.stopObserving(project)
self.timeline_log_observer.stopObserving(project.timeline)