Changeset f862cc9092a9988eea1a30d617040be530eb4d15


Ignore:
Timestamp:
09/24/09 00:29:29 (3 years ago)
Author:
Flupke <luper.rouch@…>
Children:
67fb7f47d19800052eec97fb8068824ea9163433
Parents:
8fe8df2aeb16e772b40db3d12111cee811c816d6
git-committer:
Flupke <luper.rouch@…> (09/24/09 00:29:29)
Message:

boxsort:

  • implemented dnd
  • fixed unicode errors in error messages formating
Location:
boxsort/boxsort
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • boxsort/boxsort/__init__.py

    r8fe8df2 rf862cc9  
    9090                self.append(side_boxes.pop(0)) 
    9191            except DeckOverflowError: 
    92                 raise ArangeError("can't place first box") 
     92                raise ArangeError(u"impossible de placer la première boite ; " 
     93                    u"la taille des plateaux est trop petite par rapport aux " 
     94                    u"boites.") 
    9395        else: 
    9496            # There is no side box, put an empty space at start 
     
    119121        if box.size + self.insert_pos > self.size + 1: 
    120122            # No space left to insert box 
    121             raise DeckOverflowError 
     123            raise DeckOverflowError() 
    122124        if box.size < self.feather_size and \ 
    123125                self.insert_pos + box.size > self.size - self.feather_size + 1: 
    124126            # Can't insert small boxes at the end of the deck 
    125             raise DeckOverflowError 
     127            raise DeckOverflowError() 
    126128        box.move(self.insert_pos) 
    127129        self.boxes.append(box) 
     
    168170            match = box_line_pattern.match(line) 
    169171            if not match: 
    170                 raise InvalidInputError("erreur à la ligne %d: '%s'" % 
    171                         (current_line, line)) 
     172                raise InvalidInputError(u"erreur à la ligne %d: format " 
     173                        u"invalide." % current_line) 
    172174            current_deck.append(Box(*match.groups()))         
    173175        else: 
     
    200202            out_deck.set_module(module_letters[module_id]) 
    201203        except IndexError: 
    202             raise ArangeError("plus de lettres de modules disponibles") 
     204            raise ArangeError(u"plus de lettres de modules disponibles") 
    203205        outfile.write(str(out_deck)) 
    204206        if deck_id == decks_per_module: 
     
    209211            deck_id += 1 
    210212    # Continue aranging boxes while there are garbage boxes left 
    211     outfile.write("###################### BEGIN GARBAGE ######################\n") 
    212213    while garbage_boxes: 
    213214        out_deck = Deck(size=decks_size, feather_size=feather_size) 
     
    218219            out_deck.set_module(module_letters[module_id]) 
    219220        except IndexError: 
    220             raise ArangeError("plus de lettres de modules disponibles") 
     221            raise ArangeError(u"plus de lettres de modules disponibles") 
    221222        outfile.write(str(out_deck)) 
    222223        if deck_id == decks_per_module: 
     
    227228            deck_id += 1 
    228229    if in_count != out_count: 
    229         raise ArangeError("le nombre de boites en sortie est différent du " 
    230                 "nombre de boites en entrée") 
    231  
     230        raise ArangeError(u"le nombre de boites en sortie est différent du " 
     231                u"nombre de boites en entrée") 
     232 
  • boxsort/boxsort/gui/dialogs/main.py

    r8fe8df2 rf862cc9  
    2424        c(self.decks_per_module, SIGNAL("valueChanged(int)"), 
    2525                self.update_output) 
     26        c(self.input_text, SIGNAL("loaded"), self.open_input) 
    2627 
    2728    def select_input(self): 
    2829        path = get_open_path(self, "directories/input_dir") 
    2930        if path: 
     31            self.input_text.load_file(path) 
    3032            self.open_input(path) 
    3133 
     
    3941            QMessageBox.critical(self, self.trUtf8("Erreur"), 
    4042                    self.trUtf8("Fichier en entrée invalide: %1") 
    41                         .arg(str(e))) 
     43                        .arg(unicode(e))) 
    4244            self.enable_output(False) 
     45            self.input_text.clear() 
    4346        else: 
    4447            # Show input content 
     
    8184            QMessageBox.critical(self, self.trUtf8("Erreur"),  
    8285                    self.trUtf8("Impossible de ranger les boites: %1") 
    83                         .arg(str(e))) 
     86                        .arg(unicode(e))) 
    8487            self.output_text.clear() 
    8588        else: 
  • boxsort/boxsort/gui/widgets/file_drop_plain_text_edit.py

    r8fe8df2 rf862cc9  
    11from PyQt4.QtGui import * 
    22from PyQt4.QtCore import * 
     3import os.path 
    34 
    45 
     
    67 
    78    def dragEnterEvent(self, event): 
    8         event.acceptProposedAction() 
     9        self.get_event_file(event) 
    910 
    1011    def dragMoveEvent(self, event): 
    11         event.acceptProposedAction() 
     12        self.get_event_file(event) 
    1213 
    1314    def dropEvent(self, event): 
    14         mime_data = event.mimeData() 
    15         print [str(x) for x in mime_data.formats()] 
    16         print repr(mime_data.data("text/uri-list")) 
    17         event.acceptProposedAction() 
     15        path = self.get_event_file(event) 
     16        if path is not None: 
     17            self.load_file(path) 
     18            self.emit(SIGNAL("loaded"), path) 
    1819 
    1920    def dragLeaveEvent(self, event): 
    2021        event.accept() 
    2122 
     23    def get_event_file(self, event): 
     24        mime_data = event.mimeData() 
     25        if mime_data.hasUrls(): 
     26            for url in mime_data.urls(): 
     27                path = url.path() 
     28                if os.path.isfile(path): 
     29                    event.acceptProposedAction() 
     30                    return path 
     31        return None 
    2232 
     33    def load_file(self, path): 
     34        f = open(path) 
     35        self.setPlainText(f.read()) 
     36        f.close() 
Note: See TracChangeset for help on using the changeset viewer.