Пример #1
0
    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())