예제 #1
0
    def save_unsaved_changes(self):
        """
		desc:
			Checks whether there are unsaved changes. If so, the user can
			choose to discard or save these changes, or to cancel.

		returns:
			desc:	False if the user has cancelled, True otherwise.
			type:	bool
		"""

        from libqtopensesame._input.confirmation import confirmation
        if not self.unsaved_changes:
            return True
        resp = confirmation(
            self,
            msg=
            _(u'Your experiment contains unsaved changes. Do you want to save your experiment?'
              ),
            title=_(u'Save changes?'),
            allow_cancel=True,
            default=u'cancel').show()
        if resp is None:
            return False
        if resp:
            self.save_file()
        return True
예제 #2
0
	def add(self, files, rename=False):

		"""
		desc:
			Adds a list of files to the pool.

		arguments:
			files:
			 	desc:	A list of paths.
				type:	list
		"""

		if not files:
			return
		for path in files:
			basename = os.path.basename(path)
			if self.pool.in_folder(basename):
				if rename:
					while self.pool.in_folder(basename):
						basename = u'_' + basename
				else:
					c = confirmation(self.main_window,
						_(u"A file named '%s' already exists in the pool. Do you want to overwrite this file?") \
						% basename)
					if not c.show():
						continue
			try:
				self.pool.add(path, new_name=basename)
			except IOError as e:
				self.notify(_(u'Failed to copy %s to file pool') % path)
				self.console.write(safe_decode(e, errors=u'ignore'))
		self.refresh()
		self.select(basename)
예제 #3
0
	def delete_selected_files(self):

		"""
		desc:
			Deletes all selected files from the pool. Asks for confimation\
			first.
		"""

		# Prepare the confirmation dialog, which contains a limited nr of
		# filenames
		l = []
		suffix = u''
		for item in self.ui.list_pool.selectedItems()[:self.max_len]:
			l.append(self.pool[item.text()])
		if len(self.ui.list_pool.selectedItems()) > self.max_len:
			suffix = _('And %d more file(s)') % \
				(len(self.ui.list_pool.selectedItems())-self.max_len)
		msg = _(u"<p>Are you sure you want to remove the following files?</p>"
			u"<p>- %s</p> <p>%s</p>") % (u"<br /> - ".join(l), suffix)
		c = confirmation(self.main_window, msg)
		if not c.show():
			return
		# Create a list of files to be removed
		dL = []
		for item in self.ui.list_pool.selectedItems():
			dL.append(item.path)
		# Remove the files
		try:
			for f in dL:
				del self.pool[f]
			debug.msg(u"removed '%s'" % f)
		except:
			debug.msg(u"failed to remove '%s'" % f)
		self.refresh()
		self.main_window.set_unsaved()
예제 #4
0
	def add(self, files, rename=False):

		"""
		desc:
			Adds a list of files to the pool.

		arguments:
			files:
			 	desc:	A list of paths.
				type:	list
		"""

		for path in files:
			basename = os.path.basename(path)
			if self.pool.in_folder(basename):
				if rename:
					while self.pool.in_folder(basename):
						basename = u'_' + basename
				else:
					c = confirmation(self.main_window,
						_(u"A file named '%s' already exists in the pool. Do you want to overwrite this file?") \
						% basename)
					if not c.show():
						continue
			self.pool.add(path, new_name=basename)
		self.refresh()
		self.select(basename)
예제 #5
0
	def save_unsaved_changes(self):

		"""
		desc:
			Checks whether there are unsaved changes. If so, the user can
			choose to discard or save these changes, or to cancel.

		returns:
			desc:	False if the user has cancelled, True otherwise.
			type:	bool
		"""

		from libqtopensesame._input.confirmation import confirmation
		if not self.unsaved_changes:
			return True
		resp = confirmation(self,
			msg=_(u'Your experiment contains unsaved changes. Do you want to save your experiment?'),
			title=_(u'Save changes?'), allow_cancel=True,
			default=u'cancel').show()
		if resp is None:
			return False
		if resp:
			self.save_file()
		return True