def add_reminder(self): """ Method to add the reminder to the list. """ if self.ui.line_edit.text() == '': error_msg = qtw.QMessageBox() error_msg.setWindowTitle('Error') error_msg.setIcon(qtw.QMessageBox.Critical) error_msg.setText('Title field is empty!') error_msg.setStandardButtons(qtw.QMessageBox.Ok) error_msg.exec_() elif self.ui.text_edit.toPlainText() == '': error_msg = qtw.QMessageBox() error_msg.setWindowTitle('Error') error_msg.setIcon(qtw.QMessageBox.Critical) error_msg.setText('Content field is empty!') error_msg.setStandardButtons(qtw.QMessageBox.Ok) error_msg.exec_() else: r_date, r_month, r_year = self.ui.date_edit.date().day( ), self.ui.date_edit.date().month(), self.ui.date_edit.date().year( ) #Getting the date of reminder. date_format = f'{str(r_date)}-{str(r_month)}-{str(r_year)}' r_hour, r_minutes = self.ui.time_edit.time().hour( ), self.ui.time_edit.time().minute( ) #Getting the time of reminder. if r_hour in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]: r_hour = '0' + str(r_hour) if r_minutes in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]: r_minutes = '0' + str(r_minutes) time_format = f'{str(r_hour)}:{str(r_minutes)}' msg_title = self.ui.line_edit.text( ) #Getting the title of the remainder. msg_content = self.ui.text_edit.toPlainText( ) #Getting the content of the reminder. if self.check_duplicate_title(msg_title): error_msg_dup = qtw.QMessageBox() error_msg_dup.setWindowTitle('Error') error_msg_dup.setIcon(qtw.QMessageBox.Critical) error_msg_dup.setText( 'Duplicate title exists. Please try a different one.') error_msg_dup.setStandardButtons(qtw.QMessageBox.Ok) error_msg_dup.exec_() else: reminder = Reminders(date_format, time_format, msg_title, msg_content) self.list_of_reminders.append( reminder.get_tuple() ) #Adding a tuple so that heap sorts the reminders based on date and time. heapq.heapify( self.list_of_reminders ) #Using heapq for maintaining the order of the reminders based on date and time. self.ui.list_widget.clear() #Displaying on the list in sorted order. self.ui.list_widget.addItem('Reminder Titles:') for item in self.list_of_reminders: self.ui.list_widget.addItem(item[2] + ' on ' + item[0] + ' @' + item[1]) self.ui.line_edit.clear() self.ui.text_edit.clear() self.ui.time_edit.setMinimumTime(QtCore.QTime.currentTime()) self.ui.date_edit.setMinimumDate(QtCore.QDate.currentDate())