| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 | 
							- /*=========================================================================
 
-   Library:   CTK
 
-   Copyright (c) Kitware Inc.
 
-   Licensed under the Apache License, Version 2.0 (the "License");
 
-   you may not use this file except in compliance with the License.
 
-   You may obtain a copy of the License at
 
-       http://www.commontk.org/LICENSE
 
-   Unless required by applicable law or agreed to in writing, software
 
-   distributed under the License is distributed on an "AS IS" BASIS,
 
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
-   See the License for the specific language governing permissions and
 
-   limitations under the License.
 
- =========================================================================*/
 
- // Qt includes
 
- #include <QApplication>
 
- #include <QHBoxLayout>
 
- #include <QPushButton>
 
- #include <QSignalSpy>
 
- #include <QTimer>
 
- // CTK includes
 
- #include "ctkButtonGroup.h"
 
- #include "ctkCollapsibleButton.h"
 
- // STD includes
 
- #include <cstdlib>
 
- #include <iostream>
 
- //-----------------------------------------------------------------------------
 
- int ctkButtonGroupTest1(int argc, char * argv [] )
 
- {
 
-   QApplication app(argc, argv);
 
-   QWidget widget(0);
 
-   widget.show();
 
-   QHBoxLayout* layout = new QHBoxLayout(&widget);
 
-   QPushButton* button1 = new QPushButton(&widget);
 
-   layout->addWidget(button1);
 
-   QPushButton* button2 = new QPushButton(&widget);
 
-   layout->addWidget(button2);
 
-   QPushButton* button3 = new QPushButton(&widget);
 
-   layout->addWidget(button3);
 
-   ctkCollapsibleButton* button4 = new ctkCollapsibleButton(&widget);
 
-   layout->addWidget(button4);
 
-   widget.setLayout(layout);
 
-   button1->setCheckable(true);
 
-   button2->setCheckable(true);
 
-   button3->setCheckable(false);
 
-   button4->setCheckable(true);
 
-   
 
-   button2->setChecked(true);
 
-   button4->setChecked(true);
 
-   
 
-   ctkButtonGroup buttonGroup(0);
 
-   buttonGroup.addButton(button1);
 
-   buttonGroup.addButton(button2);
 
-   buttonGroup.addButton(button3);
 
-   buttonGroup.addButton(button4);
 
-   if (!button4->isChecked() || button2->isChecked())
 
-     {
 
-     std::cerr << "ctkButtonGroup::addButton failed"
 
-               << button2->isChecked() << " " << button4->isChecked() 
 
-               << std::endl;
 
-     return EXIT_FAILURE;
 
-     }
 
-   // Click #1: check button1
 
-   button1->click();
 
-   
 
-   if (!button1->isChecked() || button4->isChecked())
 
-     {
 
-     std::cerr << "ctkButtonGroup::click1 failed"
 
-               << button1->isChecked() << " " << button4->isChecked() 
 
-               << std::endl;
 
-     return EXIT_FAILURE;
 
-     }
 
-   // Click #2: uncheck button1 
 
-   button1->click();
 
-   if (button1->isChecked() || button4->isChecked())
 
-     {
 
-     std::cerr << "ctkButtonGroup::click2 failed"
 
-               << button1->isChecked() << " " << button4->isChecked() 
 
-               << std::endl;
 
-     return EXIT_FAILURE;
 
-     }
 
-   // Click #3: check button1 
 
-   button1->click();
 
-   if (!button1->isChecked() || button4->isChecked())
 
-     {
 
-     std::cerr << "ctkButtonGroup::click3 failed"
 
-               << button1->isChecked() << " " << button4->isChecked() 
 
-               << std::endl;
 
-     return EXIT_FAILURE;
 
-     }
 
-   // Click #4: check button2 
 
-   button2->click();
 
-   if (!button2->isChecked() || button1->isChecked())
 
-     {
 
-     std::cerr << "ctkButtonGroup::click4 failed"
 
-               << button2->isChecked() << " " << button1->isChecked() 
 
-               << std::endl;
 
-     return EXIT_FAILURE;
 
-     }
 
-   
 
-   // Click #5: click button3 keep check on button2
 
-   button3->click();
 
-   if (!button2->isChecked() || button3->isChecked())
 
-     {
 
-     std::cerr << "ctkButtonGroup::click5 failed"
 
-               << button2->isChecked() << " " << button3->isChecked() 
 
-               << std::endl;
 
-     return EXIT_FAILURE;
 
-     }
 
-   
 
-   // Click #6: uncheck button2
 
-   button2->click();
 
-   if (button2->isChecked())
 
-     {
 
-     std::cerr << "ctkButtonGroup::click6 failed"
 
-               << button2->isChecked() << std::endl;
 
-     return EXIT_FAILURE;
 
-     }
 
-   qRegisterMetaType<QAbstractButton*>("QAbstractButton*");
 
-   QSignalSpy spy(&buttonGroup, SIGNAL(buttonClicked(QAbstractButton*)));
 
-   QSignalSpy spyInt(&buttonGroup, SIGNAL(buttonClicked(int)));
 
-   button1->click();
 
-   if (spy.count() != 1 || spyInt.count() != 1)
 
-     {
 
-     std::cerr << "ctkButtonGroup::click7 failed"
 
-               << button1->isChecked() << ", "
 
-               << spy.count() << "clicks" << std::endl;
 
-     return EXIT_FAILURE;
 
-     }
 
-   button4->click();
 
-   if (spy.count() != 2 || spyInt.count() != 2)
 
-     {
 
-     std::cerr << "ctkButtonGroup::click8 failed"
 
-               << button4->isChecked() << ", "
 
-               << spy.count() << "clicks" << std::endl;
 
-     return EXIT_FAILURE;
 
-     }
 
-   button4->click();
 
-   if (spy.count() != 3 || spyInt.count() != 3)
 
-     {
 
-     std::cerr << "ctkButtonGroup::click9 failed"
 
-               << button4->isChecked() << ", "
 
-               << spy.count() << "clicks" << std::endl;
 
-     return EXIT_FAILURE;
 
-     }
 
-   QTimer autoExit;
 
-   if (argc < 2 || QString(argv[1]) != "-I")
 
-     {
 
-     QObject::connect(&autoExit, SIGNAL(timeout()), &app, SLOT(quit()));
 
-     autoExit.start(500);
 
-     }
 
-   return app.exec();
 
- }
 
 
  |