class SearchDialog(QDialog): def __init__(self, parent): super(SearchDialog, self).__init__(parent) self.setWindowTitle("Search") self.centralWidget = QWidget() #Main Layout layout = QGridLayout() #layout.setSpacing(0) self.setLayout(layout) self.searchQuery = QLineEdit(self) self.searchQuery.setPlaceholderText("Search query") button = QPushButton("Search") self.connect(button, SIGNAL("clicked()"), self.accept) self.categorySelector = CategorySelector() layout.addWidget(self.categorySelector, 0, 0, 1, 2) layout.addWidget(self.searchQuery, 1, 0) layout.addWidget(button, 1, 1) def category(self): return self.categorySelector.selectedCategory() def text(self): return self.searchQuery.text()
def __init__(self, parent, categories, ll): super(NewVenueWindow, self).__init__(parent) self.setAttribute(Qt.WA_Maemo5StackedWindow) self.venue = dict() self.venue['ignoreDuplicates'] = "false" self.setWindowTitle("New Venue") self.centralWidget = QWidget() self.setCentralWidget(self.centralWidget) #Main Layout layout = QVBoxLayout() layout.setSpacing(0) self.centralWidget.setLayout(layout) #Content Layout self.container = QWidget() self.scrollArea = QScrollArea() self.scrollArea.setWidget(self.container) layout.addWidget(self.scrollArea) self.scrollArea.setWidgetResizable(True) gridLayout = QGridLayout() self.container.setLayout(gridLayout) i = 0 self.name = QLineEdit(self) self.name.setPlaceholderText("Name") gridLayout.addWidget(self.name, i, 0, 1, 2) i += 1 self.address = QLineEdit(self) self.address.setPlaceholderText("Address") gridLayout.addWidget(self.address, i, 0) self.crossStreet = QLineEdit(self) self.crossStreet.setPlaceholderText("Cross Address") gridLayout.addWidget(self.crossStreet, i, 1) i += 1 self.city = QLineEdit(self) self.city.setPlaceholderText("City") gridLayout.addWidget(self.city, i, 0) self.state = QLineEdit(self) self.state.setPlaceholderText("State") gridLayout.addWidget(self.state, i, 1) i += 1 self.zip = QLineEdit(self) self.zip.setPlaceholderText("Zip") gridLayout.addWidget(self.zip, i, 0) self.phone = QLineEdit(self) self.phone.setPlaceholderText("Phone") gridLayout.addWidget(self.phone, i, 1) i += 1 self.twitter = QLineEdit(self) self.twitter.setPlaceholderText("Twitter") gridLayout.addWidget(self.twitter, i, 0) self.url = QLineEdit(self) self.url.setPlaceholderText("URL") gridLayout.addWidget(self.url, i, 1) i += 1 self.description = QLineEdit(self) self.description.setPlaceholderText("Description") gridLayout.addWidget(self.description, i, 0, 1, 2) i += 1 self.category = CategorySelector(self) gridLayout.addWidget(self.category, i, 0, 2, 2) i += 1 i += 1 self.ll = QLineEdit(self) self.ll.setPlaceholderText("Coordinates") self.ll.setText(ll) gridLayout.addWidget(QLabel("Latitude/Longitude: "), i, 0) gridLayout.addWidget(self.ll, i, 1) i += 1 self.add_venue_button = QPushButton("Add Venue") self.connect(self.add_venue_button, SIGNAL("clicked()"), self.add_venue) gridLayout.addWidget(self.add_venue_button, i, 0, 1, 2)
class NewVenueWindow(QMainWindow): def __init__(self, parent, categories, ll): super(NewVenueWindow, self).__init__(parent) self.setAttribute(Qt.WA_Maemo5StackedWindow) self.venue = dict() self.venue['ignoreDuplicates'] = "false" self.setWindowTitle("New Venue") self.centralWidget = QWidget() self.setCentralWidget(self.centralWidget) #Main Layout layout = QVBoxLayout() layout.setSpacing(0) self.centralWidget.setLayout(layout) #Content Layout self.container = QWidget() self.scrollArea = QScrollArea() self.scrollArea.setWidget(self.container) layout.addWidget(self.scrollArea) self.scrollArea.setWidgetResizable(True) gridLayout = QGridLayout() self.container.setLayout(gridLayout) i = 0 self.name = QLineEdit(self) self.name.setPlaceholderText("Name") gridLayout.addWidget(self.name, i, 0, 1, 2) i += 1 self.address = QLineEdit(self) self.address.setPlaceholderText("Address") gridLayout.addWidget(self.address, i, 0) self.crossStreet = QLineEdit(self) self.crossStreet.setPlaceholderText("Cross Address") gridLayout.addWidget(self.crossStreet, i, 1) i += 1 self.city = QLineEdit(self) self.city.setPlaceholderText("City") gridLayout.addWidget(self.city, i, 0) self.state = QLineEdit(self) self.state.setPlaceholderText("State") gridLayout.addWidget(self.state, i, 1) i += 1 self.zip = QLineEdit(self) self.zip.setPlaceholderText("Zip") gridLayout.addWidget(self.zip, i, 0) self.phone = QLineEdit(self) self.phone.setPlaceholderText("Phone") gridLayout.addWidget(self.phone, i, 1) i += 1 self.twitter = QLineEdit(self) self.twitter.setPlaceholderText("Twitter") gridLayout.addWidget(self.twitter, i, 0) self.url = QLineEdit(self) self.url.setPlaceholderText("URL") gridLayout.addWidget(self.url, i, 1) i += 1 self.description = QLineEdit(self) self.description.setPlaceholderText("Description") gridLayout.addWidget(self.description, i, 0, 1, 2) i += 1 self.category = CategorySelector(self) gridLayout.addWidget(self.category, i, 0, 2, 2) i += 1 i += 1 self.ll = QLineEdit(self) self.ll.setPlaceholderText("Coordinates") self.ll.setText(ll) gridLayout.addWidget(QLabel("Latitude/Longitude: "), i, 0) gridLayout.addWidget(self.ll, i, 1) i += 1 self.add_venue_button = QPushButton("Add Venue") self.connect(self.add_venue_button, SIGNAL("clicked()"), self.add_venue) gridLayout.addWidget(self.add_venue_button, i, 0, 1, 2) def category_selected(self, index): if index != -1: subcategories = self.category.pickSelector().model().get_data(index)['categories'] self.subcategory.setPickSelector(CategorySelector(subcategories)) def add_venue(self): if self.name.text() == "": self.ibox = QMaemo5InformationBox() self.ibox.information(self, "No name has been specified for this venue.", 2000) if self.ll.text() == "": self.ibox = QMaemo5InformationBox() self.ibox.information(self, "No ll has been specified for this venue.", 2000) venue = dict() venue['name'] = self.name.text() venue['ll'] = self.ll.text() venue['address'] = self.address.text() venue['crossStreet'] = self.crossStreet.text() venue['city'] = self.city.text() venue['state'] = self.state.text() venue['zip'] = self.zip.text() venue['phone'] = self.phone.text() venue['twitter'] = self.twitter.text() venue['primaryCategoryId'] = self.category.selectedCategory() venue['description'] = self.description.text() venue['url'] = self.url.text() venue['ignoreDuplicates'] = self.venue['ignoreDuplicates'] self.venue['ignoreDuplicates'] = "false" if 'ignoreDuplicatesKey' in self.venue: venue['ignoreDuplicatesKey'] = self.venue['ignoreDuplicatesKey'] response = foursquare.venue_add(venue) if response['meta']['code'] == 409: title = "Duplicate detected" venues = dict() i = 0 for venue in response['response']['candidateDuplicateVenues']: venues[i] = dict() venues[i]['venue'] = venue i += 1 msgBox = QMessageBox(self) msgBox.setText("Foursquare says this venue looks like a duplicate.<br> Make sure it isn't; if it is, then click \"Add Venue\" again.") msgBox.setWindowTitle(title) msgBox.exec_() self.venue['ignoreDuplicates'] = "true" self.venue['ignoreDuplicatesKey'] = response['response']['ignoreDuplicatesKey'] w = VenueListWindow("Posible matches", venues, self) w.show() else: msgBox = QMessageBox(self) msgBox.setText("Venue successfully created") msgBox.setWindowTitle("Venue added") msgBox.exec_() v = VenueDetailsWindow(self, response['response']['venue'], True) v.show()