self._recent = []
self._hiddenCategories = set()
self._hiddenUnits = {}
- self._isFullscreen = False
self._clipboard = QtGui.QApplication.clipboard()
self._jumpWindow = None
self._recentAction.triggered.connect(self._on_recent_start)
self._fullscreenAction = QtGui.QAction(None)
- self._fullscreenAction.setText("Toggle Fullscreen")
- # @todo Make this checkable
+ self._fullscreenAction.setText("Fullscreen")
+ self._fullscreenAction.setCheckable(True)
self._fullscreenAction.setShortcut(QtGui.QKeySequence("CTRL+Enter"))
- self._fullscreenAction.triggered.connect(self._on_toggle_fullscreen)
+ self._fullscreenAction.toggled.connect(self._on_toggle_fullscreen)
self._showFavoritesAction = QtGui.QAction(None)
self._showFavoritesAction.setCheckable(True)
_moduleLogger.info("Settings were corrupt")
settings = {}
- self._isFullscreen = settings.get("isFullScreen", self._isFullscreen)
+ self._fullscreenAction.setChecked(settings.get("isFullScreen", False))
recent = settings.get("recent", self._recent)
for category, unit in recent:
self._showFavoritesAction.setChecked(settings.get("showFavorites", True))
- for window in self._walk_children():
- window.set_fullscreen(self._isFullscreen)
if self._recent:
self._catWindow.select_category(self._recent[-1][0])
def save_settings(self):
settings = {
- "isFullScreen": self._isFullscreen,
+ "isFullScreen": self._fullscreenAction.isChecked(),
"recent": self._recent,
"hiddenCategories": list(self._hiddenCategories),
"hiddenUnits": dict(
@misc_utils.log_exception(_moduleLogger)
def _on_toggle_fullscreen(self, checked = False):
- self._isFullscreen = not self._isFullscreen
for window in self._walk_children():
- window.set_fullscreen(self._isFullscreen)
+ window.set_fullscreen(checked)
@misc_utils.log_exception(_moduleLogger)
def _on_jump_start(self, checked = False):
self._window.setCentralWidget(centralWidget)
self._closeWindowAction = QtGui.QAction(None)
- self._closeWindowAction.setText("Window")
+ self._closeWindowAction.setText("Close")
self._closeWindowAction.setShortcut(QtGui.QKeySequence("CTRL+w"))
self._closeWindowAction.triggered.connect(self._on_close_window)
self._window.addAction(self._app.logAction)
+ self.set_fullscreen(self._app.fullscreenAction.isChecked())
self._window.show()
@property
twi.setText(1, unit)
self._closeWindowAction = QtGui.QAction(None)
- self._closeWindowAction.setText("Window")
+ self._closeWindowAction.setText("Close")
self._closeWindowAction.setShortcut(QtGui.QKeySequence("CTRL+w"))
self._closeWindowAction.triggered.connect(self._on_close_window)
self._window.addAction(self._app.logAction)
+ self.set_fullscreen(self._app.fullscreenAction.isChecked())
self._window.show()
@property
class FavoriteCategoriesWindow(object):
- # @todo Add All, None, and Invert actions
-
def __init__(self, parent, app, source, hidden):
self._app = app
self._source = list(source)
self._categories.setAlternatingRowColors(True)
self._categories.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows)
self._categories.setSelectionMode(QtGui.QAbstractItemView.MultiSelection)
+ self._childWidgets = []
for catName in self._source:
twi = QtGui.QTreeWidgetItem(self._categories)
twi.setText(0, catName)
+ self._childWidgets.append(twi)
if catName not in self._hidden:
self._categories.setItemSelected(twi, True)
self._selection = self._categories.selectionModel()
self._selection.selectionChanged.connect(self._on_selection_changed)
+ self._allButton = QtGui.QPushButton("All")
+ self._allButton.clicked.connect(self._on_select_all)
+ self._invertButton = QtGui.QPushButton("Invert")
+ self._invertButton.clicked.connect(self._on_invert_selection)
+ self._noneButton = QtGui.QPushButton("None")
+ self._noneButton.clicked.connect(self._on_select_none)
+
+ self._buttonLayout = QtGui.QHBoxLayout()
+ self._buttonLayout.addWidget(self._allButton)
+ self._buttonLayout.addWidget(self._invertButton)
+ self._buttonLayout.addWidget(self._noneButton)
+
self._layout = QtGui.QVBoxLayout()
self._layout.addWidget(self._categories)
+ self._layout.addLayout(self._buttonLayout)
centralWidget = QtGui.QWidget()
centralWidget.setLayout(self._layout)
self._window.setCentralWidget(centralWidget)
self._closeWindowAction = QtGui.QAction(None)
- self._closeWindowAction.setText("Window")
+ self._closeWindowAction.setText("Close")
self._closeWindowAction.setShortcut(QtGui.QKeySequence("CTRL+w"))
self._closeWindowAction.triggered.connect(self._on_close_window)
self._window.addAction(self._app.logAction)
+ self.set_fullscreen(self._app.fullscreenAction.isChecked())
self._window.show()
@property
self._window.showNormal()
@misc_utils.log_exception(_moduleLogger)
+ def _on_select_all(self, checked = False):
+ for child in self._childWidgets:
+ self._categories.setItemSelected(child, True)
+
+ @misc_utils.log_exception(_moduleLogger)
+ def _on_invert_selection(self, checked = False):
+ for child in self._childWidgets:
+ isSelected = self._categories.isItemSelected(child)
+ self._categories.setItemSelected(child, not isSelected)
+
+ @misc_utils.log_exception(_moduleLogger)
+ def _on_select_none(self, checked = False):
+ for child in self._childWidgets:
+ self._categories.setItemSelected(child, False)
+
+ @misc_utils.log_exception(_moduleLogger)
def _on_selection_changed(self, selected, deselected):
self._hidden.clear()
selectedNames = set(
self._app.showFavoritesAction.toggled.connect(self._on_show_favorites)
self._closeWindowAction = QtGui.QAction(None)
- self._closeWindowAction.setText("Window")
+ self._closeWindowAction.setText("Close")
self._closeWindowAction.setShortcut(QtGui.QKeySequence("CTRL+w"))
self._closeWindowAction.triggered.connect(self._on_close_window)
self._window.addAction(self._app.logAction)
self._update_favorites()
+ self.set_fullscreen(self._app.fullscreenAction.isChecked())
self._window.show()
@property
child.close()
self._unitWindow = UnitWindow(self._window, categoryName, self._app)
self._unitWindow.window.destroyed.connect(self._on_child_close)
- # @todo Add scroll to category
+
+ i = unit_data.UNIT_CATEGORIES.index(categoryName)
+ rootIndex = self._categories.rootIndex()
+ currentIndex = self._categories.model().index(i, 0, rootIndex)
+ self._categories.scrollTo(currentIndex)
return self._unitWindow
def set_fullscreen(self, isFullscreen):
self._window.addAction(self._chooseFavoritesAction)
self._update_favorites()
+ self.set_fullscreen(self._app.fullscreenAction.isChecked())
self._window.show()
@property
return self._window
def close(self):
+ for child in self.walk_children():
+ child.close()
self._window.close()
def set_fullscreen(self, isFullscreen):
def _on_value_edited(self, *args):
userInput = self._selectedUnitValue.text()
self._unitsModel.update_values(self._selectedIndex, str(userInput))
+ self._update_favorites()
def _select_unit(self, index):
unit = self._unitsModel.get_unit(index)