mirror of
https://github.com/RetroShare/RetroShare.git
synced 2024-10-01 02:35:48 -04:00
e92080789a
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@662 b45a01b8-16f6-495d-af2f-9b41ad6348cc
173 lines
6.3 KiB
C++
173 lines
6.3 KiB
C++
/****************************************************************
|
|
* This file is distributed under the following license:
|
|
*
|
|
* Copyright (c) 2008, defnax
|
|
* Copyright (c) 2008, Matt Edman, Justin Hipple
|
|
*
|
|
* This program 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.
|
|
*
|
|
* This program 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 this program; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
* Boston, MA 02110-1301, USA.
|
|
****************************************************************/
|
|
|
|
/*
|
|
** \file vmessagebox.cpp
|
|
** \version $Id: vmessagebox.cpp 2362 2008-02-29 04:30:11Z edmanm $
|
|
** \brief Provides a custom Vidalia mesage box
|
|
*/
|
|
|
|
#include "html.h"
|
|
#include "vmessagebox.h"
|
|
|
|
|
|
/** Default constructor. */
|
|
VMessageBox::VMessageBox(QWidget *parent)
|
|
: QMessageBox(parent)
|
|
{
|
|
}
|
|
|
|
/** Returns the button (0, 1, or 2) that is OR-ed with QMessageBox::Default,
|
|
* or 0 if none are. */
|
|
int
|
|
VMessageBox::defaultButton(int button0, int button1, int button2)
|
|
{
|
|
Q_UNUSED(button0);
|
|
int defaultButton = 0;
|
|
if (button1 & QMessageBox::Default) {
|
|
defaultButton = 1;
|
|
} else if (button2 & QMessageBox::Default) {
|
|
defaultButton = 2;
|
|
}
|
|
return defaultButton;
|
|
}
|
|
|
|
/** Returns the button (0, 1, or 2) that is OR-ed with QMessageBox::Escape,
|
|
* or -1 if none are. */
|
|
int
|
|
VMessageBox::escapeButton(int button0, int button1, int button2)
|
|
{
|
|
int escapeButton = -1;
|
|
if (button0 & QMessageBox::Escape) {
|
|
escapeButton = 0;
|
|
} else if (button1 & QMessageBox::Escape) {
|
|
escapeButton = 1;
|
|
} else if (button2 & QMessageBox::Escape) {
|
|
escapeButton = 2;
|
|
}
|
|
return escapeButton;
|
|
}
|
|
|
|
/** Returns the Button enum value from the given return value. */
|
|
int
|
|
VMessageBox::selected(int ret, int button0, int button1, int button2)
|
|
{
|
|
if (ret == 0) {
|
|
return (button0 & QMessageBox::ButtonMask);
|
|
} else if (ret == 1) {
|
|
return (button1 & QMessageBox::ButtonMask);
|
|
}
|
|
return (button2 & QMessageBox::ButtonMask);
|
|
}
|
|
|
|
/** Converts a Button enum value to a translated string. */
|
|
QString
|
|
VMessageBox::buttonText(int btn)
|
|
{
|
|
QString text;
|
|
int button = (btn & ~QMessageBox::FlagMask);
|
|
switch (button) {
|
|
case Ok: text = tr("OK"); break;
|
|
case Cancel: text = tr("Cancel"); break;
|
|
case Yes: text = tr("Yes"); break;
|
|
case No: text = tr("No"); break;
|
|
case Help: text = tr("Help"); break;
|
|
case Retry: text = tr("Retry"); break;
|
|
case ShowLog: text = tr("Show Log"); break;
|
|
case ShowSettings: text = tr("Show Settings"); break;
|
|
case Continue: text = tr("Continue"); break;
|
|
case Quit: text = tr("Quit"); break;
|
|
case Browse: text = tr("Browse"); break;
|
|
default: break;
|
|
}
|
|
return text;
|
|
}
|
|
|
|
/** Displays a critical message box with the given caption, message text, and
|
|
* visible buttons. To specify a button as a default button or an escape
|
|
* button, OR the Button enum value with QMessageBox::Default or
|
|
* QMessageBox::Escape, respectively. */
|
|
int
|
|
VMessageBox::critical(QWidget *parent, QString caption, QString text,
|
|
int button0, int button1, int button2)
|
|
{
|
|
int ret = QMessageBox::critical(parent, caption, p(text),
|
|
VMessageBox::buttonText(button0),
|
|
VMessageBox::buttonText(button1),
|
|
VMessageBox::buttonText(button2),
|
|
VMessageBox::defaultButton(button0, button1, button2),
|
|
VMessageBox::escapeButton(button0, button1, button2));
|
|
return VMessageBox::selected(ret, button0, button1, button2);
|
|
}
|
|
|
|
/** Displays an question message box with the given caption, message text, and
|
|
* visible buttons. To specify a button as a default button or an escape
|
|
* button, OR the Button enum value with QMessageBox::Default or
|
|
* QMessageBox::Escape, respectively. */
|
|
int
|
|
VMessageBox::question(QWidget *parent, QString caption, QString text,
|
|
int button0, int button1, int button2)
|
|
{
|
|
int ret = QMessageBox::question(parent, caption, p(text),
|
|
VMessageBox::buttonText(button0),
|
|
VMessageBox::buttonText(button1),
|
|
VMessageBox::buttonText(button2),
|
|
VMessageBox::defaultButton(button0, button1, button2),
|
|
VMessageBox::escapeButton(button0, button1, button2));
|
|
return VMessageBox::selected(ret, button0, button1, button2);
|
|
}
|
|
|
|
/** Displays an information message box with the given caption, message text, and
|
|
* visible buttons. To specify a button as a default button or an escape
|
|
* button, OR the Button enum value with QMessageBox::Default or
|
|
* QMessageBox::Escape, respectively. */
|
|
int
|
|
VMessageBox::information(QWidget *parent, QString caption, QString text,
|
|
int button0, int button1, int button2)
|
|
{
|
|
int ret = QMessageBox::information(parent, caption, p(text),
|
|
VMessageBox::buttonText(button0),
|
|
VMessageBox::buttonText(button1),
|
|
VMessageBox::buttonText(button2),
|
|
VMessageBox::defaultButton(button0, button1, button2),
|
|
VMessageBox::escapeButton(button0, button1, button2));
|
|
return VMessageBox::selected(ret, button0, button1, button2);
|
|
}
|
|
|
|
/** Displays a warning message box with the given caption, message text, and
|
|
* visible buttons. To specify a button as a default button or an escape
|
|
* button, OR the Button enum value with QMessageBox::Default or
|
|
* QMessageBox::Escape, respectively. */
|
|
int
|
|
VMessageBox::warning(QWidget *parent, QString caption, QString text,
|
|
int button0, int button1, int button2)
|
|
{
|
|
int ret = QMessageBox::warning(parent, caption, p(text),
|
|
VMessageBox::buttonText(button0),
|
|
VMessageBox::buttonText(button1),
|
|
VMessageBox::buttonText(button2),
|
|
VMessageBox::defaultButton(button0, button1, button2),
|
|
VMessageBox::escapeButton(button0, button1, button2));
|
|
return VMessageBox::selected(ret, button0, button1, button2);
|
|
}
|
|
|