Skip to content

Commit

Permalink
code cleanup, settings implemented,
Browse files Browse the repository at this point in the history
  • Loading branch information
keshavbhatt committed Apr 15, 2021
1 parent 0f7c577 commit c400885
Show file tree
Hide file tree
Showing 3 changed files with 89 additions and 21 deletions.
87 changes: 73 additions & 14 deletions src/mainwindow.cpp
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>


MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);

QMargins m = ui->mainToolBar->layout()->contentsMargins();
ui->mainToolBar->setContentsMargins(m.left(),m.top(),m.right(),m.top());

setWindowTitle(QApplication::applicationName());
setWindowIcon(QIcon(":/icons/app/icon-256.png"));
Expand All @@ -21,8 +23,41 @@ MainWindow::MainWindow(QWidget *parent) :
homeWidget = new Home(QAudioDeviceInfo::availableDevices(QAudio::AudioInput),this);
recordingPageWidget = new RecordingPage(this);

connect(recordingPageWidget,&RecordingPage::showFixKeyError,[=](QString error){
QMessageBox msgBox;
msgBox.setText(QApplication::applicationName()+" | Incorrect API Token");
msgBox.setText(error);
msgBox.setInformativeText("Do you want to correct API Token now?");

QPushButton *settingsButton = msgBox.addButton(tr("Yes, correct API Token"), QMessageBox::ActionRole);
QPushButton *abortButton = msgBox.addButton(QMessageBox::No);
msgBox.exec();
if (msgBox.clickedButton() == settingsButton) {
settingsAction->trigger();
} else if (msgBox.clickedButton() == abortButton) {
msgBox.close();
}
});

connect(recordingPageWidget,&RecordingPage::showPutKeyError,[=](QString error){
QMessageBox msgBox;
msgBox.setText(QApplication::applicationName()+" | Need API Token");
msgBox.setText(error);
msgBox.setInformativeText("Do you want to set API Token now?");

QPushButton *settingsButton = msgBox.addButton(tr("Yes, set API Token"), QMessageBox::ActionRole);
QPushButton *abortButton = msgBox.addButton(QMessageBox::No);
msgBox.exec();
if (msgBox.clickedButton() == settingsButton) {
settingsAction->trigger();
} else if (msgBox.clickedButton() == abortButton) {
msgBox.close();
}
});

connect(recordingPageWidget,&RecordingPage::enableItemActions,[=](bool enable){
itemDeleteAction->setEnabled(enable);
itemInfoAction->setEnabled(enable);
});

connect(recordingPageWidget,&RecordingPage::back,[=](){
Expand All @@ -40,7 +75,10 @@ MainWindow::MainWindow(QWidget *parent) :
ui->stackedWidget->addWidget(homeWidget);
ui->stackedWidget->addWidget(recordingPageWidget);

init_settings();

createActions();

}

MainWindow::~MainWindow()
Expand All @@ -58,27 +96,25 @@ void MainWindow::closeEvent(QCloseEvent *event)

void MainWindow::createActions()
{
aboutAction = new QAction(tr("&About"), this);
aboutAction->setIcon(QIcon(":/icons/app/icon-32.png"));
aboutAction->setIconText("About");

backAction = new QAction(tr("&Back"), this);
backAction->setIcon(QIcon(":/icons/arrow-left-circle-line.png"));
backAction->setIconText("Back");
aboutAction = new QAction(QIcon(":/icons/app/icon-32.png"),tr("&About"), this);
backAction = new QAction(QIcon(":/icons/arrow-left-circle-line.png"),tr("&Back"), this);
historyAction = new QAction(QIcon(":/icons/time-line.png"),tr("&History"), this);
itemDeleteAction = new QAction(QIcon(":/icons/delete-bin-5-line.png"),tr("Delete"),this);
itemInfoAction = new QAction(QIcon(":/icons/information-line.png"),tr("Info"),this);
settingsAction = new QAction(QIcon(":/icons/setting-line.png"),tr("Settings"),this);

historyAction = new QAction(tr("&History"), this);
historyAction->setIcon(QIcon(":/icons/time-line.png"));
historyAction->setIconText("History");

itemDeleteAction = new QAction(QIcon(":/icons/delete-bin-5-line.png"),"Delete",this);
connect(settingsAction, &QAction::triggered,this,&MainWindow::showSettings);

connect(itemDeleteAction, &QAction::triggered,recordingPageWidget,&RecordingPage::deleteSelected);

connect(itemInfoAction, &QAction::triggered,recordingPageWidget,&RecordingPage::showItemInfo);

connect(aboutAction, &QAction::triggered, this, &MainWindow::showAbout);

connect(backAction, &QAction::triggered,[=]()
{
backAction->setEnabled(false);
emit recordingPageWidget->enableItemActions(false);
recordingPageWidget->clearDebug();
recordingPageWidget->stopRecording();
recordingPageWidget->stopAllPlayers();
Expand All @@ -99,7 +135,6 @@ void MainWindow::createActions()

ui->mainToolBar->addSeparator();


ui->mainToolBar->addAction(historyAction);
historyAction->setEnabled(true);

Expand All @@ -108,16 +143,40 @@ void MainWindow::createActions()
ui->mainToolBar->addAction(itemDeleteAction);
itemDeleteAction->setEnabled(false);

ui->mainToolBar->addAction(itemInfoAction);
itemInfoAction->setEnabled(false);

QWidget* hSpacer= new QWidget(this);
hSpacer->setStyleSheet("background-color:transparent");
hSpacer->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Preferred);

ui->mainToolBar->addWidget(hSpacer);

ui->mainToolBar->addAction(settingsAction);

ui->mainToolBar->addAction(aboutAction);

}

void MainWindow::init_settings()
{
settingsWidget = new SettingsWidget(this);
settingsWidget->setWindowTitle(QApplication::applicationName()+"| "+tr("Settings"));
settingsWidget->setWindowFlag(Qt::Dialog);
settingsWidget->setWindowModality(Qt::WindowModal);
settingsWidget->restoreGeometry(settings.value("settingsGeometry").toByteArray());
}

void MainWindow::showSettings()
{
if(!settingsWidget->isVisible()){
settingsWidget->show();
}else{
settingsWidget->raise();
settingsWidget->activateWindow();
}
}

void MainWindow::showAbout()
{
About *about = new About(this);
Expand Down
11 changes: 10 additions & 1 deletion src/mainwindow.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,15 @@
#include <QCloseEvent>
#include <QMainWindow>
#include <QSettings>
#include <QDebug>
#include <QPushButton>


#include "about.h"

#include "home.h"
#include "recordingpage.h"
#include "settingswidget.h"

namespace Ui {
class MainWindow;
Expand All @@ -28,17 +32,22 @@ private slots:
void createActions();
void showAbout();

void showSettings();
void init_settings();
private:
Ui::MainWindow *ui;

QAction *aboutAction;
QAction *backAction;
QAction *historyAction;
QAction *itemDeleteAction;
QAction *itemDeleteAction, *itemInfoAction;
QAction *settingsAction;

Home *homeWidget = nullptr;
RecordingPage *recordingPageWidget = nullptr;
QSettings settings;

SettingsWidget *settingsWidget = nullptr;
};

#endif // MAINWINDOW_H
12 changes: 6 additions & 6 deletions src/mainwindow.ui
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>528</width>
<height>418</height>
<width>537</width>
<height>331</height>
</rect>
</property>
<property name="windowTitle">
Expand All @@ -21,14 +21,14 @@
</layout>
</widget>
<widget class="QToolBar" name="mainToolBar">
<property name="allowedAreas">
<set>Qt::BottomToolBarArea|Qt::TopToolBarArea</set>
<property name="movable">
<bool>false</bool>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextUnderIcon</enum>
<enum>Qt::ToolButtonTextBesideIcon</enum>
</property>
<property name="floatable">
<bool>true</bool>
<bool>false</bool>
</property>
<attribute name="toolBarArea">
<enum>TopToolBarArea</enum>
Expand Down

0 comments on commit c400885

Please sign in to comment.