DailyBread/mainwindow.cpp

131 lines
2.7 KiB
C++

/*Author: Daniel Jones
*IDE: QT Creator
*Compiler: MinGW
*OS: Windows 10
*Purpose: QT Widget that displays the verse of the day upon Windows 10 bootup.
* Last edited: 1/3/2024
*/
#include "mainwindow.h"
#include "./ui_mainwindow.h"
#include <chrono>
#include <ctime>
#include <iostream>
//Function declarations
int current_day();
int current_month();
QString verse_display();
std::string verse_grab();
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->verse->setText(verse_display());
std::cout << current_day();
std::cout << current_month();
}
MainWindow::~MainWindow()
{
delete ui;
}
/*
* Function: verse_display
* description: This function asks verse_grab to get the verse from the sqlite3 database, converts it
* to a format that QT can display, and then returns it to MainWindow.
* Return type: QString
* Param: none
*/
QString verse_display()
{
std::string verse_text;
verse_text = verse_grab();
QString returned_string = QString::fromStdString(verse_text);
return returned_string;
}
/*
* Function: verse_grab
* description: selects the verse based on the current day and returns the result
* Return type: string
* Param: none
*/
std::string verse_grab(){
std::string my_verse;
//gets current month and day and returns the result
int curmonth = current_month();
int curday = current_day();
std::string query = "select * from verses where day = " + std::to_string(curday) + " and month = " + std::to_string(curmonth);
//placeholder until I get the SQLlite3 connection working
my_verse = "hello world!";
return my_verse;
}
//UI function that exits when the "go in peace" button is pressed.
void MainWindow::on_exitButton_clicked()
{
QApplication::quit();
}
//Everything below this grabs the day and month.
typedef std::chrono::system_clock Clock;
/*
* Function: current_day
* description: queries the operating system for the current day
* Return type: integer
* Param: none
*/
int current_day(){
auto now = Clock::now();
std::time_t now_c = Clock::to_time_t(now);
struct tm *parts = std::localtime(&now_c);
int day = parts->tm_mday;
return day;
}
/*
* Function: current_month
* description: queries the operating system for the current month
* Return type: integer
* Param: none
*/
int current_month(){
auto now = Clock::now();
std::time_t now_c = Clock::to_time_t(now);
struct tm *parts = std::localtime(&now_c);
int month = 1 + parts->tm_mon;
return month;
}