plugins improvements
This commit is contained in:
		
							parent
							
								
									8672c5fb56
								
							
						
					
					
						commit
						e004838013
					
				
					 3 changed files with 49 additions and 9 deletions
				
			
		| 
						 | 
					@ -54,6 +54,7 @@ class MainWindow(QtGui.QMainWindow):
 | 
				
			||||||
        self.actionSettings.setObjectName("actionSettings")
 | 
					        self.actionSettings.setObjectName("actionSettings")
 | 
				
			||||||
        self.audioSettings = QtGui.QAction(MainWindow)
 | 
					        self.audioSettings = QtGui.QAction(MainWindow)
 | 
				
			||||||
        self.pluginData = QtGui.QAction(MainWindow)
 | 
					        self.pluginData = QtGui.QAction(MainWindow)
 | 
				
			||||||
 | 
					        self.importPlugin = QtGui.QAction(MainWindow)
 | 
				
			||||||
        self.lockApp = QtGui.QAction(MainWindow)
 | 
					        self.lockApp = QtGui.QAction(MainWindow)
 | 
				
			||||||
        self.menuProfile.addAction(self.actionAdd_friend)
 | 
					        self.menuProfile.addAction(self.actionAdd_friend)
 | 
				
			||||||
        self.menuProfile.addAction(self.actionSettings)
 | 
					        self.menuProfile.addAction(self.actionSettings)
 | 
				
			||||||
| 
						 | 
					@ -64,6 +65,7 @@ class MainWindow(QtGui.QMainWindow):
 | 
				
			||||||
        self.menuSettings.addAction(self.actionNetwork)
 | 
					        self.menuSettings.addAction(self.actionNetwork)
 | 
				
			||||||
        self.menuSettings.addAction(self.audioSettings)
 | 
					        self.menuSettings.addAction(self.audioSettings)
 | 
				
			||||||
        self.menuPlugins.addAction(self.pluginData)
 | 
					        self.menuPlugins.addAction(self.pluginData)
 | 
				
			||||||
 | 
					        self.menuPlugins.addAction(self.importPlugin)
 | 
				
			||||||
        self.menuAbout.addAction(self.actionAbout_program)
 | 
					        self.menuAbout.addAction(self.actionAbout_program)
 | 
				
			||||||
        self.menubar.addAction(self.menuProfile.menuAction())
 | 
					        self.menubar.addAction(self.menuProfile.menuAction())
 | 
				
			||||||
        self.menubar.addAction(self.menuSettings.menuAction())
 | 
					        self.menubar.addAction(self.menuSettings.menuAction())
 | 
				
			||||||
| 
						 | 
					@ -80,6 +82,7 @@ class MainWindow(QtGui.QMainWindow):
 | 
				
			||||||
        self.audioSettings.triggered.connect(self.audio_settings)
 | 
					        self.audioSettings.triggered.connect(self.audio_settings)
 | 
				
			||||||
        self.pluginData.triggered.connect(self.plugins_menu)
 | 
					        self.pluginData.triggered.connect(self.plugins_menu)
 | 
				
			||||||
        self.lockApp.triggered.connect(self.lock_app)
 | 
					        self.lockApp.triggered.connect(self.lock_app)
 | 
				
			||||||
 | 
					        self.importPlugin.triggered.connect(self.import_plugin)
 | 
				
			||||||
        QtCore.QMetaObject.connectSlotsByName(MainWindow)
 | 
					        QtCore.QMetaObject.connectSlotsByName(MainWindow)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def languageChange(self, *args, **kwargs):
 | 
					    def languageChange(self, *args, **kwargs):
 | 
				
			||||||
| 
						 | 
					@ -113,6 +116,7 @@ class MainWindow(QtGui.QMainWindow):
 | 
				
			||||||
        self.online_contacts.addItem(QtGui.QApplication.translate("MainWindow", "All", None, QtGui.QApplication.UnicodeUTF8))
 | 
					        self.online_contacts.addItem(QtGui.QApplication.translate("MainWindow", "All", None, QtGui.QApplication.UnicodeUTF8))
 | 
				
			||||||
        self.online_contacts.addItem(QtGui.QApplication.translate("MainWindow", "Online", None, QtGui.QApplication.UnicodeUTF8))
 | 
					        self.online_contacts.addItem(QtGui.QApplication.translate("MainWindow", "Online", None, QtGui.QApplication.UnicodeUTF8))
 | 
				
			||||||
        self.online_contacts.setCurrentIndex(int(Settings.get_instance()['show_online_friends']))
 | 
					        self.online_contacts.setCurrentIndex(int(Settings.get_instance()['show_online_friends']))
 | 
				
			||||||
 | 
					        self.importPlugin.setText(QtGui.QApplication.translate("MainWindow", "Import plugin", None, QtGui.QApplication.UnicodeUTF8))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def setup_right_bottom(self, Form):
 | 
					    def setup_right_bottom(self, Form):
 | 
				
			||||||
        Form.resize(650, 60)
 | 
					        Form.resize(650, 60)
 | 
				
			||||||
| 
						 | 
					@ -393,6 +397,26 @@ class MainWindow(QtGui.QMainWindow):
 | 
				
			||||||
        self.audio_s = AudioSettings()
 | 
					        self.audio_s = AudioSettings()
 | 
				
			||||||
        self.audio_s.show()
 | 
					        self.audio_s.show()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def import_plugin(self):
 | 
				
			||||||
 | 
					        import util
 | 
				
			||||||
 | 
					        directory = QtGui.QFileDialog.getExistingDirectory(self,
 | 
				
			||||||
 | 
					                                                           QtGui.QApplication.translate("MainWindow", 'Choose folder with plugin',
 | 
				
			||||||
 | 
					                                                                                        None,
 | 
				
			||||||
 | 
					                                                                                        QtGui.QApplication.UnicodeUTF8),
 | 
				
			||||||
 | 
					                                                           util.curr_directory(),
 | 
				
			||||||
 | 
					                                                           QtGui.QFileDialog.ShowDirsOnly | QtGui.QFileDialog.DontUseNativeDialog)
 | 
				
			||||||
 | 
					        if directory:
 | 
				
			||||||
 | 
					            src = directory + '/'
 | 
				
			||||||
 | 
					            dest = curr_directory() + '/plugins/'
 | 
				
			||||||
 | 
					            util.copy(src, dest)
 | 
				
			||||||
 | 
					            msgBox = QtGui.QMessageBox()
 | 
				
			||||||
 | 
					            msgBox.setWindowTitle(
 | 
				
			||||||
 | 
					                QtGui.QApplication.translate("MainWindow", "Restart Toxygen", None, QtGui.QApplication.UnicodeUTF8))
 | 
				
			||||||
 | 
					            msgBox.setText(
 | 
				
			||||||
 | 
					                QtGui.QApplication.translate("MainWindow", 'Plugin will be loaded after restart', None,
 | 
				
			||||||
 | 
					                                             QtGui.QApplication.UnicodeUTF8))
 | 
				
			||||||
 | 
					            msgBox.exec_()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def lock_app(self):
 | 
					    def lock_app(self):
 | 
				
			||||||
        if toxencryptsave.ToxEncryptSave.get_instance().has_password():
 | 
					        if toxencryptsave.ToxEncryptSave.get_instance().has_password():
 | 
				
			||||||
            Settings.get_instance().locked = True
 | 
					            Settings.get_instance().locked = True
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -385,29 +385,33 @@ class Profile(contact.Contact, Singleton):
 | 
				
			||||||
            if not friend.visibility:
 | 
					            if not friend.visibility:
 | 
				
			||||||
                self.update_filtration()
 | 
					                self.update_filtration()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def send_message(self, text):
 | 
					    def send_message(self, text, friend_num=None):
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        Send message to active friend
 | 
					        Send message
 | 
				
			||||||
        :param text: message text
 | 
					        :param text: message text
 | 
				
			||||||
 | 
					        :param friend_num: num of friend
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
 | 
					        if friend_num is None:
 | 
				
			||||||
 | 
					            friend_num = self.get_active_number()
 | 
				
			||||||
        if text.startswith('/plugin '):
 | 
					        if text.startswith('/plugin '):
 | 
				
			||||||
            plugin_support.PluginLoader.get_instance().command(text[8:])
 | 
					            plugin_support.PluginLoader.get_instance().command(text[8:])
 | 
				
			||||||
            self._screen.messageEdit.clear()
 | 
					            self._screen.messageEdit.clear()
 | 
				
			||||||
        elif text and self._active_friend + 1:
 | 
					        elif text and friend_num + 1:
 | 
				
			||||||
            text = ''.join(c if c <= '\u10FFFF' else '\u25AF' for c in text)
 | 
					            text = ''.join(c if c <= '\u10FFFF' else '\u25AF' for c in text)
 | 
				
			||||||
            if text.startswith('/me '):
 | 
					            if text.startswith('/me '):
 | 
				
			||||||
                message_type = TOX_MESSAGE_TYPE['ACTION']
 | 
					                message_type = TOX_MESSAGE_TYPE['ACTION']
 | 
				
			||||||
                text = text[4:]
 | 
					                text = text[4:]
 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
                message_type = TOX_MESSAGE_TYPE['NORMAL']
 | 
					                message_type = TOX_MESSAGE_TYPE['NORMAL']
 | 
				
			||||||
            friend = self._friends[self._active_friend]
 | 
					            friend = self.get_friend_by_number(friend_num)
 | 
				
			||||||
            friend.inc_receipts()
 | 
					            friend.inc_receipts()
 | 
				
			||||||
            if friend.status is not None:
 | 
					            if friend.status is not None:
 | 
				
			||||||
                self.split_and_send(friend.number, message_type, text.encode('utf-8'))
 | 
					                self.split_and_send(friend.number, message_type, text.encode('utf-8'))
 | 
				
			||||||
            t = time.time()
 | 
					            if friend.number == self.get_active_number():
 | 
				
			||||||
            self.create_message_item(text, t, MESSAGE_OWNER['NOT_SENT'], message_type)
 | 
					                t = time.time()
 | 
				
			||||||
            self._screen.messageEdit.clear()
 | 
					                self.create_message_item(text, t, MESSAGE_OWNER['NOT_SENT'], message_type)
 | 
				
			||||||
            self._messages.scrollToBottom()
 | 
					                self._screen.messageEdit.clear()
 | 
				
			||||||
 | 
					                self._messages.scrollToBottom()
 | 
				
			||||||
            friend.append_message(TextMessage(text, MESSAGE_OWNER['NOT_SENT'], t, message_type))
 | 
					            friend.append_message(TextMessage(text, MESSAGE_OWNER['NOT_SENT'], t, message_type))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def delete_message(self, time):
 | 
					    def delete_message(self, time):
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
import os
 | 
					import os
 | 
				
			||||||
import time
 | 
					import time
 | 
				
			||||||
 | 
					import shutil
 | 
				
			||||||
 | 
					
 | 
				
			||||||
program_version = '0.2.2'
 | 
					program_version = '0.2.2'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -18,6 +18,18 @@ def curr_time():
 | 
				
			||||||
    return time.strftime('%H:%M')
 | 
					    return time.strftime('%H:%M')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def copy(src, dest):
 | 
				
			||||||
 | 
					    if not os.path.exists(dest):
 | 
				
			||||||
 | 
					        os.makedirs(dest)
 | 
				
			||||||
 | 
					    src_files = os.listdir(src)
 | 
				
			||||||
 | 
					    for file_name in src_files:
 | 
				
			||||||
 | 
					        full_file_name = os.path.join(src, file_name)
 | 
				
			||||||
 | 
					        if os.path.isfile(full_file_name):
 | 
				
			||||||
 | 
					            shutil.copy(full_file_name, dest)
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            copy(full_file_name, os.path.join(dest, file_name))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def convert_time(t):
 | 
					def convert_time(t):
 | 
				
			||||||
    sec = int(t) - time.timezone
 | 
					    sec = int(t) - time.timezone
 | 
				
			||||||
    m, s = divmod(sec, 60)
 | 
					    m, s = divmod(sec, 60)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue