Example #1
0
 def move(self, **keywords):
     direction = Direction(keywords)
     if direction.horizontal():
         # Ensure that the pointer is moved utf-char-wise
         if PY3:
             if self.question_queue:
                 umax = len(self.question_queue[0][0]) + 1 - self.wid
             else:
                 umax = len(self.line) + 1
             self.pos = direction.move(direction=direction.right(),
                                       minimum=0,
                                       maximum=umax,
                                       current=self.pos)
         else:
             if self.question_queue:
                 uchar = list(self.question_queue[0][0].decode(
                     'utf-8', 'ignore'))
                 upos = len(self.question_queue[0][0][:self.pos].decode(
                     'utf-8', 'ignore'))
                 umax = len(uchar) + 1 - self.wid
             else:
                 uchar = list(self.line.decode('utf-8', 'ignore'))
                 upos = len(self.line[:self.pos].decode('utf-8', 'ignore'))
                 umax = len(uchar) + 1
             newupos = direction.move(direction=direction.right(),
                                      minimum=0,
                                      maximum=umax,
                                      current=upos)
             self.pos = len(''.join(uchar[:newupos]).encode(
                 'utf-8', 'ignore'))
Example #2
0
 def move(self, **keywords):
     direction = Direction(keywords)
     if direction.horizontal():
         # Ensure that the pointer is moved utf-char-wise
         if self.fm.py3:
             if self.question_queue:
                 umax = len(self.question_queue[0][0]) + 1 - self.wid
             else:
                 umax = len(self.line) + 1
             self.pos = direction.move(
                 direction=direction.right(),
                 minimum=0,
                 maximum=umax,
                 current=self.pos)
         else:
             if self.question_queue:
                 uchar = list(self.question_queue[0][0].decode('utf-8', 'ignore'))
                 upos = len(self.question_queue[0][0][:self.pos].decode('utf-8', 'ignore'))
                 umax = len(uchar) + 1 - self.wid
             else:
                 uchar = list(self.line.decode('utf-8', 'ignore'))
                 upos = len(self.line[:self.pos].decode('utf-8', 'ignore'))
                 umax = len(uchar) + 1
             newupos = direction.move(
                 direction=direction.right(),
                 minimum=0,
                 maximum=umax,
                 current=upos)
             self.pos = len(''.join(uchar[:newupos]).encode('utf-8', 'ignore'))
Example #3
0
	def test_conflicts(self):
		d3 = Direction(right=5, left=2, up=3, down=6,
				absolute=True, relative=True)
		self.assertEqual(d3.right(), -d3.left())
		self.assertEqual(d3.left(), -d3.right())
		self.assertEqual(d3.up(), -d3.down())
		self.assertEqual(d3.down(), -d3.up())
		self.assertEqual(d3.absolute(), not d3.relative())
		self.assertEqual(d3.relative(), not d3.absolute())
Example #4
0
    def test_copy(self):
        d = Direction(right=5)
        c = d.copy()
        self.assertEqual(c.right(), d.right())
        d['right'] += 3
        self.assertNotEqual(c.right(), d.right())
        c['right'] += 3
        self.assertEqual(c.right(), d.right())

        self.assertFalse(d.vertical())
        self.assertTrue(d.horizontal())
Example #5
0
	def test_copy(self):
		d = Direction(right=5)
		c = d.copy()
		self.assertEqual(c.right(), d.right())
		d['right'] += 3
		self.assertNotEqual(c.right(), d.right())
		c['right'] += 3
		self.assertEqual(c.right(), d.right())

		self.assertFalse(d.vertical())
		self.assertTrue(d.horizontal())
Example #6
0
 def move(self, **keywords):
     direction = Direction(keywords)
     if direction.horizontal():
         # Ensure that the pointer is moved utf-char-wise
         if self.fm.py3:
             self.pos = direction.move(
                 direction=direction.right(), minimum=0, maximum=len(self.line) + 1, current=self.pos
             )
         else:
             uc = uchars(self.line)
             upos = len(uchars(self.line[: self.pos]))
             newupos = direction.move(direction=direction.right(), minimum=0, maximum=len(uc) + 1, current=upos)
             self.pos = len("".join(uc[:newupos]))
Example #7
0
 def test_conflicts(self):
     d3 = Direction(right=5,
                    left=2,
                    up=3,
                    down=6,
                    absolute=True,
                    relative=True)
     self.assertEqual(d3.right(), -d3.left())
     self.assertEqual(d3.left(), -d3.right())
     self.assertEqual(d3.up(), -d3.down())
     self.assertEqual(d3.down(), -d3.up())
     self.assertEqual(d3.absolute(), not d3.relative())
     self.assertEqual(d3.relative(), not d3.absolute())
Example #8
0
 def move(self, narg=None, **kw):
     direction = Direction(kw)
     if direction.horizontal():
         self.startx = direction.move(
             direction=direction.right(),
             override=narg,
             maximum=self.max_width,
             current=self.startx,
             pagesize=self.wid,
             offset=-self.wid + 1)
     if direction.vertical():
         movement = dict(
             direction=direction.down(),
             override=narg,
             current=self.scroll_begin,
             pagesize=self.hei,
             offset=-self.hei + 1)
         if self.source_is_stream:
             # For streams, we first pretend that the content ends much later,
             # in case there are still unread lines.
             desired_position = direction.move(
                 maximum=len(self.lines) + 9999,
                 **movement)
             # Then, read the new lines as needed to produce a more accurate
             # maximum for the movement:
             self._get_line(desired_position + self.hei)
         self.scroll_begin = direction.move(
             maximum=len(self.lines),
             **movement)
Example #9
0
 def move(self, narg=None, **kw):
     direction = Direction(kw)
     if direction.horizontal():
         self.startx = direction.move(direction=direction.right(),
                                      override=narg,
                                      maximum=self.max_width,
                                      current=self.startx,
                                      pagesize=self.wid,
                                      offset=-self.wid + 1)
     if direction.vertical():
         movement = dict(direction=direction.down(),
                         override=narg,
                         current=self.scroll_begin,
                         pagesize=self.hei,
                         offset=-self.hei + 1)
         if self.source_is_stream:
             # For streams, we first pretend that the content ends much later,
             # in case there are still unread lines.
             desired_position = direction.move(maximum=len(self.lines) +
                                               9999,
                                               **movement)
             # Then, read the new lines as needed to produce a more accurate
             # maximum for the movement:
             self._get_line(desired_position + self.hei)
         self.scroll_begin = direction.move(maximum=len(self.lines),
                                            **movement)
Example #10
0
 def move(self, **keywords):
     direction = Direction(keywords)
     if direction.horizontal():
         # Ensure that the pointer is moved utf-char-wise
         if self.fm.py3:
             self.pos = direction.move(direction=direction.right(),
                                       minimum=0,
                                       maximum=len(self.line) + 1,
                                       current=self.pos)
         else:
             uc = uchars(self.line)
             upos = len(uchars(self.line[:self.pos]))
             newupos = direction.move(direction=direction.right(),
                                      minimum=0,
                                      maximum=len(uc) + 1,
                                      current=upos)
             self.pos = len(''.join(uc[:newupos]))
Example #11
0
 def move(self, **keywords):
     direction = Direction(keywords)
     if direction.horizontal():
         # Ensure that the pointer is moved utf-char-wise
         if self.fm.py3:
             self.pos = direction.move(direction=direction.right(),
                                       minimum=0,
                                       maximum=len(self.line) + 1,
                                       current=self.pos)
         else:
             if self.fm.py3:
                 uchar = list(self.line)
                 upos = len(self.line[:self.pos])
             else:
                 uchar = list(self.line.decode('utf-8', 'ignore'))
                 upos = len(self.line[:self.pos].decode('utf-8', 'ignore'))
             newupos = direction.move(direction=direction.right(),
                                      minimum=0,
                                      maximum=len(uchar) + 1,
                                      current=upos)
             self.pos = len(''.join(uchar[:newupos]).encode(
                 'utf-8', 'ignore'))
Example #12
0
 def move(self, **keywords):
     direction = Direction(keywords)
     if direction.horizontal():
         # Ensure that the pointer is moved utf-char-wise
         if self.fm.py3:
             self.pos = direction.move(
                     direction=direction.right(),
                     minimum=0,
                     maximum=len(self.line) + 1,
                     current=self.pos)
         else:
             if self.fm.py3:
                 uc = list(self.line)
                 upos = len(self.line[:self.pos])
             else:
                 uc = list(self.line.decode('utf-8', 'ignore'))
                 upos = len(self.line[:self.pos].decode('utf-8', 'ignore'))
             newupos = direction.move(
                     direction=direction.right(),
                     minimum=0,
                     maximum=len(uc) + 1,
                     current=upos)
             self.pos = len(''.join(uc[:newupos]).encode('utf-8', 'ignore'))
Example #13
0
 def move(self, narg=None, **kw):
     direction = Direction(kw)
     if direction.horizontal():
         self.startx = direction.move(direction=direction.right(),
                                      override=narg,
                                      maximum=self.max_width,
                                      current=self.startx,
                                      pagesize=self.wid,
                                      offset=-self.wid + 1)
     if direction.vertical():
         if self.source_is_stream:
             self._get_line(self.scroll_begin + self.hei * 2)
         self.scroll_begin = direction.move(direction=direction.down(),
                                            override=narg,
                                            maximum=len(self.lines),
                                            current=self.scroll_begin,
                                            pagesize=self.hei,
                                            offset=-self.hei + 1)
Example #14
0
	def move(self, narg=None, **kw):
		direction = Direction(kw)
		if direction.horizontal():
			self.startx = direction.move(
					direction=direction.right(),
					override=narg,
					maximum=self.max_width,
					current=self.startx,
					pagesize=self.wid,
					offset=-self.wid + 1)
		if direction.vertical():
			if self.source_is_stream:
				self._get_line(self.scroll_begin + self.hei * 2)
			self.scroll_begin = direction.move(
					direction=direction.down(),
					override=narg,
					maximum=len(self.lines),
					current=self.scroll_begin,
					pagesize=self.hei,
					offset=-self.hei + 1)
Example #15
0
 def move_word(self, **keywords):
     direction = Direction(keywords)
     if direction.horizontal():
         self.pos = self.move_by_word(self.line, self.pos, direction.right())
         self.on_line_change()
Example #16
0
 def move_word(self, **keywords):
     direction = Direction(keywords)
     if direction.horizontal():
         self.pos = self.move_by_word(self.line, self.pos,
                                      direction.right())
         self.on_line_change()