diff options
author | deva <deva> | 2009-03-18 13:21:45 +0000 |
---|---|---|
committer | deva <deva> | 2009-03-18 13:21:45 +0000 |
commit | 4696bba0897715cb79eb75fcb14169964e1562e2 (patch) | |
tree | 8b8da13a89f2b980e8f25cf7eb36086de34b039d | |
parent | 838fbd870b3ce51fb6a7d8994d3d08f8ab65559c (diff) |
Made a messagebox wrapper that does the button translation.
-rw-r--r-- | client/client.pro | 4 | ||||
-rw-r--r-- | client/macrowindow.cc | 35 | ||||
-rw-r--r-- | client/messagebox.cc | 153 | ||||
-rw-r--r-- | client/messagebox.h | 50 | ||||
-rw-r--r-- | client/pracro_dk.ts | 105 | ||||
-rw-r--r-- | client/widgets/metawidget.cc | 6 | ||||
-rw-r--r-- | client/widgets/multilist.cc | 17 |
7 files changed, 342 insertions, 28 deletions
diff --git a/client/client.pro b/client/client.pro index 6df6c3f..1faa111 100644 --- a/client/client.pro +++ b/client/client.pro @@ -29,6 +29,7 @@ HEADERS += \ macrowindow.h \ mainwindow.h \ macrodrawer.h \ + messagebox.h \ netcom.h \ resumewidget.h \ widgetbuilder.h \ @@ -61,6 +62,7 @@ SOURCES += \ macrowindow.cc \ mainwindow.cc \ macrodrawer.cc \ + messagebox.cc \ netcom.cc \ resumewidget.cc \ widgetbuilder.cc \ @@ -83,3 +85,5 @@ SOURCES += \ widgets/window.cc \ widgets/altcombobox.cc \ widgets/metawidget.cc + +TRANSLATIONS=pracro_dk.ts
\ No newline at end of file diff --git a/client/macrowindow.cc b/client/macrowindow.cc index 6beba85..80649a7 100644 --- a/client/macrowindow.cc +++ b/client/macrowindow.cc @@ -27,12 +27,13 @@ #include "macrowindow.h" #include <QVBoxLayout> -#include <QMessageBox> #include <QDomDocument> #include <QDomElement> #include <QDomNode> #include <QByteArray> +#include "messagebox.h" + #include "widgets/widget.h" #include "widgets/window.h" #include "widgetbuilder.h" @@ -168,19 +169,19 @@ void MacroWindow::commit() if(doCommit()) { // close(); } else { - QMessageBox::critical(NULL, "Fejl", - "Makroen " + macrotitle + " er ikke udfyldt korrekt, prøv igen.\n" - , QMessageBox::Ok); + MessageBox::critical(NULL, "Fejl", + "Makroen " + macrotitle + " er ikke udfyldt korrekt, prøv igen.\n", + MessageBox::Ok); } } void MacroWindow::reset() { /* - QMessageBox::warning(NULL, tr("Reset"), + MessageBox::warning(NULL, tr("Reset"), tr("Du har valgt at nulstille de indtastede data.\n" "Er du sikker?"), - QMessageBox::Yes | QMessageBox::Cancel); + MessageBox::Yes | MessageBox::Cancel); printf("MacroWindow -> resetting...\n"); */ QVector< Widget* >::iterator i = widgets.begin(); @@ -225,9 +226,9 @@ void MacroWindow::cont(QString name) // new_macro("example", macro); // close(); } else { - QMessageBox::critical(NULL, "Fejl", + MessageBox::critical(NULL, "Fejl", "Makroen " + macrotitle + " er ikke udfyldt korrekt, prøv igen.\n", - QMessageBox::Ok); + MessageBox::Ok); } printf("%s : MacroWindow -> continuing...\n", macro.toStdString().c_str()); } @@ -252,9 +253,9 @@ void MacroWindow::cont_nocommit(QString name) // new_macro("example", macro); // close(); } else { - QMessageBox::critical(NULL, "Fejl", + MessageBox::critical(NULL, "Fejl", "Makroen " + macrotitle + " er ikke udfyldt korrekt, prøv igen.\n", - QMessageBox::Ok); + MessageBox::Ok); } printf("%s : MacroWindow -> continuing...\n", macro.toStdString().c_str()); } @@ -351,23 +352,23 @@ void MacroWindow::collapseWrapper() if(isCollapsed()) return; if(waschanged) { - switch(QMessageBox::warning(NULL, + switch(MessageBox::warning(NULL, "Gem ændringerne i makroen?", "Du har valgt at lukke makroen " + macrotitle + ".\n" "Ønsker du at gemme inden du lukker?", - QMessageBox::Save | QMessageBox::Close | QMessageBox::Cancel)) { - case QMessageBox::Save: + MessageBox::Save | MessageBox::Close | MessageBox::Cancel)) { + case MessageBox::Save: if(doCommit()) setCollapsed(true); - else QMessageBox::critical(NULL, + else MessageBox::critical(NULL, "Fejl", "Makroen " + macrotitle + " er ikke udfyldt korrekt, prøv igen.\n", - QMessageBox::Ok); + MessageBox::Ok); break; - case QMessageBox::Close: + case MessageBox::Close: collapse(); break; - case QMessageBox::Cancel: + case MessageBox::Cancel: default: // emit expanding(); // signal the other to close again (if any) break; diff --git a/client/messagebox.cc b/client/messagebox.cc new file mode 100644 index 0000000..902d2fd --- /dev/null +++ b/client/messagebox.cc @@ -0,0 +1,153 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set et sw=2 ts=2: */ +/*************************************************************************** + * messagebox.cc + * + * Wed Mar 18 13:33:05 CET 2009 + * Copyright 2009 Bent Bisballe Nyeng + * deva@aasimon.org + ****************************************************************************/ + +/* + * This file is part of Pracro. + * + * Pracro is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Pracro is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Pracro; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ +#include "messagebox.h" + +#include <QDialogButtonBox> +#include <QPushButton> +/* + QString p = tr("KEY", "default vaerdi"); + printf("\n\n\n#######################\n%s\n\n\n", p.toStdString().c_str()); +*/ + +static MessageBox::StandardButton showNewMessageBox(QWidget *parent, + MessageBox::Icon icon, + const QString& title, const QString& text, + MessageBox::StandardButtons buttons, + MessageBox::StandardButton defaultButton) +{ + QMessageBox msgBox(icon, title, text, MessageBox::NoButton, parent); + QDialogButtonBox *buttonBox = qFindChild<QDialogButtonBox*>(&msgBox); + Q_ASSERT(buttonBox != 0); + + uint mask = MessageBox::FirstButton; + while(mask <= MessageBox::LastButton) { + uint sb = buttons & mask; + mask <<= 1; + + if(!sb) continue; + + QPushButton *button = msgBox.addButton((MessageBox::StandardButton)sb); + + switch(sb) { + case MessageBox::Ok: // An "OK" button defined with the AcceptRole. + button->setText(QObject::tr("Ok")); + break; + case MessageBox::Open: // A "Open" button defined with the AcceptRole. + button->setText(QObject::tr("Open")); + break; + case MessageBox::Save: // A "Save" button defined with the AcceptRole. + button->setText(QObject::tr("Save")); + break; + case MessageBox::Cancel: // A "Cancel" button defined with the RejectRole. + button->setText(QObject::tr("Cancel")); + break; + case MessageBox::Close: // A "Close" button defined with the RejectRole. + button->setText(QObject::tr("Close")); + break; + case MessageBox::Discard: // A "Discard" or "Don't Save" button, depending on the platform, defined with the DestructiveRole. + button->setText(QObject::tr("Discard")); + break; + case MessageBox::Apply: // An "Apply" button defined with the ApplyRole. + button->setText(QObject::tr("Apply")); + break; + case MessageBox::Reset: // A "Reset" button defined with the ResetRole. + button->setText(QObject::tr("Reset")); + break; + case MessageBox::RestoreDefaults: // A "Restore Defaults" button defined with the ResetRole. + button->setText(QObject::tr("Restore Defaults")); + break; + case MessageBox::Help: // A "Help" button defined with the HelpRole. + button->setText(QObject::tr("Help")); + break; + case MessageBox::SaveAll: // A "Save All" button defined with the AcceptRole. + button->setText(QObject::tr("Save All")); + break; + case MessageBox::Yes: // A "Yes" button defined with the YesRole. + button->setText(QObject::tr("Yes")); + break; + case MessageBox::YesToAll: // A "Yes to All" button defined with the YesRole. + button->setText(QObject::tr("Yes To All")); + break; + case MessageBox::No: // A "No" button defined with the NoRole. + button->setText(QObject::tr("No")); + break; + case MessageBox::NoToAll: // A "No to All" button defined with the NoRole. + button->setText(QObject::tr("No To All")); + break; + case MessageBox::Abort: // An "Abort" button defined with the RejectRole. + button->setText(QObject::tr("Abort")); + break; + case MessageBox::Retry: // A "Retry" button defined with the AcceptRole. + button->setText(QObject::tr("Retry")); + break; + case MessageBox::Ignore: // An "Ignore" button defined with the AcceptRole. + button->setText(QObject::tr("Ignore")); + break; + case MessageBox::NoButton: // An invalid button. + break; + } + + // Choose the first accept role as the default + if(msgBox.defaultButton()) continue; + if((defaultButton == MessageBox::NoButton + && buttonBox->buttonRole(button) == QDialogButtonBox::AcceptRole) + || (defaultButton != MessageBox::NoButton && sb == uint(defaultButton))) + msgBox.setDefaultButton(button); + } + + if (msgBox.exec() == -1) return MessageBox::Cancel; + + return msgBox.standardButton(msgBox.clickedButton()); +} + +MessageBox::StandardButton MessageBox::information(QWidget *parent, const QString &title, + const QString& text, StandardButtons buttons, + StandardButton defaultButton) +{ + return showNewMessageBox(parent, Information, title, text, buttons, defaultButton); +} + +MessageBox::StandardButton MessageBox::question(QWidget *parent, const QString &title, + const QString& text, StandardButtons buttons, + StandardButton defaultButton) +{ + return showNewMessageBox(parent, Question, title, text, buttons, defaultButton); +} +MessageBox::StandardButton MessageBox::warning(QWidget *parent, const QString &title, + const QString& text, StandardButtons buttons, + StandardButton defaultButton) +{ + return showNewMessageBox(parent, Warning, title, text, buttons, defaultButton); +} + +MessageBox::StandardButton MessageBox::critical(QWidget *parent, const QString &title, + const QString& text, StandardButtons buttons, + StandardButton defaultButton) +{ + return showNewMessageBox(parent, Critical, title, text, buttons, defaultButton); +} diff --git a/client/messagebox.h b/client/messagebox.h new file mode 100644 index 0000000..2987c65 --- /dev/null +++ b/client/messagebox.h @@ -0,0 +1,50 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set et sw=2 ts=2: */ +/*************************************************************************** + * messagebox.h + * + * Wed Mar 18 13:33:05 CET 2009 + * Copyright 2009 Bent Bisballe Nyeng + * deva@aasimon.org + ****************************************************************************/ + +/* + * This file is part of Pracro. + * + * Pracro is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Pracro is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Pracro; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ +#ifndef __PRACRO_MESSAGEBOX_H__ +#define __PRACRO_MESSAGEBOX_H__ + +#include <QMessageBox> + +class MessageBox : public QMessageBox +{ +public: + static StandardButton information(QWidget *parent, const QString &title, + const QString &text, StandardButtons buttons = Ok, + StandardButton defaultButton = NoButton); + static StandardButton question(QWidget *parent, const QString &title, + const QString &text, StandardButtons buttons = Ok, + StandardButton defaultButton = NoButton); + static StandardButton warning(QWidget *parent, const QString &title, + const QString &text, StandardButtons buttons = Ok, + StandardButton defaultButton = NoButton); + static StandardButton critical(QWidget *parent, const QString &title, + const QString &text, StandardButtons buttons = Ok, + StandardButton defaultButton = NoButton); +}; + +#endif/*__PRACRO_MESSAGEBOX_H__*/ diff --git a/client/pracro_dk.ts b/client/pracro_dk.ts new file mode 100644 index 0000000..d2d5698 --- /dev/null +++ b/client/pracro_dk.ts @@ -0,0 +1,105 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS><TS version="1.1"> +<defaultcodec></defaultcodec> +<context> + <name>ComboBox</name> + <message> + <location filename="widgets/combobox.cc" line="82"/> + <source>goddaws do</source> + <translation type="obsolete">weeee</translation> + </message> +</context> +<context> + <name>QObject</name> + <message> + <location filename="messagebox.cc" line="57"/> + <source>Ok</source> + <translation type="unfinished">Ok</translation> + </message> + <message> + <location filename="messagebox.cc" line="60"/> + <source>Open</source> + <translation type="unfinished">Ã…bn</translation> + </message> + <message> + <location filename="messagebox.cc" line="63"/> + <source>Save</source> + <translation type="unfinished">Gem</translation> + </message> + <message> + <location filename="messagebox.cc" line="66"/> + <source>Cancel</source> + <translation type="unfinished">Annullér</translation> + </message> + <message> + <location filename="messagebox.cc" line="69"/> + <source>Close</source> + <translation type="unfinished">Luk</translation> + </message> + <message> + <location filename="messagebox.cc" line="72"/> + <source>Discard</source> + <translation type="unfinished">Kassér</translation> + </message> + <message> + <location filename="messagebox.cc" line="75"/> + <source>Apply</source> + <translation type="unfinished">Tag i brug</translation> + </message> + <message> + <location filename="messagebox.cc" line="78"/> + <source>Reset</source> + <translation type="unfinished">Nulstil</translation> + </message> + <message> + <location filename="messagebox.cc" line="81"/> + <source>Restore Defaults</source> + <translation type="unfinished">Genopret default</translation> + </message> + <message> + <location filename="messagebox.cc" line="84"/> + <source>Help</source> + <translation type="unfinished">Hjælp</translation> + </message> + <message> + <location filename="messagebox.cc" line="87"/> + <source>Save All</source> + <translation type="unfinished">Gem alle</translation> + </message> + <message> + <location filename="messagebox.cc" line="90"/> + <source>Yes</source> + <translation type="unfinished">Ja</translation> + </message> + <message> + <location filename="messagebox.cc" line="93"/> + <source>Yes To All</source> + <translation type="unfinished">Ja til alle</translation> + </message> + <message> + <location filename="messagebox.cc" line="96"/> + <source>No</source> + <translation type="unfinished">Nej</translation> + </message> + <message> + <location filename="messagebox.cc" line="99"/> + <source>No To All</source> + <translation type="unfinished">Nej til alle</translation> + </message> + <message> + <location filename="messagebox.cc" line="102"/> + <source>Abort</source> + <translation type="unfinished">Afbryd</translation> + </message> + <message> + <location filename="messagebox.cc" line="105"/> + <source>Retry</source> + <translation type="unfinished">Prøv igen</translation> + </message> + <message> + <location filename="messagebox.cc" line="108"/> + <source>Ignore</source> + <translation type="unfinished">Ignorér</translation> + </message> +</context> +</TS> diff --git a/client/widgets/metawidget.cc b/client/widgets/metawidget.cc index c085f10..5491790 100644 --- a/client/widgets/metawidget.cc +++ b/client/widgets/metawidget.cc @@ -29,7 +29,7 @@ #include <QHBoxLayout> #include <QVBoxLayout> -#include <QMessageBox> +#include "messagebox.h" #include "widgetbuilder.h" #include "formatparser.h" @@ -120,10 +120,10 @@ bool MetaWidget::isValid() while (i != widgets.end()) { Widget* w = *i; if(w->isValid() == false) { - QMessageBox::critical(NULL, "Fejl", + MessageBox::critical(NULL, "Fejl", "Et af inputfelterne (" + w->getName() + ") er ikke udfyldt korrekt, prøv igen.\n" - , QMessageBox::Ok); + , MessageBox::Ok); return false; } i++; diff --git a/client/widgets/multilist.cc b/client/widgets/multilist.cc index 4d34691..87f4975 100644 --- a/client/widgets/multilist.cc +++ b/client/widgets/multilist.cc @@ -26,12 +26,13 @@ */ #include "multilist.h" -#include <QMessageBox> #include <QHBoxLayout> #include <QVBoxLayout> #include <QGridLayout> #include <QPushButton> +#include "messagebox.h" + #include "widgetbuilder.h" #include "common.h" @@ -127,25 +128,25 @@ void MultiList::changed() bool MultiList::isValid() { if(innerwidget_has_changes) { - switch(QMessageBox::warning(NULL, + switch(MessageBox::warning(NULL, "Gem ændringerne i listen?", "Der er lavet en ændring som ikke er tilføjet til listen.\n" "Ønsker du at tilføje ændringen til listen inden du gemmer makroen?", - QMessageBox::Save | QMessageBox::Close | QMessageBox::Cancel)) { - case QMessageBox::Save: + MessageBox::Save | MessageBox::Close | MessageBox::Cancel)) { + case MessageBox::Save: if(innerwidget && innerwidget->isValid()) { add(); } else { - QMessageBox::critical(NULL, + MessageBox::critical(NULL, "Fejl", "Der er fejl i ændringen, og den kan ikke tilføjes til listen.\n", - QMessageBox::Ok); + MessageBox::Ok); return false; } break; - case QMessageBox::Close: + case MessageBox::Close: break; - case QMessageBox::Cancel: + case MessageBox::Cancel: default: // FIXME: How to we actually block the commit and return to the editor? return false; |