def run(self): mw = self.mw if mw.google_radio.isChecked(): mw.setStatusTip("Loading...") mw.start_button.setText("Loading...") mw.setEnabled(False) try: streetdb = table2dbf.load_from_google(mw.username.text(), mw.password.text(), mw.document_id.text()) except: import traceback traceback.print_exc() self.mbox = ("Google-Fail", QMessageBox.Warning, QIcon.fromTheme("dialog-warning"), "Couldn't login or load data from google!", None) return else: streetdb = table2dbf.load_street_db(mw.csv_file.text()) mw.setStatusTip("Updating...") mw.start_button.setText("Updating...") try: table = dbf.Table(mw.dbf_file.text()) table.open() self.updates = table2dbf.update_table(table, streetdb) table.close() except dbf.DbfError as e: self.mbox = ("DB-Fail", QMessageBox.Warning, QIcon.fromTheme("dialog-warning"), "Couldn't open/update table!", e.message) return self.streetdb = streetdb if mw.split_check.checkState(): import split_dbf split_dbf.split_files(mw.dbf_file.text())
def get_tray_icon(is_black=False): if os.environ.get('DESKTOP_SESSION', 'default') == 'gnome': return QIcon.fromTheme('everpad', QIcon('../../data/everpad.png')) if is_black: return QIcon.fromTheme('everpad-black', QIcon('../../data/everpad-black.png')) else: return QIcon.fromTheme('everpad-mono', QIcon('../../data/everpad-mono.png'))
def note_context_menu(self, pos): menu = QMenu(self.ui.notesList) menu.addAction(QIcon.fromTheme('gtk-edit'), self.tr('Edit'), self.edit_note) menu.addAction(QIcon.fromTheme('gtk-delete'), self.tr('Remove'), self.remove_note) menu.exec_(self.ui.notesList.mapToGlobal(pos))
def _reload_notebooks_list(self, select_notebook_id=None): # TODO could enable selecting an already selected stack self.notebooksModel.clear() root = QStandardItem(QIcon.fromTheme('user-home'), self.tr('All Notes')) self.notebooksModel.appendRow(root) selected_item = root stacks = {} for notebook_struct in self.app.provider.list_notebooks(): notebook = Notebook.from_tuple(notebook_struct) count = self.app.provider.get_notebook_notes_count(notebook.id) item = QNotebookItem(notebook, count) if (notebook.stack == ''): root.appendRow(item) else: if (notebook.stack not in stacks.keys()): stack = QStandardItem(QIcon.fromTheme('user-home'), notebook.stack) stack.stack = notebook.stack root.appendRow(stack) stacks[notebook.stack] = stack stacks[notebook.stack].appendRow(item) if select_notebook_id and notebook.id == select_notebook_id: selected_item = item self.ui.notebooksList.expandAll() if selected_item and not select_notebook_id == SELECT_NONE: index = self.notebooksModel.indexFromItem(selected_item) self.ui.notebooksList.setCurrentIndex(index) self.notebook_selected(index)
def get_tray_icon(is_black=False): if os.environ.get('DESKTOP_SESSION', 'default') == 'gnome': return QIcon.fromTheme('everpad', QIcon('../../data/everpad.png')) if is_black: return QIcon.fromTheme('everpad-black', QIcon('../../data/everpad-black.png')) else: return QIcon.fromTheme('everpad-mono', QIcon('../../data/everpad-mono.png'))
def __init__(self, app, *args, **kwargs): QDialog.__init__(self, *args, **kwargs) self.app = app self.closed = False self.sort_order = None self.ui = Ui_List() self.ui.setupUi(self) self.setWindowIcon(get_icon()) self.notebooksModel = QStandardItemModel() self.ui.notebooksList.setModel(self.notebooksModel) self.ui.notebooksList.selection.connect(self.selection_changed) self.ui.notebooksList.setContextMenuPolicy(Qt.CustomContextMenu) self.ui.notebooksList.customContextMenuRequested.connect( self.notebook_context_menu) self.notesModel = QStandardItemModel() self.notesModel.setHorizontalHeaderLabels( [self.tr('Title'), self.tr('Last Updated')]) self.ui.notesList.setModel(self.notesModel) self.ui.notesList.doubleClicked.connect(self.note_dblclicked) self.ui.notesList.setContextMenuPolicy(Qt.CustomContextMenu) self.ui.notesList.customContextMenuRequested.connect( self.note_context_menu) self.ui.notesList.header().sortIndicatorChanged.connect( self.sort_order_updated) self.ui.newNotebookBtn.setIcon(QIcon.fromTheme('folder-new')) self.ui.newNotebookBtn.clicked.connect(self.new_notebook) self.ui.newNoteBtn.setIcon(QIcon.fromTheme('document-new')) self.ui.newNoteBtn.clicked.connect(self.new_note)
def _reload_notebooks_list(self, select_notebook_id=None): # TODO could enable selecting an already selected stack self.notebooksModel.clear() root = QStandardItem(QIcon.fromTheme('user-home'), self.tr('All Notes')) self.notebooksModel.appendRow(root) selected_item = root stacks = {} for notebook_struct in self.app.provider.list_notebooks(): notebook = Notebook.from_tuple(notebook_struct) count = self.app.provider.get_notebook_notes_count(notebook.id) item = QNotebookItem(notebook, count) if(notebook.stack == ''): root.appendRow(item) else: if(notebook.stack not in stacks.keys()): stack = QStandardItem(QIcon.fromTheme('user-home'), notebook.stack) stack.stack = notebook.stack root.appendRow(stack) stacks[notebook.stack] = stack stacks[notebook.stack].appendRow(item) if select_notebook_id and notebook.id == select_notebook_id: selected_item = item self.ui.notebooksList.expandAll() if selected_item and not select_notebook_id == SELECT_NONE: index = self.notebooksModel.indexFromItem(selected_item) self.ui.notebooksList.setCurrentIndex(index) self.notebook_selected(index)
def __init__(self, app, *args, **kwargs): QDialog.__init__(self, *args, **kwargs) self.app = app self.closed = False self.sort_order = None self.ui = Ui_List() self.ui.setupUi(self) self.setWindowIcon(get_icon()) self.notebooksModel = QStandardItemModel() self.ui.notebooksList.setModel(self.notebooksModel) self.ui.notebooksList.selection.connect(self.selection_changed) self.ui.notebooksList.setContextMenuPolicy(Qt.CustomContextMenu) self.ui.notebooksList.customContextMenuRequested.connect(self.notebook_context_menu) self.notesModel = QStandardItemModel() self.notesModel.setHorizontalHeaderLabels( [self.tr('Title'), self.tr('Last Updated')]) self.ui.notesList.setModel(self.notesModel) self.ui.notesList.doubleClicked.connect(self.note_dblclicked) self.ui.notesList.setContextMenuPolicy(Qt.CustomContextMenu) self.ui.notesList.customContextMenuRequested.connect(self.note_context_menu) self.ui.notesList.header().sortIndicatorChanged.connect(self.sort_order_updated) self.ui.newNotebookBtn.setIcon(QIcon.fromTheme('folder-new')) self.ui.newNotebookBtn.clicked.connect(self.new_notebook) self.ui.newNoteBtn.setIcon(QIcon.fromTheme('document-new')) self.ui.newNoteBtn.clicked.connect(self.new_note) self.ui.newNoteBtn.setShortcut(QKeySequence(self.tr('Ctrl+n'))) self.ui.newNotebookBtn.setShortcut(QKeySequence(self.tr('Ctrl+Shift+n'))) QShortcut(QKeySequence(self.tr('Ctrl+q')), self, self.close)
def notebook_context_menu(self, pos): index = self.ui.notebooksList.currentIndex() item = self.notebooksModel.itemFromIndex(index) if hasattr(item, 'notebook'): menu = QMenu(self.ui.notebooksList) menu.addAction(QIcon.fromTheme('gtk-edit'), self.tr('Rename'), self.rename_notebook) menu.addAction(QIcon.fromTheme('gtk-delete'), self.tr('Remove'), self.remove_notebook) menu.exec_(self.ui.notebooksList.mapToGlobal(pos))
def update_icon(self): if int(self.settings.value('black-icon', 0)): self.icon = QIcon.fromTheme('everpad-black', QIcon('../../data/everpad-black.png')) else: self.icon = QIcon.fromTheme('everpad-mono', QIcon('../../data/everpad-mono.png')) self.indicator.setIcon(self.icon)
def notebook_context_menu(self, pos): index = self.ui.notebooksList.currentIndex() item = self.notebooksModel.itemFromIndex(index) if hasattr(item, 'notebook'): menu = QMenu(self.ui.notebooksList) menu.addAction(QIcon.fromTheme('gtk-edit'), self.tr('Rename'), self.rename_notebook) menu.addAction(QIcon.fromTheme('gtk-delete'), self.tr('Remove'), self.remove_notebook) menu.exec_(self.ui.notebooksList.mapToGlobal(pos))
def init_toolbar(self): self.save_btn = self.ui.toolBar.addAction(QIcon.fromTheme("document-save"), self.tr("Save"), self.save) self.close_btn = self.ui.toolBar.addAction( QIcon.fromTheme("window-close"), self.tr("Close without saving"), self.close ) self.ui.toolBar.addAction(QIcon.fromTheme("edit-delete"), self.tr("Remove note"), self.delete) self.print_btn = self.ui.toolBar.addAction( QIcon.fromTheme("document-print"), self.tr("Print note"), self.note_edit.print_ ) self.email_btn = self.ui.toolBar.addAction( QIcon.fromTheme("mail-unread"), self.tr("Email note"), self.note_edit.email_note ) self.email_btn = self.ui.toolBar.addAction( QIcon.fromTheme("emblem-shared"), self.tr("Share note"), self.share_note ) self.ui.toolBar.addSeparator() for action in self.note_edit.get_format_actions(): self.ui.toolBar.addAction(action) self.ui.toolBar.addSeparator() self.find_action = QAction(QIcon.fromTheme("edit-find"), self.tr("Find"), self) self.find_action.setCheckable(True) self.find_action.triggered.connect(self.findbar.toggle_visible) self.ui.toolBar.addAction(self.find_action) self.ui.toolBar.addSeparator() self.pin = self.ui.toolBar.addAction( QIcon.fromTheme("edit-pin", QIcon.fromTheme("everpad-pin")), self.tr("Pin note"), self.mark_touched ) self.pin.setCheckable(True) self.pin.setChecked(self.note.pinnded)
def _get_icon(self, icons): """Get icon""" if len(icons): icon, other = icons[0], icons[1:] fallback = self._get_icon(other) if fallback: return QIcon.fromTheme(icon, fallback=fallback) else: return QIcon.fromTheme(icon) else: return None
def _init_interface(self): self.ui = Ui_List() self.ui.setupUi(self) self.setWindowIcon(get_icon()) self.setWindowTitle(self.tr("Everpad / All Notes")) self.ui.newNotebookBtn.setIcon(QIcon.fromTheme('folder-new')) self.ui.newNotebookBtn.clicked.connect(self.new_notebook) self.ui.newNoteBtn.setIcon(QIcon.fromTheme('document-new')) self.ui.newNoteBtn.clicked.connect(self.new_note) self.ui.newNoteBtn.setShortcut(QKeySequence(self.tr('Ctrl+n'))) self.ui.newNotebookBtn.setShortcut(QKeySequence(self.tr('Ctrl+Shift+n'))) QShortcut(QKeySequence(self.tr('Ctrl+q')), self, self.close)
def init_toolbar(self): self.save_btn = self.ui.toolBar.addAction(QIcon.fromTheme("document-save"), self.tr("Save"), self.save) self.ui.toolBar.addAction(QIcon.fromTheme("cancel"), self.tr("Close without saving"), self.close) self.ui.toolBar.addAction(QIcon.fromTheme("edit-delete"), self.tr("Remove note"), self.delete) self.ui.toolBar.addSeparator() for action in self.note_edit.get_format_actions(): self.ui.toolBar.addAction(action) self.ui.toolBar.addSeparator() self.ui.toolBar.addAction(QIcon.fromTheme("add"), self.tr("Attache file"), self.resource_edit.add) self.ui.toolBar.addSeparator() self.options = self.ui.toolBar.addAction( QIcon.fromTheme("gtk-properties"), self.tr("Options"), self.show_options ) self.options.setCheckable(True)
def main(): app = QApplication(sys.argv) window = QMainWindow() view = QListView(window) window.setCentralWidget(view) view.setViewMode(QListView.IconMode) view.setMovement(QListView.Static) view.setIconSize(QSize(64, 64)) view.setModel( IconModel( [('System', QIcon.fromTheme('preferences-system')), ('Desktop', QIcon.fromTheme('preferences-desktop-personal'))], view)) window.show() app.exec_()
def _init_interface(self): self.ui = Ui_List() self.ui.setupUi(self) self.setWindowIcon(get_icon()) self.setWindowTitle(self.tr("Everpad / All Notes")) self.ui.newNotebookBtn.setIcon(QIcon.fromTheme('folder-new')) self.ui.newNotebookBtn.clicked.connect(self.new_notebook) self.ui.newNoteBtn.setIcon(QIcon.fromTheme('document-new')) self.ui.newNoteBtn.clicked.connect(self.new_note) self.ui.newNoteBtn.setShortcut(QKeySequence(self.tr('Ctrl+n'))) self.ui.newNotebookBtn.setShortcut( QKeySequence(self.tr('Ctrl+Shift+n'))) QShortcut(QKeySequence(self.tr('Ctrl+q')), self, self.close)
def __init__(self, parent=None): global client super(CharacterSelect, self).__init__(parent) self.setWindowTitle("Select A Character") # Character Portrait # Character Sprite # Name # Current zone # Money self.charbuttons = {} for char in client.characters: button = QPushButton() button.setText(char) button.setIcon(QIcon.fromTheme('applications-games')) func = functools.partial(self.select_character, char=char) button.clicked.connect(func) self.charbuttons[char] = button layout = QVBoxLayout() for w in self.charbuttons.values(): layout.addWidget(w) self.setLayout(layout) self.character_chosen.connect(qtclient.choose_char)
def __init__(self, obj): super(WorldObject, self).__init__() objloc = obj.get('loc', {'x': 0, 'y': 0}) self.setPos(int(objloc['x']), int(objloc['y'])) self.setPixmap(QIcon.fromTheme('user-online').pixmap(32)) self.setToolTip(obj.get('name', 'Object'))
def __init__(self, parent=None): super(LoginForm, self).__init__(parent) self.setWindowTitle("Login") self.status_icon = QIcon.fromTheme("user-offline") self.setWindowIcon(self.status_icon) self.server_status = QLabel() self.server_status.setAlignment(Qt.AlignCenter) self.server_status.setPixmap(self.status_icon.pixmap(64)) self.username = QLineEdit("Username") self.password = QLineEdit("Password") self.password.setEchoMode(QLineEdit.Password) self.login_button = QPushButton("Getting server status...") self.login_button.setEnabled(False) self.login_button.clicked.connect(self.login) self.login_button.setIcon(self.status_icon) self.ping_timer = QTimer(self) self.connect(self.ping_timer, SIGNAL("timeout()"), self.is_server_up) self.ping_timer.start(1000) layout = QVBoxLayout() for w in (self.server_status, self.username, self.password, self.login_button): layout.addWidget(w) self.setLayout(layout) self.logged_in.connect(qtclient.login)
def tag_context_menu(self, pos): index = self.ui.tagsList.currentIndex() item = self.tagsModel.itemFromIndex(index) if hasattr(item, 'tag'): menu = QMenu(self.ui.tagsList) menu.addAction(QIcon.fromTheme('gtk-delete'), self.tr('Remove'), self.remove_tag) menu.exec_(self.ui.tagsList.mapToGlobal(pos))
def __init__(self, parent=None): global client super(CharacterSelect, self).__init__(parent) self.setWindowTitle("Select A Character") # Character Portrait # Character Sprite # Name # Current zone # Money self.charbuttons = {} for char in client.characters: button = QPushButton() button.setText(char) button.setIcon(QIcon.fromTheme('applications-games')) func = functools.partial(self.select_character, char=char) button.clicked.connect(func) self.charbuttons[char] = button layout = QVBoxLayout() for w in self.charbuttons.values(): layout.addWidget(w) self.setLayout(layout) self.character_chosen.connect(qtclient.choose_char)
def __init__(self, parent=None): super(LoginForm, self).__init__(parent) self.setWindowTitle("Login") self.status_icon = QIcon.fromTheme("user-offline") self.setWindowIcon(self.status_icon) self.server_status = QLabel() self.server_status.setAlignment(Qt.AlignCenter) self.server_status.setPixmap(self.status_icon.pixmap(64)) self.username = QLineEdit("Username") self.password = QLineEdit("Password") self.password.setEchoMode(QLineEdit.Password) self.login_button = QPushButton("Getting server status...") self.login_button.setEnabled(False) self.login_button.clicked.connect(self.login) self.login_button.setIcon(self.status_icon) self.ping_timer = QTimer(self) self.connect(self.ping_timer, SIGNAL("timeout()"), self.is_server_up) self.ping_timer.start(1000) layout = QVBoxLayout() for w in (self.server_status, self.username, self.password, self.login_button): layout.addWidget(w) self.setLayout(layout) self.logged_in.connect(qtclient.login)
def __init__(self, obj): super(WorldObject, self).__init__() objloc = obj.get('loc', {'x':0, 'y':0}) self.setPos(int(objloc['x']), int(objloc['y'])) self.setPixmap(QIcon.fromTheme('user-online').pixmap(32)) self.setToolTip(obj.get('name', 'Object'))
def init_notebooks(self): frame = QFrame() layout = QVBoxLayout() frame.setLayout(layout) self.ui.scrollArea.setWidget(frame) for notebook_struct in self.app.provider.list_notebooks(): notebook = Notebook.from_tuple(notebook_struct) count = self.app.provider.get_notebook_notes_count(notebook.id) widget = QWidget() menu = QMenu(self) menu.addAction(self.tr('Change Name'), Slot()(partial( self.change_notebook, notebook=notebook, ))) action = menu.addAction(self.tr('Remove Notebook'), Slot()(partial( self.remove_notebook, notebook=notebook, ))) action.setEnabled(False) widget.ui = Ui_Notebook() widget.ui.setupUi(widget) widget.ui.name.setText(notebook.name) widget.ui.content.setText(self.tr('Containts %d notes') % count) widget.ui.actionBtn.setIcon(QIcon.fromTheme('gtk-properties')) widget.setFixedHeight(50) layout.addWidget(widget) widget.ui.actionBtn.clicked.connect(Slot()(partial( self.show_notebook_menu, menu=menu, widget=widget, )))
def setupActions(self): action_slots = dict( New=self.newFile, Open=self.askOpenFile, Save=self.saveFile, SaveAs=self.askSaveFile, Print=self.askPrint, Quit=self.close, Undo=self.editor.undo, Redo=self.editor.redo, Cut=self.editor.cut, Copy=self.editor.copy, Paste=self.editor.paste, Find=self.toggleSearchDock, FindNext=self.find, FindPrevious=partial(self.find, backwards=True), SelectAll=self.editor.selectAll, GoToLine=self.askGoToLine, AboutQt=QApplication.instance().aboutQt, About=self.about) for action in self.findChildren(QAction): object_name = action.objectName() if not object_name: continue action_name = object_name[len(self.ACTION_PREFIX):] icon_name = self.ACTION_ICONS.get(action_name) if icon_name: action.setIcon(QIcon.fromTheme(icon_name)) key = self.ACTION_KEYS.get(action_name) if key: action.setShortcut(key) slot = action_slots.get(action_name) if slot: action.triggered.connect(slot) if action_name in self.DISABLED_ACTIONS: action.setEnabled(False) for action in self.menuEdit.actions(): self.editor.addAction(action)
def __init__(self): super(LayerListWithToolBar, self).__init__() layout = QVBoxLayout() self.setLayout(layout) self.list = LayerList() self.toolbar = QToolBar() add_action = self.toolbar.addAction( QIcon.fromTheme('list-add'), 'add', ).triggered.connect(self._add) remove_action = self.toolbar.addAction( QIcon.fromTheme('list-remove'), 'remove', ).triggered.connect(self._remove) self.layout().addWidget(self.toolbar) self.layout().addWidget(self.list)
def start(self): incomplete = [] if self.google_radio.isChecked(): if not self.username.text(): incomplete.append(self.username) if not self.password.text(): incomplete.append(self.password) if not self.document_id.text(): incomplete.append(self.document_id) elif not self.csv_file.text(): incomplete.append(self.csv_file) if not self.dbf_file.text(): incomplete.append(self.dbf_file) if len(incomplete) > 0: mbox = QMessageBox(self) mbox.setWindowTitle("Warning, incomplete fields!") mbox.setIcon(QMessageBox.Warning) mbox.setWindowIcon(QIcon.fromTheme("dialog-warning")) mbox.setText("%d fields are incomplete" % len(incomplete)) mbox.exec() for field in self.changed_styles: field.setStyleSheet("") for field in incomplete: field.setStyleSheet("border: 1.5px solid red; border-radius: 5px") self.changed_styles = incomplete.copy() return for field in self.changed_styles: field.setStyleSheet("") self.setStatusTip("Working...") self.working_thread = WorkThread(self) self.working_thread.finished.connect(self.finished_start) self.working_thread.start()
def setup_gui(self): """Sets up a sample gui interface.""" central_widget = QWidget(self) central_widget.setObjectName('central_widget') self.label = QLabel('Hello World') self.input_field = QLineEdit() change_button = QPushButton('Change text') close_button = QPushButton('close') quit_button = QPushButton('quit') central_layout = QVBoxLayout() button_layout = QHBoxLayout() central_layout.addWidget(self.label) central_layout.addWidget(self.input_field) # a separate layout to display buttons horizontal button_layout.addWidget(change_button) button_layout.addWidget(close_button) button_layout.addWidget(quit_button) central_layout.addLayout(button_layout) central_widget.setLayout(central_layout) self.setCentralWidget(central_widget) # create a system tray icon. Uncomment the second form, to have an # icon assigned, otherwise you will only be seeing an empty space in # system tray self.systemtrayicon = QSystemTrayIcon(self) self.systemtrayicon.show() # set a fancy icon self.systemtrayicon.setIcon(QIcon.fromTheme('help-browser')) change_button.clicked.connect(self.change_text) quit_button.clicked.connect(QApplication.instance().quit) close_button.clicked.connect(self.hide) # show main window, if the system tray icon was clicked self.systemtrayicon.activated.connect(self.icon_activated)
def setup_gui(self): """Sets up a sample gui interface.""" central_widget = QWidget(self) central_widget.setObjectName('central_widget') self.label = QLabel('Hello World') self.input_field = QLineEdit() change_button = QPushButton('Change text') close_button = QPushButton('close') quit_button = QPushButton('quit') central_layout = QVBoxLayout() button_layout = QHBoxLayout() central_layout.addWidget(self.label) central_layout.addWidget(self.input_field) # a separate layout to display buttons horizontal button_layout.addWidget(change_button) button_layout.addWidget(close_button) button_layout.addWidget(quit_button) central_layout.addLayout(button_layout) central_widget.setLayout(central_layout) self.setCentralWidget(central_widget) # create a system tray icon. Uncomment the second form, to have an # icon assigned, otherwise you will only be seeing an empty space in # system tray self.systemtrayicon = QSystemTrayIcon(self) self.systemtrayicon.show() # set a fancy icon self.systemtrayicon.setIcon(QIcon.fromTheme('help-browser')) change_button.clicked.connect(self.change_text) quit_button.clicked.connect(QApplication.instance().quit) close_button.clicked.connect(self.hide) # show main window, if the system tray icon was clicked self.systemtrayicon.activated.connect(self.icon_activated)
def tag_context_menu(self, pos): index = self.ui.tagsList.currentIndex() item = self.tagsModel.itemFromIndex(index) if hasattr(item, 'tag'): menu = QMenu(self.ui.tagsList) menu.addAction(QIcon.fromTheme('gtk-delete'), self.tr('Remove'), self.remove_tag) menu.exec_(self.ui.tagsList.mapToGlobal(pos))
def is_server_up(self): '''Tests to see if the authentication server is up.''' global client from requests.exceptions import ConnectionError try: if client.ping(): self.login_button.setEnabled(True) self.login_button.setText("Login!") self.status_icon = QIcon.fromTheme("user-online") except (ConnectionError): # We can only wait until the server comes back up. self.login_button.setEnabled(False) self.login_button.setText("Server is offline. :(") self.status_icon = QIcon.fromTheme("user-offline") self.setWindowIcon(self.status_icon) self.server_status.setPixmap(self.status_icon.pixmap(64)) self.login_button.setIcon(self.status_icon)
def is_server_up(self): '''Tests to see if the authentication server is up.''' global client from requests.exceptions import ConnectionError try: if client.ping(): self.login_button.setEnabled(True) self.login_button.setText("Login!") self.status_icon = QIcon.fromTheme("user-online") except(ConnectionError): # We can only wait until the server comes back up. self.login_button.setEnabled(False) self.login_button.setText("Server is offline. :(") self.status_icon = QIcon.fromTheme("user-offline") self.setWindowIcon(self.status_icon) self.server_status.setPixmap(self.status_icon.pixmap(64)) self.login_button.setIcon(self.status_icon)
def _init_window(self): """Init window attributes""" self.setWindowTitle('Series list') if os.path.exists(const.ICON_PATH): icon = QIcon() icon.addFile(const.ICON_PATH) else: icon = QIcon.fromTheme('series_list_icon') self.setWindowIcon(icon)
def make_items(self): items = [QStandardItem(unicode(self.note.title)), QStandardItem(unicode(datetime.datetime.fromtimestamp( self.note.updated / 1000.0)))] for item in items: item.note = self.note items[0].setIcon(QIcon.fromTheme('x-office-document')) items[1].setEditable(False) return items
def init_toolbar(self): self.save_btn = self.ui.toolBar.addAction( QIcon.fromTheme('document-save'), self.tr('Save'), self.save, ) self.close_btn = self.ui.toolBar.addAction( QIcon.fromTheme('window-close'), self.tr('Close without saving'), self.close, ) self.ui.toolBar.addAction( QIcon.fromTheme('edit-delete'), self.tr('Remove note'), self.delete, ) self.print_btn = self.ui.toolBar.addAction( QIcon.fromTheme('document-print'), self.tr('Print note'), self.note_edit.print_, ) self.email_btn = self.ui.toolBar.addAction( QIcon.fromTheme('mail-unread'), self.tr('Email note'), self.note_edit.email_note, ) self.email_btn = self.ui.toolBar.addAction( QIcon.fromTheme('emblem-shared'), self.tr('Share note'), self.share_note, ) self.ui.toolBar.addSeparator() for action in self.note_edit.get_format_actions(): self.ui.toolBar.addAction(action) self.ui.toolBar.addSeparator() self.find_action = QAction(QIcon.fromTheme('edit-find'), self.tr('Find'), self) self.find_action.setCheckable(True) self.find_action.triggered.connect(self.findbar.toggle_visible) self.ui.toolBar.addAction(self.find_action) self.ui.toolBar.addSeparator() self.pin = self.ui.toolBar.addAction( QIcon.fromTheme('edit-pin', QIcon.fromTheme('everpad-pin')), self.tr('Pin note'), self.mark_touched, ) self.pin.setCheckable(True) self.pin.setChecked(self.note.pinnded)
def main(): app = QApplication(sys.argv) window = QMainWindow() view = QListView(window) window.setCentralWidget(view) view.setViewMode(QListView.IconMode) view.setMovement(QListView.Static) view.setIconSize(QSize(64, 64)) view.setModel( IconModel( [ ("System", QIcon.fromTheme("preferences-system")), ("Desktop", QIcon.fromTheme("preferences-desktop-personal")), ], view, ) ) window.show() app.exec_()
def __init__(self, *args, **kwargs): QApplication.__init__(self, *args, **kwargs) self.settings = QSettings("everpad", "everpad-pad") self.translator = QTranslator() if not self.translator.load("../../i18n/%s" % QLocale.system().name()): self.translator.load("/usr/share/everpad/i18n/%s" % QLocale.system().name()) self.installTranslator(self.translator) self.icon = QIcon.fromTheme("everpad-mono", QIcon("../../everpad-mono.png")) self.indicator = Indicator(self, self.icon) self.indicator.show()
def get(name): if QFile('icons:{}.svg'.format(name)).exists(): return QIcon('icons:{}.svg'.format(name)) if QIcon.hasThemeIcon(name): return QIcon.fromTheme(name) if os.path.exists(name): return QIcon(name) return QIcon()
def init_toolbar(self): self.save_btn = self.ui.toolBar.addAction( QIcon.fromTheme('document-save'), self.tr('Save'), self.save, ) self.close_btn = self.ui.toolBar.addAction( QIcon.fromTheme('window-close'), self.tr('Close without saving'), self.close, ) self.ui.toolBar.addAction( QIcon.fromTheme('edit-delete'), self.tr('Remove note'), self.delete, ) self.print_btn = self.ui.toolBar.addAction( QIcon.fromTheme('document-print'), self.tr('Print note'), self.note_edit.print_, ) self.email_btn = self.ui.toolBar.addAction( QIcon.fromTheme('mail-unread'), self.tr('Email note'), self.note_edit.email_note, ) self.email_btn = self.ui.toolBar.addAction( QIcon.fromTheme('emblem-shared'), self.tr('Share note'), self.share_note, ) self.ui.toolBar.addSeparator() for action in self.note_edit.get_format_actions(): self.ui.toolBar.addAction(action) self.ui.toolBar.addSeparator() self.find_action = QAction(QIcon.fromTheme('edit-find'), self.tr('Find'), self) self.find_action.setCheckable(True) self.find_action.triggered.connect(self.findbar.toggle_visible) self.ui.toolBar.addAction(self.find_action) self.ui.toolBar.addSeparator() self.pin = self.ui.toolBar.addAction( QIcon.fromTheme('edit-pin', QIcon.fromTheme('everpad-pin')), self.tr('Pin note'), self.mark_touched, ) self.pin.setCheckable(True) self.pin.setChecked(self.note.pinnded)
def iconFromTheme(icon, fallback): """ Utility method for getting icons from default X11 icon theme. Returns a ``QIcon`` from the X11 system-icon theme if a match is found, else the `fallback` is used. :param icon: the name of the icon in the X11 icon-theme. :type icon: string :param fallback: the name of the fallback icon. :type icon: string """ return QIcon.fromTheme(icon, QIcon(fallback))
def _action_with_icon(self, action_type, icon_names, is_action=False): if is_action: action = action_type else: action = self.page.action(action_type) for icon_name in icon_names: if QIcon.hasThemeIcon(icon_name): action.setIcon(QIcon.fromTheme(icon_name)) break self.copy_available.connect(action.setEnabled) return action
def _action_with_icon(self, action_type, icon_names, is_action=False): if is_action: action = action_type else: action = self.page.action(action_type) for icon_name in icon_names: if QIcon.hasThemeIcon(icon_name): action.setIcon(QIcon.fromTheme(icon_name)) break self.copy_available.connect(action.setEnabled) return action
def init_toolbar(self): self.save_btn = self.ui.toolBar.addAction( QIcon.fromTheme('document-save'), self.tr('Save'), self.save, ) self.ui.toolBar.addAction( QIcon.fromTheme('cancel'), self.tr('Close without saving'), self.close, ) self.ui.toolBar.addAction( QIcon.fromTheme('edit-delete'), self.tr('Remove note'), self.delete, ) self.ui.toolBar.addSeparator() for action in self.note_edit.get_format_actions(): self.ui.toolBar.addAction(action) self.ui.toolBar.addSeparator() self.find_action = QAction(QIcon.fromTheme('edit-find'), self.app.tr('Find'), self) self.find_action.setCheckable(True) self.find_action.triggered.connect(self.findbar.toggle_visible) self.ui.toolBar.addAction(self.find_action) self.ui.toolBar.addSeparator() self.pin = self.ui.toolBar.addAction( QIcon.fromTheme('edit-pin', QIcon.fromTheme('everpad-pin')), self.tr('Pin note'), self.mark_touched, ) self.pin.setCheckable(True) self.pin.setChecked(self.note.pinnded)
def __init__(self, editor, *args, **kwargs): QWidget.__init__(self, *args, **kwargs) self.editor = editor self.ui = Ui_FindBar() self.ui.setupUi(self) # pyside-uic doesn't translate icons from themes correctly, so we have # to re-set the icons manually here self.ui.btnPrevious.setIcon(QIcon.fromTheme('go-previous')) self.ui.btnNext.setIcon(QIcon.fromTheme('go-next')) self.ui.btnClose.setIcon(QIcon.fromTheme('window-close')) self.visible = False self.ui.btnClose.clicked.connect(self.hide) self.ui.edtFindText.returnPressed.connect(self.find_next) self.ui.edtFindText.textChanged.connect(self.find_text_updated) self.ui.btnNext.clicked.connect(self.find_next) self.ui.btnPrevious.clicked.connect(self.find_previous) self.ui.btnHighlight.clicked.connect(self.update_highlight) self.ui.chkMatchCase.clicked.connect(self.match_case_updated)
def __init__(self, editor, *args, **kwargs): QWidget.__init__(self, *args, **kwargs) self.editor = editor self.ui = Ui_FindBar() self.ui.setupUi(self) # pyside-uic doesn't translate icons from themes correctly, so we have # to re-set the icons manually here self.ui.btnPrevious.setIcon(QIcon.fromTheme('go-previous')) self.ui.btnNext.setIcon(QIcon.fromTheme('go-next')) self.ui.btnClose.setIcon(QIcon.fromTheme('window-close')) self.visible = False self.ui.btnClose.clicked.connect(self.hide) self.ui.edtFindText.returnPressed.connect(self.find_next) self.ui.edtFindText.textChanged.connect(self.find_text_updated) self.ui.btnNext.clicked.connect(self.find_next) self.ui.btnPrevious.clicked.connect(self.find_previous) self.ui.btnHighlight.clicked.connect(self.update_highlight) self.ui.chkMatchCase.clicked.connect(self.match_case_updated)
def by_name(name): """Locates and loads an icon for the user, finding by name""" filename = os.path.join(ICONROOT, "%s.png" % name) if os.path.isfile(filename): #pixmap = QPixmap(filename) #icon = QIcon(pixmap) icon = QIcon(filename) return icon if QIcon.hasThemeIcon(name): return QIcon.fromTheme(name) raise KeyError, "No such icon %s exists." % name
def by_name(name): """Locates and loads an icon for the user, finding by name""" filename = os.path.join(ICONROOT, "%s.png" % name) if os.path.isfile(filename): #pixmap = QPixmap(filename) #icon = QIcon(pixmap) icon = QIcon(filename) return icon if QIcon.hasThemeIcon(name): return QIcon.fromTheme(name) raise KeyError, "No such icon %s exists." % name
def updateList(self, athletes): self.list.clear() self.athletesList = athletes for athlete in self.athletesList: iconW = QIcon.fromTheme("user-available") # doens't work on Mac and Windows # http://qt-project.org/doc/qt-4.8/qicon.html#fromTheme listW = QListWidgetItem(iconW, athlete._name) listW.setData(Qt.UserRole, athlete) self.list.addItem(listW)
def make_items(self): items = [ QStandardItem(unicode(self.note.title)), QStandardItem( unicode( datetime.datetime.fromtimestamp(self.note.updated / 1000.0))) ] for item in items: item.note = self.note items[0].setIcon(QIcon.fromTheme('x-office-document')) items[1].setEditable(False) return items
def __init__(self, parent=None): QMainWindow.__init__(self, parent) self.image_viewer = ImageView(parent=self) self.setCentralWidget(self.image_viewer) exit = QAction(QIcon.fromTheme('application-exit'), 'Exit', self) open_image = QAction(QIcon.fromTheme('document-open'), 'Open image ...', self) scaling = QAction(QIcon.fromTheme('transform-scale'), 'Scale pixmap', self) scaling.setCheckable(True) actions = self.addToolBar('Actions') actions.addAction(exit) actions.addSeparator() actions.addAction(open_image) image_viewer_actions = self.addToolBar('Image viewer') image_viewer_actions.addAction(scaling) exit.triggered.connect(QApplication.instance().quit) open_image.triggered.connect(self._open_image) scaling.triggered[bool].connect(self._update_scaling)
def setStdEditMenuIcons(menu): """Add system theme icons to QLineEdit and QTextEdit context-menu. :param menu: QMenu generated by createStandardContextMenu """ acts = menu.actions() if len(acts) < 9: return (undo, redo, __, cut, copy, paste, delete, __, sel, *__) = acts undo.setIcon(QIcon.fromTheme('edit-undo')) redo.setIcon(QIcon.fromTheme('edit-redo')) cut.setIcon(QIcon.fromTheme('edit-cut')) copy.setIcon(QIcon.fromTheme('edit-copy')) paste.setIcon(QIcon.fromTheme('edit-paste')) delete.setIcon(QIcon.fromTheme('edit-delete')) sel.setIcon(QIcon.fromTheme('edit-select-all'))
def icon(self, name, extension='png', use_inheritance=True, allow_theme=True): """ Find an icon with the given ``name`` and return a :class:`~PySide.QtGui.QIcon` of that icon. If ``use_inheritance`` is True and this style doesn't have an icon with the given name, the icon will be searched for in the style this style inherits. If ``allow_theme`` is True and the icon can't be located in a style, it will be retrieved with :func:`PySide.QtGui.QIcon.fromTheme` as a last resort as long as the style allows the use of system icons. """ icon = None fn = '%s.%s' % (name, extension) path = profile.join('images', fn) if self.path_source != profile.SOURCE_PKG_RESOURCES: file = self.get_path(path, use_inheritance) if file and os.path.exists(file): icon = QIcon(file) else: if self.has_file(path, use_inheritance): f = self.get_file(path, use_inheritance=use_inheritance) if f: pixmap = QPixmap() pixmap.loadFromData(f.read()) icon = QIcon(pixmap) del pixmap f.close() if not icon and use_inheritance and self.inherits: icon = loaded_styles[self.inherits].icon(name, extension, use_inheritance, allow_theme) if not icon and allow_theme: if QIcon.hasThemeIcon(name): icon = QIcon.fromTheme(name) if not icon: icon = QIcon() return icon
def _reload_notebooks_list(self, select_notebook_id=None): self.notebooksModel.clear() root = QStandardItem(QIcon.fromTheme('user-home'), self.tr('All Notes')) self.notebooksModel.appendRow(root) selected_item = root for notebook_struct in self.app.provider.list_notebooks(): notebook = Notebook.from_tuple(notebook_struct) count = self.app.provider.get_notebook_notes_count(notebook.id) item = QNotebookItem(notebook, count) root.appendRow(item) if select_notebook_id and notebook.id == select_notebook_id: selected_item = item self.ui.notebooksList.expandAll() if selected_item: index = self.notebooksModel.indexFromItem(selected_item) self.ui.notebooksList.setCurrentIndex(index) self.notebook_selected(index)
def _reload_tags_list(self, select_tag_id=None): # TODO nested tags self.tagsModel.clear() tagRoot = QStandardItem(QIcon.fromTheme('user-home'), self.tr('All Tags')) self.tagsModel.appendRow(tagRoot) selected_item = tagRoot for tag_struct in self.app.provider.list_tags(): tag = Tag.from_tuple(tag_struct) count = self.app.provider.get_tag_notes_count(tag.id) item = QTagItem(tag, count) tagRoot.appendRow(item) if select_tag_id and tag.id == select_tag_id: selected_item = item self.ui.tagsList.expandAll() if selected_item and not select_tag_id == SELECT_NONE: index = self.tagsModel.indexFromItem(selected_item) self.ui.tagsList.setCurrentIndex(index) self.tag_selected(index)
def _initGUI(self): topHLayout = QHBoxLayout() hLayout = QHBoxLayout() vLayout = QVBoxLayout() # Label greeterText = QLabel("Welcome to <b>Pushup app</b>." + \ "<br><br> Select a profile:") vLayout.addWidget(greeterText) # List self.list = QListWidget() self.list.setMinimumWidth(150) self.list.setSelectionMode(QAbstractItemView.SingleSelection) # SingleSelection is the default value, but I prefer to be sure self.list.itemSelectionChanged.connect(self._activateButtons) for athlete in self.athletesList: iconW = QIcon.fromTheme("user-available") # doens't work on Mac and Windows # http://qt-project.org/doc/qt-4.8/qicon.html#fromTheme listW = QListWidgetItem(iconW, athlete._name) listW.setData(Qt.UserRole, athlete) self.list.addItem(listW) topHLayout.addWidget(self.list) self.profileWidget = ProfileFormWidget() self.profileWidget.hide() topHLayout.addWidget(self.profileWidget) vLayout.addLayout(topHLayout) vLayout.addLayout(hLayout) # Buttons self.okBtn = QPushButton("Ok") self.okBtn.setDisabled(True) self.okBtn.setDefault(True) self.okBtn.clicked.connect(self._okButtonSlot) self.list.itemDoubleClicked.connect(self._okButtonSlot) cancelBtn = QPushButton("Cancel") cancelBtn.clicked.connect(self._cancelButtonSlot) self.editBtn = QPushButton("Edit") self.editBtn.setDisabled(True) self.editBtn.setCheckable(True) self.editBtn.clicked.connect(self._toggleProfileEdit) self.saveBtn = QPushButton("Save changes") # Saves the changes made on the profile self.saveBtn.hide() self.saveBtn.clicked.connect(self._saveButtonSlot) self.removeProfileBtn = QPushButton("Remove Profile") self.removeProfileBtn.setDisabled(True) self.removeProfileBtn.clicked.connect(self._removeProfile_Dialog) hLayout.addWidget(self.editBtn) hLayout.addWidget(self.removeProfileBtn) hLayout.addWidget(cancelBtn) hLayout.addWidget(self.okBtn) hLayout.addWidget(self.saveBtn) self.setLayout(vLayout)
def get_icon(): return QIcon.fromTheme('everpad', QIcon('../../everpad.png'))