def __init__(self, MW):
G.MW = MW
task_data = MW.current_task
nik_name = MW.current_user
project = MW.current_project
# make widjet
ui_path = MW.chat_main_path
# widget
loader = QtUiTools.QUiLoader()
file = QtCore.QFile(ui_path)
#file.open(QtCore.QFile.ReadOnly)
window = G.MW.chatMain = loader.load(file, MW)
file.close()
# fill meta data
window.setWindowTitle('Lineyka Chat')
window.chat_nik_name_label.setText(nik_name)
window.chat_asset_name_label.setText(task_data['asset'])
window.chat_task_name_label.setText(task_data['task_name'].split(':')[1])
# button connect
window.close_button.clicked.connect(partial(MW.close_window, window))
window.reload_button.clicked.connect(partial(self.chat_load_topics, window))
window.chat_add_topic_button.clicked.connect(partial(self.chat_new_topic_ui, window))
window.show()
self.chat_load_topics(window)
print(MW.chat_status)
# edit read_status
if G.MW.chat_status == 'manager':
result = G.MW.db_chat.task_edit_rid_status_read(project, task_data, nik_name)
if not result[0]:
G.MW.message(result[1], 2)
return
python类QFile()的实例源码
def chat_image_view_ui(self, button):
if not button.img_path:
return
# make widjet
ui_path = G.MW.chat_img_viewer_path
# widget
loader = QtUiTools.QUiLoader()
file = QtCore.QFile(ui_path)
#file.open(QtCore.QFile.ReadOnly)
img_window = G.MW.chatImgViewer = loader.load(file, G.MW)
file.close()
# SHOW IMAGE
image = QtGui.QImage(button.img_path)
img_window.setWindowTitle(button.img_path)
img_window.image_label.setBackgroundRole(QtGui.QPalette.Base)
img_window.image_label.setSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
img_window.image_label.setScaledContents(True)
img_window.image_label.setPixmap(QtGui.QPixmap.fromImage(image))
# connect button
img_window.cansel_button.clicked.connect(partial(G.MW.close_window, img_window))
img_window.show()
def chat_new_topic_ui(self, window):
# make widjet
ui_path = G.MW.chat_add_topic_path
# widget
loader = QtUiTools.QUiLoader()
file = QtCore.QFile(ui_path)
#file.open(QtCore.QFile.ReadOnly)
add_window = G.MW.chatAddTopic = loader.load(file, G.MW)
file.close()
# set modal window
add_window.setWindowModality(QtCore.Qt.WindowModal)
add_window.setAttribute(QtCore.Qt.WA_DeleteOnClose, True)
# ****** add first line
# H
h_layout = QtGui.QHBoxLayout()
line_frame = QtGui.QFrame(parent = add_window.new_topics_frame)
# button
button = QtGui.QPushButton('img', parent = line_frame)
button.setFixedSize(100, 100)
button.img_path = False
h_layout.addWidget(button)
# -- button connect
button.clicked.connect(partial(self.chat_image_view_ui, button))
button.setContextMenuPolicy( QtCore.Qt.ActionsContextMenu )
addgrup_action = QtGui.QAction( 'Inser Image From Clipboard', add_window)
addgrup_action.triggered.connect(partial(self.chat_add_img_to_line, button))
button.addAction( addgrup_action )
# text field
text_field = QtGui.QTextEdit(parent = line_frame)
#text_field = QtGui.QTextBrowser(parent = line_frame)
text_field.setMaximumHeight(100)
h_layout.addWidget(text_field)
line_frame.setLayout(h_layout)
# V
v_layout = QtGui.QVBoxLayout()
v_layout.addWidget(line_frame)
add_window.new_topics_frame.setLayout(v_layout)
# ****** append line data
add_window.line_data = {}
add_window.line_data['1'] = (button, text_field)
# connect button
add_window.cansel_button.clicked.connect(partial(G.MW.close_window, add_window))
add_window.add_line_button.clicked.connect(partial(self.chat_add_line_to_message, add_window, v_layout))
add_window.send_message_button.clicked.connect(partial(self.chat_new_topic_action, add_window, G.MW.chat_status))
add_window.show()
def add_artist_ui(self):
# get current level
#copy = db.artist()
current_artist = self.db_workroom.get_user()
if not current_artist[0]:
self.message(current_artist[1], 2)
return
current_nik_name = current_artist[1][0]
ask = self.db_workroom.read_artist({'nik_name': current_nik_name})
current_level = ask[1][0]['level']
if current_level not in self.db_workroom.manager_levels:
self.message('No Access!', 3)
return
# get levels
levels = []
for level in self.db_workroom.user_levels:
levels.append(level)
if level == current_level:
break
# widget
loader = QtUiTools.QUiLoader()
file = QtCore.QFile(self.artist_dialog_path)
#file.open(QtCore.QFile.ReadOnly)
self.newArtistDialog = loader.load(file, self)
file.close()
# edit widget
self.newArtistDialog.setWindowTitle('add New Artist')
self.newArtistDialog.workroom_field.setEnabled(False)
self.newArtistDialog.share_dir_field.setEnabled(False)
self.newArtistDialog.level_combobox.addItems(levels)
# workroom dialog
self.newArtistDialog.artist_edit_workroom_button.clicked.connect(partial(self.artist_edit_workroom_ui, self.newArtistDialog))
# edit button
self.newArtistDialog.get_share_dir_button.clicked.connect(partial(self.get_share_dir, self.newArtistDialog.share_dir_field))
self.newArtistDialog.artist_dialog_cancel.clicked.connect(partial(self.add_artist_action, False))
self.newArtistDialog.artist_dialog_ok.clicked.connect(partial(self.add_artist_action, True))
# set modal window
self.newArtistDialog.setWindowModality(QtCore.Qt.WindowModal)
self.newArtistDialog.setAttribute(QtCore.Qt.WA_DeleteOnClose, True)
self.newArtistDialog.show()
def artist_edit_workroom2_ui(self, current_widget):
# get all workrooms
copy = self.db_workroom
workrooms = copy.get_list_workrooms()
if not workrooms[0]:
self.message(workrooms[1], 3)
return
# get exists workrooms
workroom_list = []
if current_widget.workroom_field.text():
workroom_list = json.loads(current_widget.workroom_field.text())
# widget
loader = QtUiTools.QUiLoader()
file = QtCore.QFile(self.select_from_check_button_dialog_path)
#file.open(QtCore.QFile.ReadOnly)
window = self.selectWorkroomDialog2 = loader.load(file, self)
file.close()
# edit widget
window.setWindowTitle('Select WorkRoom')
# -- add checkbox
checkbox_list = []
layout = QtGui.QVBoxLayout()
for wr in workrooms[1]:
wr_name = wr['name']
box = QtGui.QCheckBox(wr_name, window.check_buttons_frame)
checkbox_list.append(box)
if wr_name in workroom_list:
box.setCheckState(QtCore.Qt.CheckState.Checked)
layout.addWidget(box)
window.check_buttons_frame.setLayout(layout)
# -- edit button
window.select_from_chbut_cansel_button.clicked.connect(partial(self.close_window, window))
window.select_from_chbut_apply_button.clicked.connect(partial(self.artist_edit_workroom2_action, current_widget, window, checkbox_list))
# set modal window
window.setWindowModality(QtCore.Qt.WindowModal)
window.setAttribute(QtCore.Qt.WA_DeleteOnClose, True)
window.show()
def rename_set_of_tasks_ui(self, table):
column = table.columnCount()
name_column = None
for i in range(0, column):
head_item = table.horizontalHeaderItem(i)
if head_item.text() == 'name':
name_column = i
break
# get selected rows
selected = table.selectedItems()
lists = []
for item in selected:
if item.column() == name_column:
lists.append(item.text())
if lists == []:
self.message('Not Selected Set', 2)
return
name = lists[0]
# widget
loader = QtUiTools.QUiLoader()
file = QtCore.QFile(self.new_dialog_path)
#file.open(QtCore.QFile.ReadOnly)
window = self.setProjectDialog = loader.load(file, self)
file.close()
# edit widget
window.setWindowTitle(('Rename: ' + name))
window.new_dialog_label.setText('New Name of Set:')
window.new_dialog_cancel.clicked.connect(partial(self.close_window, window))
window.new_dialog_ok.clicked.connect(partial(self.rename_set_of_tasks_action, name, window))
# set modal window
window.setWindowModality(QtCore.Qt.WindowModal)
window.setAttribute(QtCore.Qt.WA_DeleteOnClose, True)
window.show()
print('rename set of tasks ui')
def edit_asset_type_ui(self, table):
column = table.columnCount()
name_column = None
for i in range(0, column):
head_item = table.horizontalHeaderItem(i)
if head_item.text() == 'name':
name_column = i
break
# get selected rows
selected = table.selectedItems()
lists = []
for item in selected:
if item.column() == name_column:
lists.append(item.text())
if lists == []:
self.message('Not Selected Set', 2)
return
name = lists[0]
# widget
loader = QtUiTools.QUiLoader()
file = QtCore.QFile(self.combo_dialog_path)
#file.open(QtCore.QFile.ReadOnly)
window = self.setProjectDialog = loader.load(file, self)
file.close()
# edit widget
#copy = db.studio()
copy = self.db_studio
window.setWindowTitle(('Edit Asset Type: ' + name))
window.combo_dialog_label.setText('New Name of Set:')
window.combo_dialog_combo_box.addItems(copy.asset_types)
window.combo_dialog_cancel.clicked.connect(partial(self.close_window, window))
window.combo_dialog_ok.clicked.connect(partial(self.edit_asset_type_action, name, window))
# set modal window
window.setWindowModality(QtCore.Qt.WindowModal)
window.setAttribute(QtCore.Qt.WA_DeleteOnClose, True)
window.show()
print('edit asset type')
def rename_series_ui(self, table):
# get project
project = self.myWidget.set_comboBox_01.currentText()
if project == '-- select project --':
self.message('Not Project!', 3)
return
# get old series
column = table.columnCount()
name_column = None
for i in range(0, column):
head_item = table.horizontalHeaderItem(i)
if head_item.text() == 'name':
name_column = i
break
# get selected rows
selected = table.selectedItems()
lists = []
for item in selected:
if item.column() == name_column:
lists.append(item.text())
if lists == []:
self.message('Not Selected Series', 2)
return
name = lists[0]
# widget
loader = QtUiTools.QUiLoader()
file = QtCore.QFile(self.new_dialog_path)
#file.open(QtCore.QFile.ReadOnly)
window = self.createSeriesDialog = loader.load(file, self)
file.close()
# edit widget
window.setWindowTitle(('Rename Series: \"' + name + '\"'))
window.new_dialog_label.setText('New Name of Series:')
window.new_dialog_name.setText(name)
window.new_dialog_cancel.clicked.connect(partial(self.close_window, window))
window.new_dialog_ok.clicked.connect(partial(self.rename_series_action, window, name))
# set modal window
window.setWindowModality(QtCore.Qt.WindowModal)
window.setAttribute(QtCore.Qt.WA_DeleteOnClose, True)
window.show()
print('rename series ui')
def rename_group_ui(self, table):
# get project
project = self.myWidget.set_comboBox_01.currentText()
if project == '-- select project --':
self.message('Not Project!', 3)
return
# get old series
column = table.columnCount()
name_column = None
for i in range(0, column):
head_item = table.horizontalHeaderItem(i)
if head_item.text() == 'name':
name_column = i
break
# -- get selected rows
selected = table.selectedItems()
lists = []
for item in selected:
if item.column() == name_column:
lists.append(item.text())
if lists == []:
self.message('Not Selected Series', 2)
return
# -- get name
name = lists[0]
# widget
loader = QtUiTools.QUiLoader()
file = QtCore.QFile(self.new_dialog_path)
#file.open(QtCore.QFile.ReadOnly)
window = self.createSeriesDialog = loader.load(file, self)
file.close()
# edit widget
window.setWindowTitle(('Rename Group: \"' + name + '\"'))
window.new_dialog_label.setText('New Name of Group:')
window.new_dialog_name.setText(name)
window.new_dialog_cancel.clicked.connect(partial(self.close_window, window))
window.new_dialog_ok.clicked.connect(partial(self.rename_group_action, window, name, project))
# set modal window
window.setWindowModality(QtCore.Qt.WindowModal)
window.setAttribute(QtCore.Qt.WA_DeleteOnClose, True)
window.show()
print('rename group ui')
def change_asset_group_ui(self, table):
column = table.columnCount()
name_column = None
for i in range(0, column):
head_item = table.horizontalHeaderItem(i)
if head_item.text() == 'name':
name_column = i
break
'''
# get selected rows
selected = table.selectedItems()
lists = []
for item in selected:
if item.column() == name_column:
lists.append(item.text())
if lists == []:
self.message('Not Selected Group', 2)
return
asset_name = lists[0]
'''
# get asset data
asset_data = table.currentItem().asset
asset_name = asset_data['name']
# widget
loader = QtUiTools.QUiLoader()
file = QtCore.QFile(self.combo_dialog_path)
#file.open(QtCore.QFile.ReadOnly)
window = self.setProjectDialog = loader.load(file, self)
file.close()
# edit widget
#copy = db.group()
group_list = ['-- new groups --']
#result = copy.get_by_type_list(self.current_project, [self.current_group['type']])
#result = copy.get_by_type_list(self.current_project, [asset_data['type']])
result = self.db_group.get_by_type_list(self.current_project, [asset_data['type']])
if result[0]:
for row in result[1]:
if row['name'] != self.current_group['name']:
group_list.append(row['name'])
window.groups = result[1]
else:
print(result[1])
window.setWindowTitle(('Change Group Asset: \"' + asset_name + '\"'))
window.combo_dialog_label.setText('Select New Group:')
window.combo_dialog_combo_box.addItems(group_list)
window.combo_dialog_cancel.clicked.connect(partial(self.close_window, window))
window.combo_dialog_ok.clicked.connect(partial(self.change_asset_group_action, asset_data, window))
# set modal window
window.setWindowModality(QtCore.Qt.WindowModal)
window.setAttribute(QtCore.Qt.WA_DeleteOnClose, True)
window.show()
print('change asset group')
def tm_change_task_artist_ui(self, *args):
# get item
item = self.myWidget.task_manager_table.currentItem()
# task workroom
task_workroom = item.task['workroom']
# get list of active artists
result = self.db_workroom.read_artist({'status':'active'})
if not result[0]:
self.message(result[1], 2)
return
active_artists_list = []
for row in result[1]:
if row['workroom']:
artist_workrooms = json.loads(row['workroom'])
if task_workroom in artist_workrooms:
active_artists_list.append(row['nik_name'])
else:
continue
active_artists_list.sort()
active_artists_list.insert(0, '-None-')
# create window
loader = QtUiTools.QUiLoader()
file = QtCore.QFile(self.combo_dialog_path)
#file.open(QtCore.QFile.ReadOnly)
window = self.changeActivityWindow = loader.load(file, self)
file.close()
# set modal window
window.setWindowModality(QtCore.Qt.WindowModal)
window.setAttribute(QtCore.Qt.WA_DeleteOnClose, True)
# edit window
window.setWindowTitle(('Change Artist of Task: \'' + item.task['task_name'] + '\"'))
window.combo_dialog_label.setText('Select Artist:')
window.combo_dialog_combo_box.addItems(active_artists_list)
window.combo_dialog_cancel.clicked.connect(partial(self.close_window, window))
window.combo_dialog_ok.clicked.connect(partial(self.tm_change_task_artist_action, window, item))
window.show()
def chat_new_topic_ui(self, window):
# make widjet
ui_path = G.MW.chat_add_topic_path
# widget
loader = QtUiTools.QUiLoader()
file = QtCore.QFile(ui_path)
#file.open(QtCore.QFile.ReadOnly)
add_window = G.MW.chatAddTopic = loader.load(file, G.MW)
file.close()
# set modal window
add_window.setWindowModality(QtCore.Qt.WindowModal)
add_window.setAttribute(QtCore.Qt.WA_DeleteOnClose, True)
# ****** add first line
# H
h_layout = QtGui.QHBoxLayout()
line_frame = QtGui.QFrame(parent = add_window.new_topics_frame)
# button
button = QtGui.QPushButton('img', parent = line_frame)
button.setFixedSize(100, 100)
button.img_path = False
h_layout.addWidget(button)
# -- button connect
button.clicked.connect(partial(self.chat_image_view_ui, button))
button.setContextMenuPolicy( QtCore.Qt.ActionsContextMenu )
addgrup_action = QtGui.QAction( 'Inser Image From Clipboard', add_window)
addgrup_action.triggered.connect(partial(self.chat_add_img_to_line, button))
button.addAction( addgrup_action )
# text field
text_field = QtGui.QTextEdit(parent = line_frame)
#text_field = QtGui.QTextBrowser(parent = line_frame)
text_field.setMaximumHeight(100)
h_layout.addWidget(text_field)
line_frame.setLayout(h_layout)
# V
v_layout = QtGui.QVBoxLayout()
v_layout.addWidget(line_frame)
add_window.new_topics_frame.setLayout(v_layout)
# ****** append line data
add_window.line_data = {}
add_window.line_data['1'] = (button, text_field)
# connect button
add_window.cansel_button.clicked.connect(partial(G.MW.close_window, add_window))
add_window.add_line_button.clicked.connect(partial(self.chat_add_line_to_message, add_window, v_layout))
add_window.send_message_button.clicked.connect(partial(self.chat_new_topic_action, add_window, G.MW.chat_status))
add_window.show()