screenshots creating update
This commit is contained in:
		
							parent
							
								
									c2aead6e06
								
							
						
					
					
						commit
						111d72ceaa
					
				
					 3 changed files with 26 additions and 16 deletions
				
			
		| 
						 | 
					@ -160,11 +160,14 @@ class ReceiveTransfer(FileTransfer):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class ReceiveAvatar(ReceiveTransfer):
 | 
					class ReceiveAvatar(ReceiveTransfer):
 | 
				
			||||||
 | 
					    MAX_AVATAR_SIZE = 512 * 1024
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def __init__(self, tox, friend_number, size, file_number):
 | 
					    def __init__(self, tox, friend_number, size, file_number):
 | 
				
			||||||
        path = profile.ProfileHelper.get_path() + '/avatars/{}.png'.format(tox.friend_get_public_key(friend_number))
 | 
					        path = profile.ProfileHelper.get_path() + '/avatars/{}.png'.format(tox.friend_get_public_key(friend_number))
 | 
				
			||||||
        super(ReceiveAvatar, self).__init__(path, tox, friend_number, size, file_number)
 | 
					        super(ReceiveAvatar, self).__init__(path, tox, friend_number, size, file_number)
 | 
				
			||||||
        if exists(path):
 | 
					        if size > self.MAX_AVATAR_SIZE:
 | 
				
			||||||
 | 
					            self.send_control(TOX_FILE_CONTROL['CANCEL'])
 | 
				
			||||||
 | 
					        elif exists(path):
 | 
				
			||||||
            if not size:
 | 
					            if not size:
 | 
				
			||||||
                self.send_control(TOX_FILE_CONTROL['CANCEL'])
 | 
					                self.send_control(TOX_FILE_CONTROL['CANCEL'])
 | 
				
			||||||
                self.state = TOX_FILE_TRANSFER_STATE['CANCELED']
 | 
					                self.state = TOX_FILE_TRANSFER_STATE['CANCELED']
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -21,7 +21,7 @@ class MessageArea(QtGui.QPlainTextEdit):
 | 
				
			||||||
        elif event.key() == QtCore.Qt.Key_Up and not self.toPlainText():
 | 
					        elif event.key() == QtCore.Qt.Key_Up and not self.toPlainText():
 | 
				
			||||||
            self.appendPlainText(Profile.get_instance().get_last_message())
 | 
					            self.appendPlainText(Profile.get_instance().get_last_message())
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            super(self.__class__, self).keyPressEvent(event)
 | 
					            super(MessageArea, self).keyPressEvent(event)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class MainWindow(QtGui.QMainWindow):
 | 
					class MainWindow(QtGui.QMainWindow):
 | 
				
			||||||
| 
						 | 
					@ -391,28 +391,29 @@ class MainWindow(QtGui.QMainWindow):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class ScreenShotWindow(QtGui.QWidget):
 | 
					class ScreenShotWindow(QtGui.QWidget):
 | 
				
			||||||
    # TODO: make selected area transparent
 | 
					
 | 
				
			||||||
    def __init__(self):
 | 
					    def __init__(self):
 | 
				
			||||||
        super(ScreenShotWindow, self).__init__()
 | 
					        super(ScreenShotWindow, self).__init__()
 | 
				
			||||||
        self.setMouseTracking(True)
 | 
					        self.setMouseTracking(True)
 | 
				
			||||||
        self.setWindowFlags(self.windowFlags() | QtCore.Qt.FramelessWindowHint | QtCore.Qt.WindowStaysOnTopHint)
 | 
					        self.setWindowFlags(self.windowFlags() | QtCore.Qt.FramelessWindowHint | QtCore.Qt.WindowStaysOnTopHint)
 | 
				
			||||||
        self.showFullScreen()
 | 
					        self.showFullScreen()
 | 
				
			||||||
        self.setWindowOpacity(0.01)
 | 
					        self.setWindowOpacity(0.4)
 | 
				
			||||||
        self.rubberband = QtGui.QRubberBand(QtGui.QRubberBand.Rectangle, None)
 | 
					        self.rubberband = QtGui.QRubberBand(QtGui.QRubberBand.Rectangle, None)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def mousePressEvent(self, event):
 | 
					    def mousePressEvent(self, event):
 | 
				
			||||||
        self.origin = event.pos()
 | 
					        self.origin = event.pos()
 | 
				
			||||||
        self.rubberband.setGeometry(
 | 
					        self.rubberband.setGeometry(QtCore.QRect(self.origin, QtCore.QSize()))
 | 
				
			||||||
            QtCore.QRect(self.origin, QtCore.QSize()))
 | 
					 | 
				
			||||||
        self.rubberband.show()
 | 
					        self.rubberband.show()
 | 
				
			||||||
        QtGui.QWidget.mousePressEvent(self, event)
 | 
					        QtGui.QWidget.mousePressEvent(self, event)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def mouseMoveEvent(self, event):
 | 
					    def mouseMoveEvent(self, event):
 | 
				
			||||||
        if self.rubberband.isVisible():
 | 
					        if self.rubberband.isVisible():
 | 
				
			||||||
            self.rubberband.setGeometry(
 | 
					            self.rubberband.setGeometry(QtCore.QRect(self.origin, event.pos()).normalized())
 | 
				
			||||||
                QtCore.QRect(self.origin, event.pos()).normalized())
 | 
					            left = QtGui.QRegion(QtCore.QRect(0, 0, self.rubberband.x(), self.height()))
 | 
				
			||||||
        QtGui.QWidget.mouseMoveEvent(self, event)
 | 
					            right = QtGui.QRegion(QtCore.QRect(self.rubberband.x() + self.rubberband.width(), 0, self.width(), self.height()))
 | 
				
			||||||
        self.repaint()
 | 
					            top = QtGui.QRegion(0, 0, self.width(), self.rubberband.y())
 | 
				
			||||||
 | 
					            bottom = QtGui.QRegion(0, self.rubberband.y() + self.rubberband.height(), self.width(), self.height())
 | 
				
			||||||
 | 
					            self.setMask(left + right + top + bottom)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def mouseReleaseEvent(self, event):
 | 
					    def mouseReleaseEvent(self, event):
 | 
				
			||||||
        if self.rubberband.isVisible():
 | 
					        if self.rubberband.isVisible():
 | 
				
			||||||
| 
						 | 
					@ -420,17 +421,23 @@ class ScreenShotWindow(QtGui.QWidget):
 | 
				
			||||||
            rect = self.rubberband.geometry()
 | 
					            rect = self.rubberband.geometry()
 | 
				
			||||||
            print rect
 | 
					            print rect
 | 
				
			||||||
            p = QtGui.QPixmap.grabWindow(QtGui.QApplication.desktop().winId(),
 | 
					            p = QtGui.QPixmap.grabWindow(QtGui.QApplication.desktop().winId(),
 | 
				
			||||||
                                         rect.x() + 3,
 | 
					                                         rect.x() + 4,
 | 
				
			||||||
                                         rect.y() + 3,
 | 
					                                         rect.y() + 4,
 | 
				
			||||||
                                         rect.width() - 6,
 | 
					                                         rect.width() - 8,
 | 
				
			||||||
                                         rect.height() - 6)
 | 
					                                         rect.height() - 8)
 | 
				
			||||||
            byte_array = QtCore.QByteArray()
 | 
					            byte_array = QtCore.QByteArray()
 | 
				
			||||||
            buffer = QtCore.QBuffer(byte_array)
 | 
					            buffer = QtCore.QBuffer(byte_array)
 | 
				
			||||||
            buffer.open(QtCore.QIODevice.WriteOnly)
 | 
					            buffer.open(QtCore.QIODevice.WriteOnly)
 | 
				
			||||||
            p.save(buffer, 'PNG')
 | 
					            p.save(buffer, 'PNG')
 | 
				
			||||||
            Profile.get_instance().send_screenshot(''.join(byte_array[i] for i in xrange(byte_array.length())))
 | 
					            Profile.get_instance().send_screenshot(str(byte_array.data()))
 | 
				
			||||||
            self.close()
 | 
					            self.close()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def keyPressEvent(self, event):
 | 
				
			||||||
 | 
					        if event.key() == QtCore.Qt.Key_Escape:
 | 
				
			||||||
 | 
					            self.rubberband.setHidden(True)
 | 
				
			||||||
 | 
					            self.close()
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            super(ScreenShotWindow, self).keyPressEvent(event)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,7 +2,7 @@ from PySide import QtGui, QtCore
 | 
				
			||||||
from PySide.phonon import Phonon
 | 
					from PySide.phonon import Phonon
 | 
				
			||||||
from util import curr_directory
 | 
					from util import curr_directory
 | 
				
			||||||
# TODO: make app icon active
 | 
					# TODO: make app icon active
 | 
				
			||||||
# TODO: add all sound notifications
 | 
					# TODO: rewrite sound notifications
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
SOUND_NOTIFICATION = {
 | 
					SOUND_NOTIFICATION = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue