def __init__(self, parent): QDialog.__init__(self, parent, Qt.WindowSystemMenuHint | Qt.WindowTitleHint) self.setWindowTitle(_('Host Accounts')) self.resize(500, 450) vbox = QVBoxLayout() self.setLayout(vbox) # ####################### # vbox_accounts = QVBoxLayout() group_accounts = QGroupBox(_('Accounts:')) group_accounts.setLayout(vbox_accounts) self.tree_view = QTreeView() # #listview look self.tree_view.setWordWrap(True) #search textElideMode self.tree_view.setRootIsDecorated(False) self.tree_view.setIndentation(0) self.tree_view.setAlternatingRowColors(True) # self.items = [] headers = [ "hidden_id_account", _("Host"), _("Status"), _("Username"), _("Password"), _("Enable") ] bool_cols = [ ENABLE, ] # self.__model = SimpleListModel(headers, self.items, bool_cols) self.tree_view.setModel(self.__model) vbox_accounts.addWidget(self.tree_view) self.tree_view.setColumnHidden(0, True) hbox_accounts = QHBoxLayout() hbox_accounts.addStretch(0) #stretch/align widget to right. vbox_accounts.addLayout(hbox_accounts) self.btn_remove = QPushButton(_('Remove')) self.btn_remove.clicked.connect(self.on_remove) self.btn_remove.setFixedHeight(35) self.btn_remove.setMaximumWidth(80) self.btn_remove.setEnabled(False) hbox_accounts.addWidget(self.btn_remove) self.btn_check = QPushButton(_('Check')) self.btn_check.clicked.connect(self.on_check) self.btn_check.setFixedHeight(35) self.btn_check.setMaximumWidth(80) self.btn_check.setEnabled(False) hbox_accounts.addWidget(self.btn_check) vbox.addWidget(group_accounts) # ####################### # vbox_login = QVBoxLayout() group_login = QGroupBox(_('Login:'******'Server:')) #label_server.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) label_user = QLabel(_('Username:'******'Password:'******'Add')) btn_add.clicked.connect(self.on_add) btn_add.setFixedHeight(35) btn_add.setMaximumWidth(80) if not self.cb.count(): btn_add.setEnabled(False) hbox_add.addStretch(0) hbox_add.addWidget(btn_add) vbox_login.addLayout(hbox_add) vbox.addWidget(group_login) # ####################### # vbox.addSpacing(20) hbox_btns = QHBoxLayout() hbox_btns.addStretch() btn_accept = QPushButton(_('Close')) btn_accept.clicked.connect(self.accept) btn_accept.setDefault(True) btn_accept.setFixedHeight(35) btn_accept.setMaximumWidth(80) hbox_btns.addWidget(btn_accept) vbox.addLayout(hbox_btns) # ####################### # #self.tree_view.selectionModel().selectionChanged.connect(self.on_selected) self.load_accounts() self.timer = parent.idle_timeout(1000, self.update_) #self.show() self.exec_() self.deleteLater()
def __init__(self, downloads, parent=None): QVBoxLayout.__init__(self) self.setContentsMargins(0, 0, 0, 0) self.setSpacing(5) self.downloads = downloads self.parent = parent self.tree_view = QTreeView(parent) # self.tree_view.setContextMenuPolicy(Qt.CustomContextMenu) self.tree_view.customContextMenuRequested.connect(self.context_menu) # #listview look self.tree_view.setWordWrap(True) #search textElideMode self.tree_view.setRootIsDecorated(False) self.tree_view.setIndentation(0) self.tree_view.setAlternatingRowColors(True) # self.items = [] self.rows_buffer = {} #{id_item: row_obj, } #self.items = [[True, "1", "11", "t5est", "t3est"], [True, "1", "11", "t5est", "t3est"], [True, "1", "11", "t5est", "t3est"]] bool_cols = [ 1, ] headers = [ "hidden_id_item", "", _("Status"), _("File Name"), _("Host"), _("Size"), _("Status Message") ] # self.__model = SimpleListModel(headers, self.items, bool_cols) self.tree_view.setModel(self.__model) self.addWidget(self.tree_view) # self.tree_view.setColumnHidden(0, True) self.tree_view.setColumnWidth(1, 27) self.tree_view.header().setResizeMode(1, QHeaderView.Fixed) hbox = QHBoxLayout() hbox.setContentsMargins(0, 0, 0, 0) hbox.setSpacing(10) self.cb = QComboBox() #self.cb.setFixedWidth(100) self.cb.setEditable(True) self.cb.setFixedHeight(35) self.cb.setMinimumWidth(1) cb_view = self.cb.view() cb_view.setAlternatingRowColors(True) # self.paths_list = conf.get_save_dl_paths() if not self.paths_list: self.cb.addItem(cons.DLFOLDER_PATH) else: [self.cb.addItem(path) for path in reversed(self.paths_list)] # hbox.addWidget(self.cb) btn_examine = QPushButton('...') btn_examine.clicked.connect(self.on_examine) btn_examine.setFixedHeight(35) btn_examine.setMaximumWidth(80) hbox.addWidget(btn_examine) hbox.addSpacing(40) #index, size btn_download = QPushButton() btn_download.setIcon(media.get_icon(media.DOWN, media.MEDIUM)) btn_download.setIconSize(QSize(24, 24)) btn_download.clicked.connect(self.on_download_selected) btn_download.setFixedHeight(35) btn_download.setMaximumWidth(40) hbox.addWidget(btn_download) btn_add = QPushButton() btn_add.setIcon(media.get_icon(media.ADD, media.MEDIUM)) btn_add.setIconSize(QSize(24, 24)) btn_add.clicked.connect(self.on_add_links) btn_add.setFixedHeight(35) btn_add.setMaximumWidth(40) hbox.addWidget(btn_add) self.menu = QMenu(parent) import_action = self.menu.addAction(_("Import Container"), self.on_import_container) self.menu.addSeparator() recheck_action = self.menu.addAction(_("Re-check"), self.on_recheck) clear_action = self.menu.addAction(_("Clear list"), self.on_clear_list) # btn_menu = QPushButton() btn_menu.setMenu(self.menu) btn_menu.setFixedHeight(35) btn_menu.setMaximumWidth(22) btn_menu.setFlat(True) hbox.addWidget(btn_menu) self.addLayout(hbox) #update list parent.idle_timeout(1000, self.update)
def __init__(self, parent): #TODO: Create wrapper or subclass list to append and remove from items and rows_buffer. QTreeView.__init__(self) self.weak_parent = weakref.ref(parent) #listview look self.setWordWrap(True) #search textElideMode self.setRootIsDecorated(False) self.setIndentation(0) self.setAlternatingRowColors(True) self.icons_dict = self.get_icons() self.items = [] self.rows_buffer = {} #{id_item: row_obj, } headers = [ "hidden_id_item", "", _("File Name"), _("Host"), _("Size"), _("Complete"), _("Progress"), _("Time"), _("Remain"), _("Speed"), _("Status Message") ] self.__model = SimpleListModel(headers, self.items) self.setModel(self.__model) self.setColumnHidden(0, True) self.setColumnWidth(1, 27) self.header().setResizeMode(1, QHeaderView.Fixed) #self.header().setResizeMode(3, QHeaderView.ResizeToContents) self.im_delegate = ImageDelegate(self) self.setItemDelegateForColumn(1, self.im_delegate) self.im2_delegate = ImageDelegate(self) self.setItemDelegateForColumn(3, self.im2_delegate) self.nf_delegate = NoFocusDelegate(self) self.setItemDelegate(self.nf_delegate) self.pb_delegate = ProgressBarDelegate(self) self.setItemDelegateForColumn(6, self.pb_delegate) #see http://stackoverflow.com/questions/1987546/qt4-stylesheets-and-focus-rect for removing the drawed border on focus self.setSelectionMode(QAbstractItemView.ExtendedSelection) #self.setDragEnabled(True) #self.setAcceptDrops(True) #self.setDropIndicatorShown(False) self.setDragDropMode(QAbstractItemView.InternalMove) #self.setDefaultDropAction(Qt.MoveAction) #drop indicator self.line = QWidget(self.viewport()) self.line.setAutoFillBackground(True) pal = self.line.palette() pal.setColor(self.line.backgroundRole(), Qt.black) self.line.setPalette(pal) self.line.setGeometry(0, 0, 0, 0) self.line.hide() #custom signals signals.add_to_downloader.connect(self.add_to_downloader) signals.on_stop_all.connect(self.on_stop_all) #update list self.timer = parent.idle_timeout(1000, self.update_)