ctkDirectoryButton.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /*=========================================================================
  2. Library: CTK
  3. Copyright (c) Kitware Inc.
  4. All rights reserved.
  5. Distributed under a BSD License. See LICENSE.txt file.
  6. This software is distributed "AS IS" WITHOUT ANY WARRANTY; without even
  7. the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  8. See the above copyright notice for more information.
  9. =========================================================================*/
  10. #ifndef __ctkDirectoryButton_h
  11. #define __ctkDirectoryButton_h
  12. // Qt includes
  13. #include <QPushButton>
  14. #include <QFileDialog>
  15. // CTK includes
  16. #include <ctkPimpl.h>
  17. #include "CTKWidgetsExport.h"
  18. class ctkDirectoryButtonPrivate;
  19. class CTK_WIDGETS_EXPORT ctkDirectoryButton: public QPushButton
  20. {
  21. Q_OBJECT
  22. Q_PROPERTY(QString caption READ caption WRITE setCaption)
  23. Q_PROPERTY(QFileDialog::Options options READ options WRITE setOptions)
  24. public:
  25. ctkDirectoryButton(QWidget * parent = 0);
  26. ctkDirectoryButton(const QString & text, QWidget * parent = 0);
  27. ctkDirectoryButton(const QIcon & icon, const QString & text, QWidget * parent = 0);
  28. void setCaption(const QString& caption);
  29. const QString& caption()const;
  30. void setOptions(const QFileDialog::Options& options);
  31. const QFileDialog::Options& options()const;
  32. public slots:
  33. void browse();
  34. signals:
  35. void directoryChanged(const QString&);
  36. private:
  37. CTK_DECLARE_PRIVATE(ctkDirectoryButton);
  38. };
  39. #endif