def loading_finished(self, profile, account_id): self.profile = profile self.account_id = str(account_id) self.loader.setVisible(False) self.hline.setVisible(False) self.username.setText('<b>%s</b>' % profile.username) self.fullname.setText(profile.fullname) if get_username_from(account_id) == profile.username: self.you_label.setVisible(True) self.options.setVisible(False) else: self.you_label.setVisible(False) self.options.setVisible(True) self.verified_icon.setVisible(profile.verified) self.protected_icon.setVisible(profile.protected) self.avatar.setPixmap(self.base.load_image('unknown.png', True)) self.bio.set_info(profile.bio) self.location.set_info(profile.location) self.web.set_info(profile.url) self.tweets.set_value(str(profile.statuses_count)) self.following.set_value(str(profile.friends_count)) self.followers.set_value(str(profile.followers_count)) self.favorites.set_value(str(profile.favorites_count)) column_id = "%s-profile_recent" % self.account_id self.last_statuses.set_column_id(column_id) self.last_statuses.update_statuses(profile.recent_updates) self.show() self.raise_()
def __build_header(self, column_id): self.set_column_id(column_id) username = get_username_from(self.account_id) column_slug = get_column_slug_from(column_id) column_slug = column_slug.replace('%23', '#') column_slug = column_slug.replace('%40', '@') #font = QFont('Titillium Web', 18, QFont.Normal, False) # This is to handle the 96dpi vs 72dpi screen resolutions on Mac vs the world if detect_os() == OS_MAC: font = QFont('Maven Pro Light', 25, 0, False) font2 = QFont('Monda', 14, 0, False) else: font = QFont('Maven Pro Light', 16, QFont.Light, False) font2 = QFont('Monda', 10, QFont.Light, False) bg_style = "background-color: %s; color: %s;" % (self.base.bgcolor, self.base.fgcolor) label = "%s : %s" % (username, column_slug) caption = QLabel(username) caption.setStyleSheet("QLabel { %s }" % bg_style) caption.setFont(font) caption2 = QLabel(column_slug) caption2.setStyleSheet("QLabel { %s }" % bg_style) caption2.setFont(font2) caption2.setAlignment(Qt.AlignLeft | Qt.AlignBottom) caption_box = QHBoxLayout() caption_box.setSpacing(8) caption_box.addWidget(caption) caption_box.addWidget(caption2) caption_box.addStretch(1) close_button = ImageButton(self.base, 'action-delete-shadowed.png', i18n.get('delete_column')) close_button.clicked.connect(self.__delete_column) close_button.setStyleSheet("QToolButton { %s border: 0px solid %s;}" % (bg_style, self.base.bgcolor)) header_layout = QHBoxLayout() header_layout.addLayout(caption_box, 1) header_layout.addWidget(close_button) header = QWidget() header.setStyleSheet("QWidget { %s }" % bg_style) header.setLayout(header_layout) return header
def __init__(self, base): ModalDialog.__init__(self, 290, 110) self.base = base self.setWindowTitle(i18n.get('select_friend_to_send_message')) self.accounts_combo = QComboBox() accounts = self.base.core.get_registered_accounts() for account in accounts: protocol = get_protocol_from(account.id_) icon = QIcon(base.get_image_path('%s.png' % protocol)) self.accounts_combo.addItem(icon, get_username_from(account.id_), account.id_) completer = QCompleter(self.base.load_friends_list()) completer.setCaseSensitivity(Qt.CaseInsensitive) self.friend = QLineEdit() self.friend.setCompleter(completer) select_button = QPushButton(i18n.get('select')) select_button.clicked.connect(self.__validate) friend_caption = "%s (@)" % i18n.get('friend') form = QFormLayout() form.addRow(friend_caption, self.friend) form.addRow(i18n.get('account'), self.accounts_combo) form.setContentsMargins(30, 10, 10, 5) form.setFieldGrowthPolicy(QFormLayout.AllNonFixedFieldsGrow) button = QPushButton(i18n.get('search')) button_box = QHBoxLayout() button_box.addStretch(0) button_box.addWidget(select_button) button_box.setContentsMargins(0, 0, 15, 15) layout = QVBoxLayout() layout.addLayout(form) layout.addLayout(button_box) layout.setSpacing(5) layout.setContentsMargins(0, 0, 0, 0) self.setLayout(layout) #load_button = ImageButton(base, 'action-status-menu.png', # i18n.get('load_friends_list')) self.exec_()
def __init__(self, base): QDialog.__init__(self) self.base = base self.setWindowTitle(i18n.get('search')) self.setFixedSize(270, 110) self.setWindowFlags(Qt.Window | Qt.WindowTitleHint | Qt.WindowCloseButtonHint | Qt.CustomizeWindowHint) self.setModal(True) self.accounts_combo = QComboBox() accounts = self.base.core.get_registered_accounts() for account in accounts: protocol = get_protocol_from(account.id_) icon = QIcon(base.get_image_path('%s.png' % protocol)) self.accounts_combo.addItem(icon, get_username_from(account.id_), account.id_) self.criteria = QLineEdit() self.criteria.setToolTip(i18n.get('criteria_tooltip')) form = QFormLayout() form.addRow(i18n.get('criteria'), self.criteria) form.addRow(i18n.get('account'), self.accounts_combo) form.setContentsMargins(30, 10, 10, 5) form.setFieldGrowthPolicy(QFormLayout.AllNonFixedFieldsGrow) button = QPushButton(i18n.get('search')) button_box = QHBoxLayout() button_box.addStretch(0) button_box.addWidget(button) button_box.setContentsMargins(0, 0, 15, 15) button.clicked.connect(self.accept) layout = QVBoxLayout() layout.addLayout(form) layout.addLayout(button_box) layout.setSpacing(5) layout.setContentsMargins(0, 0, 0, 0) self.setLayout(layout) self.criteria.setFocus() self.exec_()
def update(self): model = QStandardItemModel() model.setHorizontalHeaderItem(0, QStandardItem(i18n.get('account'))) model.setHorizontalHeaderItem(1, QStandardItem(i18n.get('message'))) self.list_.setModel(model) now = int(time.time()) interval = self.base.core.get_queue_interval() * 60 if self.last_timestamp: est_time = ((self.last_timestamp + interval) - now) / 60 else: est_time = 0 row = 0 for status in self.base.core.list_statuses_queue(): username = get_username_from(status.account_id) protocol_image = "%s.png" % get_protocol_from(status.account_id) item = QStandardItem(QString.fromUtf8(username)) item.setIcon(QIcon(self.base.load_image(protocol_image, True))) model.setItem(row, 0, item) model.setItem(row, 1, QStandardItem(QString.fromUtf8(status.text))) row += 1 humanized_interval = self.base.humanize_time_intervals( self.base.core.get_queue_interval()) humanized_est_time = self.base.humanize_time_intervals(est_time) warning = i18n.get('messages_will_be_send') % humanized_interval next_message = ' '.join( [i18n.get('next_message_should_be_posted_in'), humanized_est_time]) self.caption.setText(warning) if row == 0: self.estimated_time.setText('') else: self.estimated_time.setText(next_message) self.list_.horizontalHeader().setResizeMode(1, QHeaderView.Stretch) self.list_.resizeColumnsToContents() self.__enable()
def update(self): model = QStandardItemModel() model.setHorizontalHeaderItem(0, QStandardItem(i18n.get('account'))) model.setHorizontalHeaderItem(1, QStandardItem(i18n.get('message'))) self.list_.setModel(model) now = int(time.time()) interval = self.base.core.get_queue_interval() * 60 if self.last_timestamp: est_time = ((self.last_timestamp + interval) - now) / 60 else: est_time = 0 row = 0 for status in self.base.core.list_statuses_queue(): username = get_username_from(status.account_id) protocol_image = "%s.png" % get_protocol_from(status.account_id) item = QStandardItem(QString.fromUtf8(username)) item.setIcon(QIcon(self.base.load_image(protocol_image, True))) model.setItem(row, 0, item) model.setItem(row, 1, QStandardItem(QString.fromUtf8(status.text))) row += 1 humanized_interval = self.base.humanize_time_intervals(self.base.core.get_queue_interval()) humanized_est_time = self.base.humanize_time_intervals(est_time) warning = i18n.get('messages_will_be_send') % humanized_interval next_message = ' '.join([i18n.get('next_message_should_be_posted_in'), humanized_est_time]) self.caption.setText(warning) if row == 0: self.estimated_time.setText('') else: self.estimated_time.setText(next_message) self.list_.horizontalHeader().setResizeMode(1, QHeaderView.Stretch) self.list_.resizeColumnsToContents() self.__enable()