diff options
Diffstat (limited to 'tqtinterface/qt4/src/widgets/tqdialogbuttons.cpp')
-rw-r--r-- | tqtinterface/qt4/src/widgets/tqdialogbuttons.cpp | 456 |
1 files changed, 0 insertions, 456 deletions
diff --git a/tqtinterface/qt4/src/widgets/tqdialogbuttons.cpp b/tqtinterface/qt4/src/widgets/tqdialogbuttons.cpp deleted file mode 100644 index 18f5631..0000000 --- a/tqtinterface/qt4/src/widgets/tqdialogbuttons.cpp +++ /dev/null @@ -1,456 +0,0 @@ -/**************************************************************************** -** -** Implementation of TQDialogButtons class -** -** Copyright (C) 2005-2008 Trolltech ASA. All rights reserved. -** -** This file is part of the widgets module of the TQt GUI Toolkit. -** -** This file may be used under the terms of the GNU General -** Public License versions 2.0 or 3.0 as published by the Free -** Software Foundation and appearing in the files LICENSE.GPL2 -** and LICENSE.GPL3 included in the packaging of this file. -** Alternatively you may (at your option) use any later version -** of the GNU General Public License if such license has been -** publicly approved by Trolltech ASA (or its successors, if any) -** and the KDE Free TQt Foundation. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. -** If you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** This file may be used under the terms of the Q Public License as -** defined by Trolltech ASA and appearing in the file LICENSE.TQPL -** included in the packaging of this file. Licensees holding valid TQt -** Commercial licenses may use this file in accordance with the TQt -** Commercial License Agreement provided with the Software. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted -** herein. -** -**********************************************************************/ - -#include "tqdialogbuttons_p.h" -#ifndef TQT_NO_DIALOGBUTTONS - -#include <tqapplication.h> -#include <tqpushbutton.h> -#include <tqguardedptr.h> -#include <tqmap.h> -#include <tqvariant.h> -#ifndef TQT_NO_DIALOG -#include <tqdialog.h> -#endif // TQT_NO_DIALOG -#include <tqlayout.h> -#include <tqstyle.h> -#include <tqmap.h> - -struct TQDialogButtonsPrivate -{ - TQMap<int, TQString> text; - TQMap<TQDialogButtons::Button, TQWidget *> buttons; - TQGuardedPtr<TQWidget> custom; - TQ_UINT32 enabled, visible; - TQDialogButtons::Button def; - Qt::Orientation orient; - bool questionMode; -}; - -#ifndef TQT_NO_DIALOG -TQDialogButtons::TQDialogButtons(TQDialog *parent, bool autoConnect, TQ_UINT32 buttons, - Qt::Orientation orient, const char *name ) : TQWidget(parent, name) -{ - init(buttons, orient); - if(parent && autoConnect) { - TQObject::connect(this, TQT_SIGNAL(acceptClicked()), parent, TQT_SLOT(accept())); - TQObject::connect(this, TQT_SIGNAL(rejectClicked()), parent, TQT_SLOT(reject())); - } -} -#endif // TQT_NO_DIALOG - -TQDialogButtons::TQDialogButtons(TQWidget *parent, TQ_UINT32 buttons, - Qt::Orientation orient, const char *name ) : TQWidget(parent, name) -{ - init(buttons, orient); -} - -void -TQDialogButtons::init(TQ_UINT32 buttons, Qt::Orientation orient) -{ - if(buttons == All) { - qWarning("TQDialogButtons: cannot specify All by itself!"); - buttons = None; - } - d = new TQDialogButtonsPrivate; - d->questionMode = FALSE; - d->orient = orient; - d->def = (Button)tqstyle().tqstyleHint(TQStyle::SH_DialogButtons_DefaultButton, this); - d->enabled = d->visible = buttons; -} - -TQDialogButtons::~TQDialogButtons() -{ - delete (TQWidget *)d->custom; - delete d; -} - -void -TQDialogButtons::setQuestionMode(bool b) -{ - d->questionMode = b; -} - -bool -TQDialogButtons::questionMode() const -{ - return d->questionMode; -} - -void -TQDialogButtons::setButtonEnabled(Button button, bool enabled) -{ - if(enabled) - d->enabled |= button; - else - d->enabled ^= button; - if(d->buttons.contains(button)) - d->buttons[button]->setEnabled(enabled); -} - -bool -TQDialogButtons::isButtonEnabled(Button button) const -{ - return ((int)(d->enabled & button)) == button; -} - -void -TQDialogButtons::setButtonVisible(Button button, bool visible) -{ - if(visible) { - if(d->buttons.contains(button)) - d->buttons[button]->show(); - d->visible |= button; - } else { - if(d->buttons.contains(button)) - d->buttons[button]->hide(); - d->visible ^= button; - } - layoutButtons(); -} - -bool -TQDialogButtons::isButtonVisible(Button button) const -{ - return ((int)(d->visible & button)) == button; -} - -void -TQDialogButtons::addWidget(TQWidget *w) -{ - TQBoxLayout *lay = NULL; - if(!d->custom) { - d->custom = new TQWidget(this, "dialog_custom_area"); - if(orientation() == Qt::Horizontal) - lay = new TQHBoxLayout(d->custom); - else - lay = new TQVBoxLayout(d->custom); - layoutButtons(); - } else { - lay = (TQBoxLayout*)d->custom->tqlayout(); - } - if(w->parent() != TQT_TQOBJECT(d->custom)) - w->reparent(d->custom, 0, TQPoint(0, 0), TRUE); - lay->addWidget(w); -} - -void -TQDialogButtons::setDefaultButton(Button button) -{ - if(!((int)(d->visible & button) == button)) { - qWarning("TQDialogButtons: Button '%d' is not visible (so cannot be default)", button); - return; - } - if(d->def != button) { -#ifndef TQT_NO_PROPERTIES - if(d->buttons.contains(d->def)) - d->buttons[d->def]->setProperty("default", TQVariant(FALSE,0)); -#endif - d->def = button; -#ifndef TQT_NO_PROPERTIES - if(d->buttons.contains(d->def)) - d->buttons[d->def]->setProperty("default", TQVariant(FALSE,0)); -#endif - } -} - -TQDialogButtons::Button -TQDialogButtons::defaultButton() const -{ - return d->def; -} - -void -TQDialogButtons::setButtonText(Button button, const TQString &str) -{ - d->text[button] = str; -#ifndef TQT_NO_PROPERTIES - if(d->buttons.contains(button)) - d->buttons[button]->setProperty("text", TQVariant(str)); -#endif - layoutButtons(); -} - -TQString -TQDialogButtons::buttonText(Button b) const -{ - if(d->text.contains(b)) - return d->text[b]; - return TQString(); //null if it is default.. -} - -void -TQDialogButtons::setOrientation(Qt::Orientation orient) -{ - if(d->orient != orient) { - d->orient = orient; - if(d->custom && d->custom->tqlayout()) - ((TQBoxLayout*)d->custom->tqlayout())->setDirection(orient == Qt::Horizontal ? TQBoxLayout::LeftToRight : - TQBoxLayout::TopToBottom); - layoutButtons(); - } -} - -Qt::Orientation -TQDialogButtons::orientation() const -{ - return d->orient; -} - -TQWidget * -TQDialogButtons::createButton(Button b) -{ - TQPushButton *ret = new TQPushButton(this, "qdialog_button"); - TQObject::connect(ret, TQT_SIGNAL(clicked()), this, TQT_SLOT(handleClicked())); - if(d->text.contains(b)) { - ret->setText(d->text[b]); - } else { - switch(b) { - case All: { - TQString txt = buttonText(defaultButton()); - if(txt.isNull()) { - if(defaultButton() == Accept) { - if(questionMode()) - txt = tr("Yes to All"); - else - txt = tr("OK to All"); - } else { - if(questionMode()) - txt = tr("No to All"); - else - txt = tr("Cancel All"); - } - } else { - txt += tr(" to All"); //ick, I can't really do this!! - } - ret->setText(txt); - break; } - case Accept: - if(questionMode()) - ret->setText(tr("Yes")); - else - ret->setText(tr("OK")); - break; - case Reject: - if(questionMode()) - ret->setText(tr("No")); - else - ret->setText(tr("Cancel")); - break; - case Apply: - ret->setText(tr("Apply")); - break; - case Ignore: - ret->setText(tr("Ignore")); - break; - case Retry: - ret->setText(tr("Retry")); - break; - case Abort: - ret->setText(tr("Abort")); - break; - case Help: - ret->setText(tr("Help")); - break; - default: - break; - } - } - return ret; -} - -void -TQDialogButtons::handleClicked() -{ - const TQObject *s = TQT_TQOBJECT(sender()); - if(!s) - return; - - for(TQMapIterator<TQDialogButtons::Button, TQWidget *> it = d->buttons.begin(); it != d->buttons.end(); ++it) { - if(TQT_TQOBJECT(it.data()) == s) { - emit clicked((TQDialogButtons::Button)it.key()); - switch(it.key()) { - case Retry: - emit retryClicked(); - break; - case Ignore: - emit ignoreClicked(); - break; - case Abort: - emit abortClicked(); - break; - case All: - emit allClicked(); - break; - case Accept: - emit acceptClicked(); - break; - case Reject: - emit rejectClicked(); - break; - case Apply: - emit applyClicked(); - break; - case Help: - emit helpClicked(); - break; - default: - break; - } - return; - } - } -} - -void -TQDialogButtons::resizeEvent(TQResizeEvent *) -{ - layoutButtons(); -} - -void -TQDialogButtons::showEvent(TQShowEvent *) -{ - layoutButtons(); -} - -void -TQDialogButtons::styleChanged(TQStyle &old) -{ - layoutButtons(); - TQWidget::styleChange(old); -} - -void -TQDialogButtons::layoutButtons() -{ - if(!isVisible()) //nah.. - return; - - TQStyle::SubRect rects[] = { - TQStyle::SR_DialogButtonAccept, TQStyle::SR_DialogButtonReject, - TQStyle::SR_DialogButtonApply, TQStyle::SR_DialogButtonHelp, - TQStyle::SR_DialogButtonCustom, TQStyle::SR_DialogButtonAll, - TQStyle::SR_DialogButtonRetry, TQStyle::SR_DialogButtonIgnore, - TQStyle::SR_DialogButtonAbort }; - for(unsigned int i = 0; i < (sizeof(rects) / sizeof(rects[0])); i++) { - TQWidget *w = NULL; - if(rects[i] == TQStyle::SR_DialogButtonCustom) { - w = d->custom; - } else { - Button b = None; - if(rects[i] == TQStyle::SR_DialogButtonApply) - b = Apply; - else if(rects[i] == TQStyle::SR_DialogButtonAll) - b = All; - else if(rects[i] == TQStyle::SR_DialogButtonAccept) - b = Accept; - else if(rects[i] == TQStyle::SR_DialogButtonReject) - b = Reject; - else if(rects[i] == TQStyle::SR_DialogButtonHelp) - b = Help; - else if(rects[i] == TQStyle::SR_DialogButtonRetry) - b = Retry; - else if(rects[i] == TQStyle::SR_DialogButtonAbort) - b = Abort; - else if(rects[i] == TQStyle::SR_DialogButtonIgnore) - b = Ignore; - if(b != None) { - if(d->buttons.contains(b)) { - w = d->buttons[b]; - if(!(d->visible & b)) { - w->hide(); - continue; - } - } else if(d->visible & b) { - w = createButton(b); - d->buttons.insert(b, w); - } else { - continue; - } - if(w) { - if(b == d->def) { - w->setFocus(); -#ifndef TQT_NO_PROPERTIES - w->setProperty("default", TQVariant(TRUE,0)); -#endif - } - w->setEnabled(d->enabled & b); - } - } - } - if(w) { - w->show(); - w->setGeometry(tqstyle().subRect(rects[i], this)); - } - } -} - -TQSize -TQDialogButtons::tqsizeHint() const -{ - constPolish(); - TQSize s; - if(d->custom) - s = d->custom->tqsizeHint(); - return (tqstyle().tqsizeFromContents(TQStyle::CT_DialogButtons, this, s. - expandedTo(TQApplication::globalStrut()))); -} - -TQSize -TQDialogButtons::tqsizeHint(TQDialogButtons::Button button) const -{ - TQWidget *w = NULL; - if(d->visible & button) { - if(!d->buttons.contains(button)) { - TQDialogButtons *that = (TQDialogButtons*)this; //ick, constness.. - w = that->createButton(button); - that->d->buttons.insert(button, w); - } else { - w = d->buttons[button]; - } - } - return w->tqsizeHint(); -} - -TQSize -TQDialogButtons::tqminimumSizeHint() const -{ - return tqsizeHint(); -} -#endif |