"""
@bug For some reason, the back/close button doesn't work when I nest multiple levels
@bug When switching from conference to magazines, it randomly jumps around and duplicates windows
-@bug fullscreen does not propgate
@todo Re-use windows for better performance
@todo Make radio program updates only happen when the app has focus to reduce CPU wakes
def load_settings(self, config, sectionName):
try:
- self._windowInFullscreen = config.getboolean(sectionName, "fullscreen")
+ windowInFullscreen = config.getboolean(sectionName, "fullscreen")
except ConfigParser.NoSectionError, e:
_moduleLogger.info(
"Settings file %s is missing section %s" % (
)
)
- if self._windowInFullscreen:
+ if windowInFullscreen:
self._window.fullscreen()
else:
self._window.unfullscreen()
@misc_utils.log_exception(_moduleLogger)
def _on_window_state_change(self, widget, event, *args):
+ oldIsFull = self._windowInFullscreen
if event.new_window_state & gtk.gdk.WINDOW_STATE_FULLSCREEN:
self._windowInFullscreen = True
else:
self._windowInFullscreen = False
- self.emit("fullscreen", self._windowInFullscreen)
+ if oldIsFull != self._windowInFullscreen:
+ _moduleLogger.info("%r Emit fullscreen %s" % (self, self._windowInFullscreen))
+ self.emit("fullscreen", self._windowInFullscreen)
@misc_utils.log_exception(_moduleLogger)
def _on_key_press(self, widget, event, *args):
self._window.destroy()
@misc_utils.log_exception(_moduleLogger)
+ def _on_child_fullscreen(self, source, isFull):
+ if isFull:
+ _moduleLogger.info("Full screen %r to mirror child %r" % (self, source))
+ self._window.fullscreen()
+ else:
+ _moduleLogger.info("Unfull screen %r to mirror child %r" % (self, source))
+ self._window.unfullscreen()
+
+ @misc_utils.log_exception(_moduleLogger)
def _on_jump(self, source, node):
raise NotImplementedError("On %s" % self)
import hildonize
import util.go_utils as go_utils
import util.misc as misc_utils
-import banners
-import stream_index
import windows
sessionsWindow = ConferenceSessionsWindow(self._app, self._player, self._store, node)
sessionsWindow.window.set_modal(True)
sessionsWindow.window.set_transient_for(self._window)
- sessionsWindow.window.set_default_size(*self._window.get_size())
+ if self._windowInFullscreen:
+ sessionsWindow.window.fullscreen()
+ else:
+ sessionsWindow.window.unfullscreen()
sessionsWindow.connect("quit", self._on_quit)
sessionsWindow.connect("home", self._on_home)
sessionsWindow.connect("jump-to", self._on_jump)
+ sessionsWindow.connect("fullscreen", self._on_child_fullscreen)
sessionsWindow.show()
return sessionsWindow
sessionsWindow = ConferenceTalksWindow(self._app, self._player, self._store, node)
sessionsWindow.window.set_modal(True)
sessionsWindow.window.set_transient_for(self._window)
- sessionsWindow.window.set_default_size(*self._window.get_size())
+ if self._windowInFullscreen:
+ sessionsWindow.window.fullscreen()
+ else:
+ sessionsWindow.window.unfullscreen()
sessionsWindow.connect("quit", self._on_quit)
sessionsWindow.connect("home", self._on_home)
sessionsWindow.connect("jump-to", self._on_jump)
+ sessionsWindow.connect("fullscreen", self._on_child_fullscreen)
sessionsWindow.show()
return sessionsWindow
sessionsWindow = ConferenceTalkWindow(self._app, self._player, self._store, node)
sessionsWindow.window.set_modal(True)
sessionsWindow.window.set_transient_for(self._window)
- sessionsWindow.window.set_default_size(*self._window.get_size())
+ if self._windowInFullscreen:
+ sessionsWindow.window.fullscreen()
+ else:
+ sessionsWindow.window.unfullscreen()
sessionsWindow.connect("quit", self._on_quit)
sessionsWindow.connect("home", self._on_home)
sessionsWindow.connect("jump-to", self._on_jump)
+ sessionsWindow.connect("fullscreen", self._on_child_fullscreen)
sessionsWindow.show()
return sessionsWindow
import hildonize
import util.go_utils as go_utils
import util.misc as misc_utils
-import banners
-import presenter
-import stream_index
import windows
issuesWindow = MagazineIssuesWindow(self._app, self._player, self._store, node)
issuesWindow.window.set_modal(True)
issuesWindow.window.set_transient_for(self._window)
- issuesWindow.window.set_default_size(*self._window.get_size())
+ if self._windowInFullscreen:
+ issuesWindow.window.fullscreen()
+ else:
+ issuesWindow.window.unfullscreen()
issuesWindow.connect("quit", self._on_quit)
issuesWindow.connect("home", self._on_home)
issuesWindow.connect("jump-to", self._on_jump)
+ issuesWindow.connect("fullscreen", self._on_child_fullscreen)
issuesWindow.show()
return issuesWindow
issuesWindow = MagazineArticlesWindow(self._app, self._player, self._store, node)
issuesWindow.window.set_modal(True)
issuesWindow.window.set_transient_for(self._window)
- issuesWindow.window.set_default_size(*self._window.get_size())
+ if self._windowInFullscreen:
+ issuesWindow.window.fullscreen()
+ else:
+ issuesWindow.window.unfullscreen()
issuesWindow.connect("quit", self._on_quit)
issuesWindow.connect("home", self._on_home)
issuesWindow.connect("jump-to", self._on_jump)
+ issuesWindow.connect("fullscreen", self._on_child_fullscreen)
issuesWindow.show()
return issuesWindow
issuesWindow = MagazineArticleWindow(self._app, self._player, self._store, node)
issuesWindow.window.set_modal(True)
issuesWindow.window.set_transient_for(self._window)
- issuesWindow.window.set_default_size(*self._window.get_size())
+ if self._windowInFullscreen:
+ issuesWindow.window.fullscreen()
+ else:
+ issuesWindow.window.unfullscreen()
issuesWindow.connect("quit", self._on_quit)
issuesWindow.connect("home", self._on_home)
issuesWindow.connect("jump-to", self._on_jump)
+ issuesWindow.connect("fullscreen", self._on_child_fullscreen)
issuesWindow.show()
return issuesWindow
import hildonize
import util.go_utils as go_utils
import util.misc as misc_utils
-import banners
-import presenter
-import stream_index
import windows
booksWindow = ScriptureBooksWindow(self._app, self._player, self._store, node)
booksWindow.window.set_modal(True)
booksWindow.window.set_transient_for(self._window)
- booksWindow.window.set_default_size(*self._window.get_size())
+ if self._windowInFullscreen:
+ booksWindow.window.fullscreen()
+ else:
+ booksWindow.window.unfullscreen()
booksWindow.connect("quit", self._on_quit)
booksWindow.connect("home", self._on_home)
booksWindow.connect("jump-to", self._on_jump)
+ booksWindow.connect("fullscreen", self._on_child_fullscreen)
booksWindow.show()
return booksWindow
booksWindow = ScriptureChaptersWindow(self._app, self._player, self._store, node)
booksWindow.window.set_modal(True)
booksWindow.window.set_transient_for(self._window)
- booksWindow.window.set_default_size(*self._window.get_size())
+ if self._windowInFullscreen:
+ booksWindow.window.fullscreen()
+ else:
+ booksWindow.window.unfullscreen()
booksWindow.connect("quit", self._on_quit)
booksWindow.connect("home", self._on_home)
booksWindow.connect("jump-to", self._on_jump)
+ booksWindow.connect("fullscreen", self._on_child_fullscreen)
booksWindow.show()
return booksWindow
booksWindow = ScriptureChapterWindow(self._app, self._player, self._store, node)
booksWindow.window.set_modal(True)
booksWindow.window.set_transient_for(self._window)
- booksWindow.window.set_default_size(*self._window.get_size())
+ if self._windowInFullscreen:
+ booksWindow.window.fullscreen()
+ else:
+ booksWindow.window.unfullscreen()
booksWindow.connect("quit", self._on_quit)
booksWindow.connect("home", self._on_home)
booksWindow.connect("jump-to", self._on_jump)
+ booksWindow.connect("fullscreen", self._on_child_fullscreen)
booksWindow.show()
return booksWindow
sourceWindow.window.set_modal(True)
sourceWindow.window.set_transient_for(self._window)
sourceWindow.window.set_default_size(*self._window.get_size())
+ if self._windowInFullscreen:
+ sourceWindow.window.fullscreen()
+ else:
+ sourceWindow.window.unfullscreen()
sourceWindow.connect("quit", self._on_quit)
sourceWindow.connect("jump-to", self._on_jump)
+ sourceWindow.connect("fullscreen", self._on_child_fullscreen)
sourceWindow.show()
return sourceWindow