Replace MessageBox with MessageWidget in remaining classes.

Chnage to one method to set MessageWidget text passing type as
parameter.
Only messages with questions requiring user input reamin using
MessageBox dialog.
Use signal/slots to set message in MessageWidget and hide message,
signal/slots only used when required.Maybe need to change all calls to
signals/slots in the future.
This commit is contained in:
Pedro Alves 2015-01-21 16:19:05 +00:00 committed by Janek Bevendorff
parent c2826bb1af
commit 13c85cdfcb
No known key found for this signature in database
GPG key ID: CFEC2F6850BFFA53
20 changed files with 169 additions and 77 deletions

View file

@ -54,7 +54,7 @@ void ChangeMasterKeyWidget::createKeyFile()
QString errorMsg; QString errorMsg;
bool created = FileKey::create(fileName, &errorMsg); bool created = FileKey::create(fileName, &errorMsg);
if (!created) { if (!created) {
m_ui->messageWidget->showMessageError(tr("Unable to create Key File : ").append(errorMsg)); m_ui->messageWidget->showMessage(tr("Unable to create Key File : ").append(errorMsg), MessageWidget::Error);
} }
else { else {
m_ui->keyFileCombo->setEditText(fileName); m_ui->keyFileCombo->setEditText(fileName);
@ -112,7 +112,7 @@ void ChangeMasterKeyWidget::generateKey()
m_key.addKey(PasswordKey(m_ui->enterPasswordEdit->text())); m_key.addKey(PasswordKey(m_ui->enterPasswordEdit->text()));
} }
else { else {
m_ui->messageWidget->showMessageError(tr("Different passwords supplied.")); m_ui->messageWidget->showMessage(tr("Different passwords supplied."), MessageWidget::Error);
m_ui->enterPasswordEdit->setText(""); m_ui->enterPasswordEdit->setText("");
m_ui->repeatPasswordEdit->setText(""); m_ui->repeatPasswordEdit->setText("");
return; return;
@ -123,13 +123,14 @@ void ChangeMasterKeyWidget::generateKey()
QString errorMsg; QString errorMsg;
QString fileKeyName = m_ui->keyFileCombo->currentText(); QString fileKeyName = m_ui->keyFileCombo->currentText();
if (!fileKey.load(fileKeyName, &errorMsg)) { if (!fileKey.load(fileKeyName, &errorMsg)) {
m_ui->messageWidget->showMessageError( m_ui->messageWidget->showMessage(
tr("Failed to set %1 as the Key file:\n%2: ").arg(fileKeyName, errorMsg)); tr("Failed to set %1 as the Key file:\n%2").arg(fileKeyName, errorMsg), MessageWidget::Error);
return; return;
} }
m_key.addKey(fileKey); m_key.addKey(fileKey);
} }
m_ui->messageWidget->hideMessage();
Q_EMIT editFinished(true); Q_EMIT editFinished(true);
} }

View file

@ -108,8 +108,8 @@ void DatabaseOpenWidget::openDatabase()
QFile file(m_filename); QFile file(m_filename);
if (!file.open(QIODevice::ReadOnly)) { if (!file.open(QIODevice::ReadOnly)) {
m_ui->messageWidget->showMessageError( m_ui->messageWidget->showMessage(
tr("Unable to open the database.").append("\n").append(file.errorString())); tr("Unable to open the database.").append("\n").append(file.errorString()), MessageWidget::Error);
return; return;
} }
if (m_db) { if (m_db) {
@ -126,8 +126,8 @@ void DatabaseOpenWidget::openDatabase()
Q_EMIT editFinished(true); Q_EMIT editFinished(true);
} }
else { else {
m_ui->messageWidget->showMessageError(tr("Unable to open the database.") m_ui->messageWidget->showMessage(tr("Unable to open the database.")
.append("\n").append(reader.errorString())); .append("\n").append(reader.errorString()), MessageWidget::Error);
m_ui->editPassword->clear(); m_ui->editPassword->clear();
} }
} }
@ -147,7 +147,8 @@ CompositeKey DatabaseOpenWidget::databaseKey()
QString keyFilename = m_ui->comboKeyFile->currentText(); QString keyFilename = m_ui->comboKeyFile->currentText();
QString errorMsg; QString errorMsg;
if (!key.load(keyFilename, &errorMsg)) { if (!key.load(keyFilename, &errorMsg)) {
m_ui->messageWidget->showMessageError(tr("Can't open key file").append(":\n").append(errorMsg)); m_ui->messageWidget->showMessage(tr("Can't open key file").append(":\n")
.append(errorMsg), MessageWidget::Error);
return CompositeKey(); return CompositeKey();
} }
masterKey.addKey(key); masterKey.addKey(key);

View file

@ -116,7 +116,7 @@ void DatabaseTabWidget::openDatabase(const QString& fileName, const QString& pw,
QFileInfo fileInfo(fileName); QFileInfo fileInfo(fileName);
QString canonicalFilePath = fileInfo.canonicalFilePath(); QString canonicalFilePath = fileInfo.canonicalFilePath();
if (canonicalFilePath.isEmpty()) { if (canonicalFilePath.isEmpty()) {
MessageBox::warning(this, tr("Warning"), tr("File not found!")); Q_EMIT messageGlobal(tr("File not found!"), MessageWidget::Error);
return; return;
} }
@ -136,8 +136,9 @@ void DatabaseTabWidget::openDatabase(const QString& fileName, const QString& pw,
QFile file(fileName); QFile file(fileName);
if (!file.open(QIODevice::ReadWrite)) { if (!file.open(QIODevice::ReadWrite)) {
if (!file.open(QIODevice::ReadOnly)) { if (!file.open(QIODevice::ReadOnly)) {
MessageBox::warning(this, tr("Error"), tr("Unable to open the database.").append("\n") // can't open
.append(file.errorString())); Q_EMIT messageGlobal(
tr("Unable to open the database.").append("\n").append(file.errorString()), MessageWidget::Error);
return; return;
} }
else { else {
@ -184,6 +185,10 @@ void DatabaseTabWidget::openDatabase(const QString& fileName, const QString& pw,
insertDatabase(db, dbStruct); insertDatabase(db, dbStruct);
if (dbStruct.readOnly) {
Q_EMIT messageTab(tr("File opened in read only mode."), MessageWidget::Warning);
}
updateLastDatabases(dbStruct.filePath); updateLastDatabases(dbStruct.filePath);
if (!pw.isNull() || !keyFile.isEmpty()) { if (!pw.isNull() || !keyFile.isEmpty()) {
@ -192,6 +197,7 @@ void DatabaseTabWidget::openDatabase(const QString& fileName, const QString& pw,
else { else {
dbStruct.dbWidget->switchToOpenDatabase(dbStruct.filePath); dbStruct.dbWidget->switchToOpenDatabase(dbStruct.filePath);
} }
Q_EMIT messageDismissGlobal();
} }
void DatabaseTabWidget::mergeDatabase() void DatabaseTabWidget::mergeDatabase()
@ -332,6 +338,7 @@ bool DatabaseTabWidget::saveDatabase(Database* db)
dbStruct.modified = false; dbStruct.modified = false;
dbStruct.dbWidget->databaseSaved(); dbStruct.dbWidget->databaseSaved();
updateTabName(db); updateTabName(db);
Q_EMIT messageDismissTab();
return true; return true;
} }
else { else {
@ -341,8 +348,8 @@ bool DatabaseTabWidget::saveDatabase(Database* db)
} }
} }
else { else {
MessageBox::critical(this, tr("Error"), tr("Writing the database failed.") + "\n\n" Q_EMIT messageTab(tr("Writing the database failed.\n")
+ saveFile.errorString()); .append("\n").append(saveFile.errorString()), MessageWidget::Error);
return false; return false;
} }
} }
@ -486,8 +493,9 @@ void DatabaseTabWidget::exportToCsv()
CsvExporter csvExporter; CsvExporter csvExporter;
if (!csvExporter.exportDatabase(fileName, db)) { if (!csvExporter.exportDatabase(fileName, db)) {
MessageBox::critical(this, tr("Error"), tr("Writing the CSV file failed.") + "\n\n" Q_EMIT messageGlobal(
+ csvExporter.errorString()); tr("Writing the CSV file failed.").append("\n\n")
.append(csvExporter.errorString()), MessageWidget::Error);
} }
} }

View file

@ -23,12 +23,14 @@
#include "format/KeePass2Writer.h" #include "format/KeePass2Writer.h"
#include "gui/DatabaseWidget.h" #include "gui/DatabaseWidget.h"
#include "gui/MessageWidget.h"
class DatabaseWidget; class DatabaseWidget;
class DatabaseWidgetStateSync; class DatabaseWidgetStateSync;
class DatabaseOpenWidget; class DatabaseOpenWidget;
class QFile; class QFile;
class QLockFile; class QLockFile;
class MessageWidget;
struct DatabaseManagerStruct struct DatabaseManagerStruct
{ {
@ -84,6 +86,10 @@ Q_SIGNALS:
void activateDatabaseChanged(DatabaseWidget* dbWidget); void activateDatabaseChanged(DatabaseWidget* dbWidget);
void databaseLocked(DatabaseWidget* dbWidget); void databaseLocked(DatabaseWidget* dbWidget);
void databaseUnlocked(DatabaseWidget* dbWidget); void databaseUnlocked(DatabaseWidget* dbWidget);
void messageGlobal(const QString&, MessageWidget::MessageType type);
void messageTab(const QString&, MessageWidget::MessageType type);
void messageDismissGlobal();
void messageDismissTab();
private Q_SLOTS: private Q_SLOTS:
void updateTabName(Database* db); void updateTabName(Database* db);

View file

@ -60,7 +60,14 @@ DatabaseWidget::DatabaseWidget(Database* db, QWidget* parent)
, m_newParent(nullptr) , m_newParent(nullptr)
{ {
m_mainWidget = new QWidget(this); m_mainWidget = new QWidget(this);
QLayout* layout = new QHBoxLayout(m_mainWidget);
m_messageWidget = new MessageWidget(this);
m_messageWidget->setHidden(true);
QVBoxLayout* mainLayout = new QVBoxLayout();
QLayout* layout = new QHBoxLayout();
mainLayout->addWidget(m_messageWidget);
mainLayout->addLayout(layout);
m_splitter = new QSplitter(m_mainWidget); m_splitter = new QSplitter(m_mainWidget);
m_splitter->setChildrenCollapsible(false); m_splitter->setChildrenCollapsible(false);
@ -105,7 +112,7 @@ DatabaseWidget::DatabaseWidget(Database* db, QWidget* parent)
m_splitter->setStretchFactor(1, 70); m_splitter->setStretchFactor(1, 70);
layout->addWidget(m_splitter); layout->addWidget(m_splitter);
m_mainWidget->setLayout(layout); m_mainWidget->setLayout(mainLayout);
m_editEntryWidget = new EditEntryWidget(); m_editEntryWidget = new EditEntryWidget();
m_editEntryWidget->setObjectName("editEntryWidget"); m_editEntryWidget->setObjectName("editEntryWidget");
@ -1220,3 +1227,15 @@ void DatabaseWidget::closeUnlockDialog()
{ {
m_unlockDatabaseDialog->close(); m_unlockDatabaseDialog->close();
} }
void DatabaseWidget::showMessage(const QString& text, MessageWidget::MessageType type)
{
m_messageWidget->showMessage(text, type);
}
void DatabaseWidget::hideMessage()
{
if (m_messageWidget->isVisible()) {
m_messageWidget->animatedHide();
}
}

View file

@ -26,6 +26,7 @@
#include "core/Uuid.h" #include "core/Uuid.h"
#include "gui/entry/EntryModel.h" #include "gui/entry/EntryModel.h"
#include "gui/MessageWidget.h"
class ChangeMasterKeyWidget; class ChangeMasterKeyWidget;
class DatabaseOpenWidget; class DatabaseOpenWidget;
@ -43,9 +44,14 @@ class QMenu;
class QSplitter; class QSplitter;
class QLabel; class QLabel;
class UnlockDatabaseWidget; class UnlockDatabaseWidget;
class MessageWidget;
class UnlockDatabaseDialog; class UnlockDatabaseDialog;
class QFileSystemWatcher; class QFileSystemWatcher;
namespace Ui {
class SearchWidget;
}
class DatabaseWidget : public QStackedWidget class DatabaseWidget : public QStackedWidget
{ {
Q_OBJECT Q_OBJECT
@ -145,6 +151,8 @@ public Q_SLOTS:
void search(const QString& searchtext); void search(const QString& searchtext);
void setSearchCaseSensitive(bool state); void setSearchCaseSensitive(bool state);
void endSearch(); void endSearch();
void showMessage(const QString& text, MessageWidget::MessageType type);
void hideMessage();
private Q_SLOTS: private Q_SLOTS:
void entryActivationSignalReceived(Entry* entry, EntryModel::ModelColumn column); void entryActivationSignalReceived(Entry* entry, EntryModel::ModelColumn column);
@ -192,6 +200,7 @@ private:
QString m_filename; QString m_filename;
Uuid m_groupBeforeLock; Uuid m_groupBeforeLock;
Uuid m_entryBeforeLock; Uuid m_entryBeforeLock;
MessageWidget* m_messageWidget;
// Search state // Search state
QString m_lastSearchText; QString m_lastSearchText;

View file

@ -149,3 +149,4 @@ QVariant DatabaseWidgetStateSync::intListToVariant(const QList<int>& list)
return result; return result;
} }

View file

@ -89,19 +89,9 @@ bool EditWidget::readOnly() const
return m_readOnly; return m_readOnly;
} }
void EditWidget::showMessageError(const QString& text) void EditWidget::showMessage(const QString& text, MessageWidget::MessageType type)
{ {
m_ui->messageWidget->showMessageError(text); m_ui->messageWidget->showMessage(text, type);
}
void EditWidget::showMessageWarning(const QString& text)
{
m_ui->messageWidget->showMessageWarning(text);
}
void EditWidget::showMessageInformation(const QString& text)
{
m_ui->messageWidget->showMessageInformation(text);
} }
void EditWidget::hideMessage() void EditWidget::hideMessage()

View file

@ -21,6 +21,7 @@
#include <QScopedPointer> #include <QScopedPointer>
#include "gui/DialogyWidget.h" #include "gui/DialogyWidget.h"
#include "gui/MessageWidget.h"
class QLabel; class QLabel;
@ -48,10 +49,8 @@ Q_SIGNALS:
void accepted(); void accepted();
void rejected(); void rejected();
protected: protected Q_SLOTS:
void showMessageError(const QString& text); void showMessage(const QString& text, MessageWidget::MessageType type);
void showMessageWarning(const QString& text);
void showMessageInformation(const QString& text);
void hideMessage(); void hideMessage();
private: private:

View file

@ -248,7 +248,7 @@ void EditWidgetIcons::addCustomIcon()
m_ui->customIconsView->setCurrentIndex(index); m_ui->customIconsView->setCurrentIndex(index);
} }
else { else {
MessageBox::critical(this, tr("Error"), tr("Can't read icon")); Q_EMIT messageEditEntry(tr("Can't read icon"), MessageWidget::Error);
} }
} }
} }
@ -302,9 +302,8 @@ void EditWidgetIcons::removeCustomIcon()
} }
} }
else { else {
MessageBox::information(this, tr("Can't delete icon!"), Q_EMIT messageEditEntry(
tr("Can't delete icon. Still used by %1 items.") tr("Can't delete icon. Still used by %1 items.").arg(iconUsedCount), MessageWidget::Error);
.arg(iconUsedCount));
} }
} }
} }

View file

@ -26,6 +26,7 @@
#include "core/Global.h" #include "core/Global.h"
#include "core/Uuid.h" #include "core/Uuid.h"
#include "gui/MessageWidget.h"
class Database; class Database;
class DefaultIconModel; class DefaultIconModel;
@ -58,6 +59,10 @@ public:
public Q_SLOTS: public Q_SLOTS:
void setUrl(const QString &url); void setUrl(const QString &url);
Q_SIGNALS:
void messageEditEntry(QString, MessageWidget::MessageType);
void messageEditEntryDismiss();
private Q_SLOTS: private Q_SLOTS:
void downloadFavicon(); void downloadFavicon();
void fetchFavicon(QUrl url); void fetchFavicon(QUrl url);

View file

@ -65,8 +65,9 @@ void KeePass1OpenWidget::openDatabase()
Q_EMIT editFinished(true); Q_EMIT editFinished(true);
} }
else { else {
MessageBox::warning(this, tr("Error"), tr("Unable to open the database.").append("\n") m_ui->messageWidget->showMessage(tr("Unable to open the database.").append("\n")
.append(reader.errorString())); .append(reader.errorString()), MessageWidget::Error);
m_ui->editPassword->clear(); m_ui->editPassword->clear();
} }
} }

View file

@ -104,6 +104,7 @@ MainWindow::MainWindow()
#endif #endif
setWindowIcon(filePath()->applicationIcon()); setWindowIcon(filePath()->applicationIcon());
m_ui->globalMessageWidget->setHidden(true);
QAction* toggleViewAction = m_ui->toolBar->toggleViewAction(); QAction* toggleViewAction = m_ui->toolBar->toggleViewAction();
toggleViewAction->setText(tr("Show toolbar")); toggleViewAction->setText(tr("Show toolbar"));
m_ui->menuView->addAction(toggleViewAction); m_ui->menuView->addAction(toggleViewAction);
@ -277,6 +278,11 @@ MainWindow::MainWindow()
connect(m_ui->actionAbout, SIGNAL(triggered()), SLOT(showAboutDialog())); connect(m_ui->actionAbout, SIGNAL(triggered()), SLOT(showAboutDialog()));
connect(m_ui->tabWidget, SIGNAL(messageGlobal(QString,MessageWidget::MessageType)), this, SLOT(displayGlobalMessage(QString, MessageWidget::MessageType)));
connect(m_ui->tabWidget, SIGNAL(messageDismissGlobal()), this, SLOT(hideGlobalMessage()));
connect(m_ui->tabWidget, SIGNAL(messageTab(QString,MessageWidget::MessageType)), this, SLOT(displayTabMessage(QString, MessageWidget::MessageType)));
connect(m_ui->tabWidget, SIGNAL(messageDismissTab()), this, SLOT(hideTabMessage()));
updateTrayIcon(); updateTrayIcon();
} }
@ -787,3 +793,28 @@ bool MainWindow::isTrayIconEnabled() const
&& QSystemTrayIcon::isSystemTrayAvailable(); && QSystemTrayIcon::isSystemTrayAvailable();
#endif #endif
} }
void MainWindow::displayGlobalMessage(const QString& text, MessageWidget::MessageType type)
{
m_ui->globalMessageWidget->showMessage(text, type);
}
void MainWindow::displayTabMessage(const QString& text, MessageWidget::MessageType type)
{
//if (m_ui->stackedWidget->currentIndex() == 0) {
m_ui->tabWidget->currentDatabaseWidget()->showMessage(text, type);
//}
}
void MainWindow::hideGlobalMessage()
{
m_ui->globalMessageWidget->hideMessage();
}
void MainWindow::hideTabMessage()
{
if (m_ui->stackedWidget->currentIndex() == 0) {
m_ui->tabWidget->currentDatabaseWidget()->hideMessage();
}
}

View file

@ -71,6 +71,10 @@ private Q_SLOTS:
void toggleWindow(); void toggleWindow();
void lockDatabasesAfterInactivity(); void lockDatabasesAfterInactivity();
void repairDatabase(); void repairDatabase();
void displayGlobalMessage(const QString& text, MessageWidget::MessageType type);
void displayTabMessage(const QString& text, MessageWidget::MessageType type);
void hideGlobalMessage();
void hideTabMessage();
private: private:
static void setShortcut(QAction* action, QKeySequence::StandardKey standard, int fallback = 0); static void setShortcut(QAction* action, QKeySequence::StandardKey standard, int fallback = 0);

View file

@ -2,6 +2,9 @@
<ui version="4.0"> <ui version="4.0">
<class>MainWindow</class> <class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow"> <widget class="QMainWindow" name="MainWindow">
<property name="enabled">
<bool>true</bool>
</property>
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>
@ -14,6 +17,9 @@
<string notr="true">KeePassXC</string> <string notr="true">KeePassXC</string>
</property> </property>
<widget class="QWidget" name="centralwidget"> <widget class="QWidget" name="centralwidget">
<property name="enabled">
<bool>true</bool>
</property>
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">
<property name="leftMargin"> <property name="leftMargin">
<number>0</number> <number>0</number>
@ -27,8 +33,24 @@
<property name="bottomMargin"> <property name="bottomMargin">
<number>0</number> <number>0</number>
</property> </property>
<item>
<widget class="MessageWidget" name="globalMessageWidget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item> <item>
<widget class="QStackedWidget" name="stackedWidget"> <widget class="QStackedWidget" name="stackedWidget">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="currentIndex"> <property name="currentIndex">
<number>2</number> <number>2</number>
</property> </property>
@ -104,7 +126,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>800</width> <width>800</width>
<height>26</height> <height>29</height>
</rect> </rect>
</property> </property>
<widget class="QMenu" name="menuFile"> <widget class="QMenu" name="menuFile">
@ -452,6 +474,12 @@
</action> </action>
</widget> </widget>
<customwidgets> <customwidgets>
<customwidget>
<class>MessageWidget</class>
<extends>QWidget</extends>
<header>gui/MessageWidget.h</header>
<container>1</container>
</customwidget>
<customwidget> <customwidget>
<class>DatabaseTabWidget</class> <class>DatabaseTabWidget</class>
<extends>QTabWidget</extends> <extends>QTabWidget</extends>

View file

@ -23,32 +23,14 @@ MessageWidget::MessageWidget(QWidget* parent)
} }
void MessageWidget::showMessageError(const QString& text) void MessageWidget::showMessage(const QString& text, MessageWidget::MessageType type)
{
showMessage(text, MessageType::Error);
}
void MessageWidget::showMessageWarning(const QString& text)
{
showMessage(text, MessageType::Warning);
}
void MessageWidget::showMessageInformation(const QString& text)
{
showMessage(text, MessageType::Information);
}
void MessageWidget::showMessagePositive(const QString& text)
{
showMessage(text, MessageType::Positive);
}
void MessageWidget::showMessage(const QString& text, MessageType type)
{ {
setMessageType(type); setMessageType(type);
setText(text); setText(text);
animatedShow(); animatedShow();
} }
void MessageWidget::hideMessage()
{
animatedHide();
}

View file

@ -7,15 +7,15 @@
class MessageWidget : public KMessageWidget class MessageWidget : public KMessageWidget
{ {
Q_OBJECT
public: public:
explicit MessageWidget(QWidget* parent = 0); explicit MessageWidget(QWidget* parent = 0);
void showMessageError(const QString& text);
void showMessageWarning(const QString& text);
void showMessageInformation(const QString& text);
void showMessagePositive(const QString& text);
private: public Q_SLOTS:
void showMessage(const QString& text, MessageType type); void showMessage(const QString& text, MessageWidget::MessageType type);
void hideMessage();
}; };
#endif // MESSAGEWIDGET_H #endif // MESSAGEWIDGET_H

View file

@ -77,6 +77,9 @@ EditEntryWidget::EditEntryWidget(QWidget* parent)
connect(this, SIGNAL(accepted()), SLOT(saveEntry())); connect(this, SIGNAL(accepted()), SLOT(saveEntry()));
connect(this, SIGNAL(rejected()), SLOT(cancel())); connect(this, SIGNAL(rejected()), SLOT(cancel()));
connect(m_iconsWidget, SIGNAL(messageEditEntry(QString, MessageWidget::MessageType)), SLOT(showMessage(QString, MessageWidget::MessageType)));
connect(m_iconsWidget, SIGNAL(messageEditEntryDismiss()), SLOT(hideMessage()));
} }
EditEntryWidget::~EditEntryWidget() EditEntryWidget::~EditEntryWidget()
@ -401,7 +404,7 @@ void EditEntryWidget::saveEntry()
} }
if (!passwordsEqual()) { if (!passwordsEqual()) {
showMessageError(tr("Different passwords supplied.")); showMessage(tr("Different passwords supplied."), MessageWidget::Error);
return; return;
} }
@ -633,13 +636,13 @@ void EditEntryWidget::insertAttachment()
QFile file(filename); QFile file(filename);
if (!file.open(QIODevice::ReadOnly)) { if (!file.open(QIODevice::ReadOnly)) {
showMessageError(tr("Unable to open file").append(":\n").append(file.errorString())); showMessage(tr("Unable to open file").append(":\n").append(file.errorString()), MessageWidget::Error);
return; return;
} }
QByteArray data; QByteArray data;
if (!Tools::readAllFromDevice(&file, data)) { if (!Tools::readAllFromDevice(&file, data)) {
showMessageError(tr("Unable to open file").append(":\n").append(file.errorString())); showMessage(tr("Unable to open file").append(":\n").append(file.errorString()), MessageWidget::Error);
return; return;
} }
@ -666,11 +669,11 @@ void EditEntryWidget::saveCurrentAttachment()
QFile file(savePath); QFile file(savePath);
if (!file.open(QIODevice::WriteOnly)) { if (!file.open(QIODevice::WriteOnly)) {
showMessageError(tr("Unable to save the attachment:\n").append(file.errorString())); showMessage(tr("Unable to save the attachment:\n").append(file.errorString()), MessageWidget::Error);
return; return;
} }
if (file.write(attachmentData) != attachmentData.size()) { if (file.write(attachmentData) != attachmentData.size()) {
showMessageError(tr("Unable to save the attachment:\n").append(file.errorString())); showMessage(tr("Unable to save the attachment:\n").append(file.errorString()), MessageWidget::Error);
return; return;
} }
} }
@ -691,12 +694,12 @@ void EditEntryWidget::openAttachment(const QModelIndex& index)
QTemporaryFile* file = new QTemporaryFile(tmpFileTemplate, this); QTemporaryFile* file = new QTemporaryFile(tmpFileTemplate, this);
if (!file->open()) { if (!file->open()) {
showMessageError(tr("Unable to save the attachment:\n").append(file->errorString())); showMessage(tr("Unable to save the attachment:\n").append(file->errorString()), MessageWidget::Error);
return; return;
} }
if (file->write(attachmentData) != attachmentData.size()) { if (file->write(attachmentData) != attachmentData.size()) {
showMessageError(tr("Unable to save the attachment:\n").append(file->errorString())); showMessage(tr("Unable to save the attachment:\n").append(file->errorString()), MessageWidget::Error);
return; return;
} }

View file

@ -43,6 +43,9 @@ EditGroupWidget::EditGroupWidget(QWidget* parent)
connect(this, SIGNAL(accepted()), SLOT(save())); connect(this, SIGNAL(accepted()), SLOT(save()));
connect(this, SIGNAL(rejected()), SLOT(cancel())); connect(this, SIGNAL(rejected()), SLOT(cancel()));
connect(m_editGroupWidgetIcons, SIGNAL(messageEditEntry(QString, MessageWidget::MessageType)), SLOT(showMessage(QString, MessageWidget::MessageType)));
connect(m_editGroupWidgetIcons, SIGNAL(messageEditEntryDismiss()), SLOT(hideMessage()));
} }
EditGroupWidget::~EditGroupWidget() EditGroupWidget::~EditGroupWidget()

View file

@ -45,6 +45,8 @@ public:
Q_SIGNALS: Q_SIGNALS:
void editFinished(bool accepted); void editFinished(bool accepted);
void messageEditEntry(QString, MessageWidget::MessageType);
void messageEditEntryDismiss();
private Q_SLOTS: private Q_SLOTS:
void save(); void save();