Пример #1
0
    def run(error_message, title="Almost"):
        '''
		error_message is a list of error messages
		'''
        msg = QtWidgets.QMessageBox()
        msg.setWindowTitle(title)
        msg.setWindowIcon(QtGui.QIcon(get_image_directory() + "/eman.png"))
        mes = ""
        if isinstance(error_message, tuple):
            error_message = list(error_message)
        if isinstance(error_message, list):
            for error in error_message:
                mes += error

                if len(error) > 0 and error[-1] != '.':
                    # correct my own inconsistencies....AWESOME
                    mes += '.'
                if error != error_message[-1]: mes += "\n"
        else:
            mes = error_message
            if len(error_message) > 0 and error_message[-1] != '.':
                # correct my own inconsistencies....AWESOME
                mes += '.'
        msg.setText(mes)
        msg.exec_()
Пример #2
0
    def __init__(self, mediator):
        QtGui.QWidget.__init__(self)
        self.mediator = mediator
        self.db = js_open_dict("info/emboxerrctgui.json")
        self.qualitydb = js_open_dict("e2boxercache/quality.json")
        self.setWindowIcon(
            QtGui.QIcon(get_image_directory() + "green_boxes.png"))
        self.setWindowTitle("e2RCTboxer")

        # Here is where additional tools can be added
        self.manual_tool = ManualPicker(self.mediator, self.db)
        self.pair_picker_tool = PairPickerTool(self.mediator, self.db)

        vbox = QtGui.QVBoxLayout(self)

        self.tab_widget = QtGui.QTabWidget()
        self.tab_widget.addTab(self.get_main_tab(), "Main")
        self.tab_widget.addTab(self.get_processor_tab(), "Processor")
        self.tab_widget.addTab(self.get_filter_tab(), "Filter")
        vbox.addWidget(self.tab_widget)

        self.add_controls(vbox)  # add done button, among other things

        self.setLayout(vbox)
        self.add_picker_tools()
        self.updateGeometry()

        # Initialize tools
        self.tools_stacked_widget.setCurrentIndex(
            self.db.getdefault("toolidx", dfl=0))
        self.current_tool_combobox.setCurrentIndex(
            self.db.getdefault("toolidx", dfl=0))
        E2loadappwin("e2rctboxer", "main", self)
Пример #3
0
	def __init__(self, mediator):
		QtGui.QWidget.__init__(self)
		self.mediator = mediator
		self.db = db_open_dict("bdb:emboxerrctgui")
		self.qualitydb = db_open_dict("bdb:e2boxercache#quality")
		self.setWindowIcon(QtGui.QIcon(get_image_directory() +"green_boxes.png"))
		self.setWindowTitle("e2RCTboxer")
		
		# Here is where additional tools can be added
		self.manual_tool = ManualPicker(self.mediator, self.db)
		self.pair_picker_tool = PairPickerTool(self.mediator, self.db)
		
		vbox = QtGui.QVBoxLayout(self)
		
		self.tab_widget = QtGui.QTabWidget()
		self.tab_widget.addTab(self.get_main_tab(),"Main")
		self.tab_widget.addTab(self.get_processor_tab(),"Processor")
		self.tab_widget.addTab(self.get_filter_tab(),"Filter")
		vbox.addWidget(self.tab_widget)
		

		self.add_controls(vbox)			# add done button, among other things
		
		self.setLayout(vbox)
		self.add_picker_tools()
		self.updateGeometry()

		# Initialize tools
		self.tools_stacked_widget.setCurrentIndex(self.db.get("toolidx",dfl=0))
		self.current_tool_combobox.setCurrentIndex(self.db.get("toolidx",dfl=0))
Пример #4
0
 def __init__(self,
              label_text,
              cancel_button_text,
              minimum,
              maximum,
              parent=None):
     QtGui.QProgressDialog.__init__(self, label_text, cancel_button_text,
                                    minimum, maximum, parent)
     self.setWindowIcon(QtGui.QIcon(get_image_directory() + "/eman.png"))
Пример #5
0
	def get_qt_widget(self):
		if self.qt_context_parent == None:	
			from emimageutil import EMParentWin
			from emimage3d import EMImage3DWidget
			self.under_qt_control = True
			self.gl_context_parent = EMImage3DWidget(self)
			self.qt_context_parent = EMParentWin(self.gl_context_parent)
			self.gl_widget = self.gl_context_parent			
			self.qt_context_parent.setWindowIcon(QtGui.QIcon(get_image_directory() +"single_image_3d.png"))
		
		return self.qt_context_parent
Пример #6
0
	def __init__(self,target,enable_advanced=True):
		QtGui.QWidget.__init__(self,None)
		self.target = weakref.ref(target) # prevent a strong cycle - this target object should be an EM3DModule, but that could change depending on who builds on this object
		self.setWindowIcon(QtGui.QIcon(get_image_directory() +"single_image_3d.png"))
		self.vbl = QtGui.QVBoxLayout(self) # this is the main vbl
		
		self.advanced_tab = None
		
		self.tabwidget = QtGui.QTabWidget()
		
		#self.vbl.addLayout(self.hbl_check)
		self.vbl.addWidget(self.tabwidget)
		
		if enable_advanced:	self.insert_advanced_tab()
	def init_x_texture(self):
		if EMBorderDecoration.x_texture_dl == None or EMBorderDecoration.x_texture_dl < 0:
			#glEnable(GL_TEXTURE_2D)
			pixmap = QtGui.QPixmap(get_image_directory() + "/Close.png")
			#self.qwidget.setVisible(False)
			if (pixmap.isNull() == True ): print 'error, the pixmap was null'
			self.texture = self.object().parent().get_gl_context_parent().bindTexture(pixmap)
			EMBorderDecoration.x_texture_dl=glGenLists(1)
			
			if EMBorderDecoration.x_texture_dl == 0:
				print "BORDER GENERATION FAILED"
				import sys
				sys.exit(1)
				return
			glNewList( EMBorderDecoration.x_texture_dl,GL_COMPILE)
			glEnable(GL_TEXTURE_2D)
			
			texture = glGenTextures(1)
			glPixelStorei(GL_UNPACK_ALIGNMENT,1)
			#print glGetInteger(GL_UNPACK_ALIGNMENT)
			glBindTexture(GL_TEXTURE_2D, self.texture)
			glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST)
			glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST)
			# this makes it so that the texture is impervious to lighting
			#glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE)
			
			xmin = -0.5
			xmax =  0.5
			ymin = -0.5
			ymax =  0.5
			glBegin(GL_QUADS)
		
			glNormal(0,0,1)
			glTexCoord2f(0,0)
			glVertex2f(xmin,ymax)
			
			glTexCoord2f(1,0)
			glVertex2f(xmax,ymax)
				
			glTexCoord2f(1,1)
			glVertex2f(xmax,ymin)
			
			glTexCoord2f(0,1)
			glVertex2f(xmin,ymin)
			
			glEnd()
			glDisable(GL_TEXTURE_2D)
			
			glEndList()
Пример #8
0
	def __init__(self,application,wd):
		'''
		wd is the working directory
		'''
		self.wd = wd
		
		from emform import EMFormWidget
		self.form = EMFormWidget(params=self.get_history_table())
		self.form.setWindowTitle("EMAN2 history")
		
		from PyQt4 import QtGui,QtCore
		self.form.setWindowIcon(QtGui.QIcon(get_image_directory() + "feather.png"))
		self.form.resize(640,480)
		QtCore.QObject.connect(self.form,QtCore.SIGNAL("emform_ok"),self.on_ok)
		QtCore.QObject.connect(self.form,QtCore.SIGNAL("emform_cancel"),self.on_cancel)
Пример #9
0
	def run(error_message,title="Almost"):
		'''
		error_message is a list of error messages
		'''
		msg = QtGui.QMessageBox()
		msg.setWindowTitle(title)
		msg.setWindowIcon(QtGui.QIcon(get_image_directory() + "/eman.png"))
		mes = ""
		if isinstance(error_message,tuple): error_message=list(error_message)
		if isinstance(error_message,list):
			for error in error_message:
				mes += error
				
				if len(error) > 0 and error[-1] != '.':
					# correct my own inconsistencies....AWESOME
					mes += '.'
				if error != error_message[-1]: mes += "\n"
		else:
			mes = error_message
			if len(error_message) > 0 and error_message[-1] != '.':
				# correct my own inconsistencies....AWESOME
				mes += '.'
		msg.setText(mes)
		msg.exec_()
Пример #10
0
	def __init__(self,label_text,cancel_button_text, minimum, maximum, parent = None):
		QtGui.QProgressDialog.__init__(self,label_text,cancel_button_text, minimum, maximum, parent)
		self.setWindowIcon(QtGui.QIcon(get_image_directory() + "/eman.png"))
Пример #11
0
	def __init__(self,filename,item_list):
		'''
		@param filename the name of the file that is being overwritten
		@param item_list a list - the first object must have supply the get_attr_dict function, the keys "nx", "ny" and "nz therein
		If you want to use this function for a single EMData object then just put it in a list
		'''
		QtGui.QDialog.__init__(self,None)
		self.resize(480,320)
		self.setWindowIcon(QtGui.QIcon(get_image_directory() + "/eman.png"))
		self.setWindowTitle("File already exists")
		self.appendable_types = ["hed","img","spi","hdf"] #image types that can be stacks - TODO bdb ?
		
		append_enable = False 
		
		splt = filename.split(".")
		if splt[-1] in self.appendable_types or (len(filename) > 3 and filename[:4] == "bdb:"):
			(nx,ny,nz) = gimme_image_dimensions3D(filename)
			d = item_list[0].get_attr_dict()
			nz1 = d["nz"]
			ny1 = d["ny"]
			nx1 = d["nx"]
			# can only append if the dimensions are the same
			if nx == nx1 and ny == ny1 and nz == nz1:
				append_enable=True
		
		# some widgets
		vbl = QtGui.QVBoxLayout(self)
		hbl = QtGui.QHBoxLayout()
		overwrite = QtGui.QPushButton("Overwrite")
		cancel = QtGui.QPushButton("Cancel")
		
		# add Widgets to Layouts
		hbl.addWidget(cancel)
		if append_enable:
			append = QtGui.QPushButton("Append")
			hbl.addWidget(append)
		hbl.addWidget(overwrite)
		if (len(filename) > 3 and filename[:4] == "bdb:"):
			overwrite.setEnabled(False)
			overwrite.setToolTip("Overwriting bdb files is currently disabled.")
		
		# Text to alert the user
		hbl2 = QtGui.QHBoxLayout()
		text_edit = QtGui.QTextEdit("",self)
		text_edit.setReadOnly(True)
		text_edit.setWordWrapMode(QtGui.QTextOption.WordWrap)
		if (filename == ""):
			if append_enable:
				help = "The file already exists. You can choose to append to it, to overwrite it, or to cancel this operation."
			else:
				help = "The file already exists. You can choose to overwrite it, or to cancel this operation."			
		else:
			if append_enable:
				help = "The file %s already exists. You can choose to append to it, to overwrite it, or to cancel this operation." %filename
			else:
				help = "The file %s already exists. You can choose to to overwrite it, or to cancel this operation." %filename
		
		help += "\n\nBe careful about overwriting data as it may cause errors when using EMAN2 virtual stacks."
		
		text_edit.setText(help)
		hbl2.addWidget(text_edit,0)
		
		groupbox = QtGui.QGroupBox("Warning")
		groupbox.setLayout(hbl2)
		vbl.addWidget(groupbox)
		
		vbl.addLayout(hbl)
		
		if append_enable:
			QtCore.QObject.connect(append, QtCore.SIGNAL("clicked(bool)"), self.append_clicked)
		QtCore.QObject.connect(overwrite, QtCore.SIGNAL("clicked(bool)"), self.overwrite_clicked)
		QtCore.QObject.connect(cancel, QtCore.SIGNAL("clicked(bool)"), self.cancel_clicked)
		
		self.__result = 0
Пример #12
0
    def __init__(self, filename, item_list):
        '''
		@param filename the name of the file that is being overwritten
		@param item_list a list - the first object must have supply the get_attr_dict function, the keys "nx", "ny" and "nz therein
		If you want to use this function for a single EMData object then just put it in a list
		'''
        QtGui.QDialog.__init__(self, None)
        self.resize(480, 320)
        self.setWindowIcon(QtGui.QIcon(get_image_directory() + "/eman.png"))
        self.setWindowTitle("File already exists")
        self.appendable_types = [
            "hed", "img", "spi", "hdf"
        ]  #image types that can be stacks - TODO bdb ?

        append_enable = False

        splt = filename.split(".")
        if splt[-1] in self.appendable_types or (len(filename) > 3
                                                 and filename[:4] == "bdb:"):
            (nx, ny, nz) = gimme_image_dimensions3D(filename)
            d = item_list[0].get_attr_dict()
            nz1 = d["nz"]
            ny1 = d["ny"]
            nx1 = d["nx"]
            # can only append if the dimensions are the same
            if nx == nx1 and ny == ny1 and nz == nz1:
                append_enable = True

        # some widgets
        vbl = QtGui.QVBoxLayout(self)
        hbl = QtGui.QHBoxLayout()
        overwrite = QtGui.QPushButton("Overwrite")
        cancel = QtGui.QPushButton("Cancel")

        # add Widgets to Layouts
        hbl.addWidget(cancel)
        if append_enable:
            append = QtGui.QPushButton("Append")
            hbl.addWidget(append)
        hbl.addWidget(overwrite)
        if (len(filename) > 3 and filename[:4] == "bdb:"):
            overwrite.setEnabled(False)
            overwrite.setToolTip(
                "Overwriting bdb files is currently disabled.")

        # Text to alert the user
        hbl2 = QtGui.QHBoxLayout()
        text_edit = QtGui.QTextEdit("", self)
        text_edit.setReadOnly(True)
        text_edit.setWordWrapMode(QtGui.QTextOption.WordWrap)
        if (filename == ""):
            if append_enable:
                help = "The file already exists. You can choose to append to it, to overwrite it, or to cancel this operation."
            else:
                help = "The file already exists. You can choose to overwrite it, or to cancel this operation."
        else:
            if append_enable:
                help = "The file %s already exists. You can choose to append to it, to overwrite it, or to cancel this operation." % filename
            else:
                help = "The file %s already exists. You can choose to to overwrite it, or to cancel this operation." % filename

        help += "\n\nBe careful about overwriting data as it may cause errors when using EMAN2 virtual stacks."

        text_edit.setText(help)
        hbl2.addWidget(text_edit, 0)

        groupbox = QtGui.QGroupBox("Warning")
        groupbox.setLayout(hbl2)
        vbl.addWidget(groupbox)

        vbl.addLayout(hbl)

        if append_enable:
            append.clicked[bool].connect(self.append_clicked)
        overwrite.clicked[bool].connect(self.overwrite_clicked)
        cancel.clicked[bool].connect(self.cancel_clicked)

        self.__result = 0