@@ -0,0 +1,1773 @@
+#!/usr/bin/env python%0A%0A%0Afrom contextlib import contextmanager%0A%0Afrom PyQt4.QtGui import *%0Afrom PyQt4.QtCore import *%0A%0Afrom structdata import g_project%0A%0Afrom roomlistwidget import RoomListWidget%0A%0A@contextmanager%0Adef blockedSignals(widget):%0A    widget.blockSignals(True)%0A    try:%0A        yield%0A    finally:%0A        widget.blockSignals(False)%0A%0Aclass RoomManager(RoomListWidget):%0A%0A    def sizeHint(self):%0A        return QSize(400, 800)%0A%0A    def getIconSize(self):%0A        return QSize(150, 150)%0A%0A    def __init__(self, event=None, item=None, parent=None):%0A        self.start_room = g_project.data%5B'rooms'%5D%5C%0A                          %5Bg_project.data%5B'world'%5D.start%5D%0A        self.selected_room = self.start_room.id%0A        super(RoomManager, self).__init__(event, item, parent)%0A        g_project.subscribe(self)%0A        self.highlightStartRoom()%0A%0A    def setRowSelected(self, id_room):%0A        item = self.table.findItems(self.selected_room, Qt.MatchExactly)%0A        if item:%0A            self.table.selectRow(item%5B0%5D.row())%0A%0A    def highlightStartRoom(self):%0A        item = self.table.findItems(self.start_room.id, Qt.MatchExactly)%0A        if item:%0A            row = item%5B0%5D.row()%0A            item%5B0%5D.setBackground(Qt.yellow)%0A            item = self.table.item(row, 1)%0A            item.setBackground(Qt.yellow)%0A%0A    def signal(self, row, col):%0A        self.emit(SIGNAL(%22currentRoomChanged(const QString &)%22),%0A                  self.table.item(row, 0).text())%0A%0A    def changeCurrentRoomName(self, new_name):%0A        self.selected_room = new_name%0A%0A    def updateData(self):%0A        with blockedSignals(self.table):%0A            self.table.clear()%0A            self.table.setRowCount(0)%0A            self.createTable()%0A        self.highlightStartRoom()%0A        self.setRowSelected(%22%22)%0A%0A

add class to show all the room in the editor, it inherits from RoomListwidget