Skip to content

Commit

Permalink
implement #5
Browse files Browse the repository at this point in the history
  • Loading branch information
VolkMilit committed Apr 12, 2018
1 parent 64334d3 commit ef318e0
Show file tree
Hide file tree
Showing 11 changed files with 469 additions and 26 deletions.
2 changes: 1 addition & 1 deletion src/core/generate.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
cmgenerate::cmgenerate() :
setting(new settings())
{
mailFolderPath = QDir::homePath() + "/mail/"; // will be configurable
mailFolderPath = setting->getMailDir() + "/";
}

cmgenerate::~cmgenerate()
Expand Down
7 changes: 5 additions & 2 deletions src/src.pro
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ SOURCES += main.cpp\
core/mailfetch.cpp \
utils/settings.cpp \
utils/utils.cpp \
ui/settingsdialog.cpp

HEADERS += ui/mainwindow.h \
ui/accountswindow.h \
Expand All @@ -42,7 +43,9 @@ HEADERS += ui/mainwindow.h \
utils/utils.h \
core/maildir.h \
core/emlparser.h \
core/mailfetch.h
core/mailfetch.h \
ui/settingsdialog.h

FORMS += ui/mainwindow.ui \
ui/accountswindow.ui
ui/accountswindow.ui \
ui/settingsdialog.ui
2 changes: 1 addition & 1 deletion src/ui/accountswindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -98,5 +98,5 @@ void accountsWindow::on_lw_accounts_clicked(const QModelIndex &index)
void accountsWindow::on_buttonBox_rejected()
{
writeAccount();
this->hide();
this->close();
}
12 changes: 10 additions & 2 deletions src/ui/mainwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ MainWindow::MainWindow(QWidget *parent) :
gen(new cmgenerate()),
setting(new settings()),
maild(new mailDir()),
accountswindow(new accountsWindow(parent))
accountswindow(new accountsWindow(parent)),
settingsdialog(new settingsDialog(parent))
{
ui->setupUi(this);

Expand Down Expand Up @@ -211,7 +212,8 @@ void MainWindow::on_actionRestore_triggered()

void MainWindow::on_actionManage_accounts_triggered()
{
accountswindow->show();
accountswindow->exec();
accountswindow->done(0);
}

void MainWindow::on_bt_chngview_clicked()
Expand Down Expand Up @@ -304,3 +306,9 @@ void MainWindow::writeSettings()
setting->setWindowFullscreen(QString::number(this->isMaximized()));
setting->setLastAccount(getCurrentAccount().at(0));
}

void MainWindow::on_actionSettings_triggered()
{
settingsdialog->exec();
settingsdialog->done(0);
}
3 changes: 3 additions & 0 deletions src/ui/mainwindow.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
#include "core/emlparser.h"
#include "core/mailfetch.h"
#include "ui/accountswindow.h"
#include "ui/settingsdialog.h"

namespace Ui {class MainWindow;}

Expand All @@ -56,6 +57,7 @@ private slots:
void on_actionManage_accounts_triggered();
void on_bt_chngview_clicked();
void on_treeWidget_itemSelectionChanged();
void on_actionSettings_triggered();

protected:
void closeEvent(QCloseEvent *event);
Expand All @@ -77,6 +79,7 @@ private slots:
settings *setting;
mailDir *maild;
accountsWindow *accountswindow;
settingsDialog *settingsdialog;

QVector<QString> tmp;
};
Expand Down
6 changes: 6 additions & 0 deletions src/ui/mainwindow.ui
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,7 @@ incorrectly. Click this button to show full
<property name="title">
<string>FIle</string>
</property>
<addaction name="actionSettings"/>
<addaction name="actionExit_Ctrl_Q"/>
</widget>
<widget class="QMenu" name="menuAccounts">
Expand Down Expand Up @@ -217,6 +218,11 @@ incorrectly. Click this button to show full
<string>Manage accounts</string>
</property>
</action>
<action name="actionSettings">
<property name="text">
<string>Settings</string>
</property>
</action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<customwidgets>
Expand Down
86 changes: 86 additions & 0 deletions src/ui/settingsdialog.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
#include "settingsdialog.h"
#include "ui_settingsdialog.h"

settingsDialog::settingsDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::settingsDialog),
setting(new settings)
{
ui->setupUi(this);

if (setting->getDisplayMessageOnce() == 0)
displayonce = false;
else
displayonce = true;

ui->le_path_mailbox->setText(QDir::homePath() + "/mail");
readSettings();
}

settingsDialog::~settingsDialog()
{
delete setting;
delete ui;
}

void settingsDialog::readSettings()
{
ui->le_path_mailbox->setText(setting->getMailDir());
ui->cb_alwayswebview->setChecked(setting->getAlwaysUseWebview() ? true : false);
ui->cb_automaticallywebview->setChecked(setting->getUseWebviewAutomatically() ? true : false);
ui->gb_checknew->setChecked(setting->getCheckForNewMail() ? true : false);
ui->sp_seconds_tocheck->setValue(setting->getCheckAfter());
ui->cb_trayicon->setChecked(setting->getDisplayTray() ? true : false);
ui->cb_notify->setChecked(setting->getDisplayNotify() ? true : false);
}

void settingsDialog::writeSettings()
{
setting->setMailDir(ui->le_path_mailbox->text());
setting->setAlwaysUseWebview(ui->cb_alwayswebview->isChecked() ? 1 : 0);
setting->setUseWebviewAutomatically(ui->cb_automaticallywebview->isChecked() ? 1 : 0);
setting->setCheckForNewMail(ui->gb_checknew->isChecked() ? 1 : 0);
setting->setCheckAfter(ui->sp_seconds_tocheck->value());
setting->setDisplayTray(ui->cb_trayicon->isChecked() ? 1 : 0);
setting->setDisplayNotify(ui->cb_notify->isChecked() ? 1 : 0);
}

void settingsDialog::on_cb_alwayswebview_clicked()
{
if (!displayonce)
{
QMessageBox::warning(this,\
"CuteMail - warning",\
"Note that webview might be 'no go' for privacy concerns."
"Still many mail used html to display content. This message appears only once.",\
QMessageBox::Ok
);

setting->setDisplayMessageOnce(1);
}
}

void settingsDialog::on_cb_automaticallywebview_clicked()
{
if (!displayonce)
{
QMessageBox::warning(this,\
"CuteMail - warning",\
"Note that webview might be 'no go' for privacy concerns."
"Still many mail used html to display content. This message appears only once.",\
QMessageBox::Ok
);

setting->setDisplayMessageOnce(1);
}
}

void settingsDialog::on_buttonBox_accepted()
{
writeSettings();
}

void settingsDialog::on_buttonBox_rejected()
{
this->close();
}
39 changes: 39 additions & 0 deletions src/ui/settingsdialog.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#ifndef SETTINGSDIALOG_H
#define SETTINGSDIALOG_H

#include <QDialog>
#include <QMessageBox>
#include <QDir>

#include "utils/settings.h"

namespace Ui { class settingsDialog; }

class settingsDialog : public QDialog
{
Q_OBJECT

public:
explicit settingsDialog(QWidget *parent = 0);
~settingsDialog();

private slots:
void on_cb_alwayswebview_clicked();

void on_cb_automaticallywebview_clicked();

void on_buttonBox_accepted();

void on_buttonBox_rejected();

private:
Ui::settingsDialog *ui;
settings *setting;

void readSettings();
void writeSettings();

bool displayonce;
};

#endif // SETTINGSDIALOG_H
Loading

0 comments on commit ef318e0

Please sign in to comment.