Go back to Richel Bilderbeek's homepage.

Go back to Richel Bilderbeek's C++ page.

 

 

 

 

 

(C++) TestQtHideAndShowDialog

 

TestQtHideAndShowDialog is a tool to test the QtHideAndShowDialog class.

 

 

 

 

 

Downloads

 

Technical facts

 

Operating system(s) or programming environment(s)

IDE(s):

Project type:

C++ standard:

Compiler(s):

Libraries used:

 

 

 

 

 

Qt project file: ./ToolTestQtHideAndShowDialog/ToolTestQtHideAndShowDialogDesktop.pro

 

include(../../DesktopApplication.pri)

include(../../Libraries/GeneralConsole.pri)
include(../../Libraries/GeneralDesktop.pri)
include(../../Libraries/Boost.pri)

include(ToolTestQtHideAndShowDialogDesktop.pri)

SOURCES += qtmain.cpp

 

 

 

 

 

./ToolTestQtHideAndShowDialog/ToolTestQtHideAndShowDialogConsole.pri

 

INCLUDEPATH += \
    ../../Tools/ToolTestQtHideAndShowDialog

SOURCES += \
    ../../Tools/ToolTestQtHideAndShowDialog/testhideandshowdialogmenudialog.cpp

HEADERS += \
    ../../Tools/ToolTestQtHideAndShowDialog/testhideandshowdialogmenudialog.h

 

 

 

 

 

./ToolTestQtHideAndShowDialog/ToolTestQtHideAndShowDialogDesktop.pri

 

include(ToolTestQtHideAndShowDialogConsole.pri)

SOURCES += \
    ../../Tools/ToolTestQtHideAndShowDialog/qttesthideandshowdialogmaindialog.cpp \
    ../../Tools/ToolTestQtHideAndShowDialog/qttesthideandshowdialogmenudialog.cpp

HEADERS += \
    ../../Tools/ToolTestQtHideAndShowDialog/qttesthideandshowdialogmaindialog.h \
    ../../Tools/ToolTestQtHideAndShowDialog/qttesthideandshowdialogmenudialog.h

FORMS += \
    ../../Tools/ToolTestQtHideAndShowDialog/qttesthideandshowdialogmaindialog.ui \
    ../../Tools/ToolTestQtHideAndShowDialog/qttesthideandshowdialogmenudialog.ui

 

 

 

 

 

./ToolTestQtHideAndShowDialog/qtmain.cpp

 

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Weffc++"
#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
#pragma GCC diagnostic ignored "-Wunused-but-set-parameter"
#include <QApplication>
#include <QDesktopWidget>
#include "qttesthideandshowdialogmenudialog.h"
#pragma GCC diagnostic pop

int main(int argc, char *argv[])
{
  QApplication a(argc, argv);
  ribi::QtTestHideAndShowDialogMenuDialog d;
  d.show();
  return a.exec();
}

 

 

 

 

 

./ToolTestQtHideAndShowDialog/qttesthideandshowdialogmaindialog.h

 

#ifndef QTTESTHIDEANDSHOWMAINDIALOG_H
#define QTTESTHIDEANDSHOWMAINDIALOG_H

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Weffc++"
#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
#pragma GCC diagnostic ignored "-Wunused-but-set-parameter"
#include <QDialog>
#include "qthideandshowdialog.h"
#pragma GCC diagnostic pop

namespace Ui {
  class QtTestHideAndShowMainDialog;
}

class QtTestHideAndShowMainDialog : public ribi::QtHideAndShowDialog
{
  Q_OBJECT
  
public:
  explicit QtTestHideAndShowMainDialog(QWidget *parent = 0);
  QtTestHideAndShowMainDialog(const QtTestHideAndShowMainDialog&) = delete;
  QtTestHideAndShowMainDialog& operator=(const QtTestHideAndShowMainDialog&) = delete;
  ~QtTestHideAndShowMainDialog() noexcept;
  
protected:
  ///Prevents warnings as the one below, appearing when pressing ESC:
  /// X Error: BadWind
  /// ow (invalid Window parameter) 3
  ///   Major opcode: 20 (X_GetProperty)
  ///   Resource id:  0x280c90d
  /// X Error: BadWindow (invalid Window parameter) 3
  ///   Major opcode: 15 (X_QueryTree)
  ///   Resource id:  0x280c90d
  void keyPressEvent(QKeyEvent *);

  void showEvent(QShowEvent *);

private slots:
  void on_button_clicked();


private:
  Ui::QtTestHideAndShowMainDialog *ui;
};

#endif // QTTESTHIDEANDSHOWMAINDIALOG_H

 

 

 

 

 

./ToolTestQtHideAndShowDialog/qttesthideandshowdialogmaindialog.cpp

 

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Weffc++"
#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
#pragma GCC diagnostic ignored "-Wunused-but-set-parameter"
#include "qttesthideandshowdialogmaindialog.h"

#include <boost/lexical_cast.hpp>
#include <QKeyEvent>
#include "ui_qttesthideandshowdialogmaindialog.h"
#pragma GCC diagnostic pop

QtTestHideAndShowMainDialog::QtTestHideAndShowMainDialog(QWidget *parent)
  : QtHideAndShowDialog(parent),
    ui(new Ui::QtTestHideAndShowMainDialog)
{
  ui->setupUi(this);

  {
    const std::string s(200,boost::lexical_cast<char,std::string>("."));
    ui->label_spacer->setText(s.c_str());
  }

  const QString s = "Dialog width: " + QString::number(this->width()) + " pixels";
  ui->label_width_constructor->setText(s);
}

QtTestHideAndShowMainDialog::~QtTestHideAndShowMainDialog() noexcept
{
  delete ui;
}

void QtTestHideAndShowMainDialog::keyPressEvent(QKeyEvent * event)
{
  if (event->key() == Qt::Key_Escape) { close(); return; }
}

void QtTestHideAndShowMainDialog::showEvent(QShowEvent *)
{
  const QString s = "Dialog width: " + QString::number(this->width()) + " pixels";
  ui->label_width_showevent->setText(s);

}

void QtTestHideAndShowMainDialog::on_button_clicked()
{
  QtTestHideAndShowMainDialog d;

  //Move the child dialog a 8 pixels down and right
  QPoint pos = this->pos();
  pos+=QPoint(8,8);
  d.move(pos);

  this->ShowChild(&d);
}

 

 

 

 

 

./ToolTestQtHideAndShowDialog/qttesthideandshowdialogmenudialog.h

 

#ifndef QTTESTHIDEANDSHOWDIALOGMENUDIALOG_H
#define QTTESTHIDEANDSHOWDIALOGMENUDIALOG_H

#include "qthideandshowdialog.h"

namespace Ui {
  class QtTestHideAndShowDialogMenuDialog;
}

namespace ribi {

class QtTestHideAndShowDialogMenuDialog : public QtHideAndShowDialog
{
  Q_OBJECT

public:
  explicit QtTestHideAndShowDialogMenuDialog(QWidget *parent = 0);
  QtTestHideAndShowDialogMenuDialog(const QtTestHideAndShowDialogMenuDialog&) = delete;
  QtTestHideAndShowDialogMenuDialog& operator=(const QtTestHideAndShowDialogMenuDialog&) = delete;
  ~QtTestHideAndShowDialogMenuDialog() noexcept;

protected:
  
  void keyPressEvent(QKeyEvent *);

private:
  Ui::QtTestHideAndShowDialogMenuDialog *ui;

  #ifndef NDEBUG
  static void Test() noexcept;
  #endif

private slots:
  void on_button_about_clicked();
  void on_button_quit_clicked();
  void on_button_start_clicked();
};

} //~namespace ribi

#endif // QTTESTHIDEANDSHOWDIALOGMENUDIALOG_H

 

 

 

 

 

./ToolTestQtHideAndShowDialog/qttesthideandshowdialogmenudialog.cpp

 

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Weffc++"
#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
#pragma GCC diagnostic ignored "-Wunused-but-set-parameter"
#include "qttesthideandshowdialogmenudialog.h"

#include <QDesktopWidget>
#include <QKeyEvent>

#include "testhideandshowdialogmenudialog.h"
#include "qtaboutdialog.h"
#include "qttesthideandshowdialogmaindialog.h"
#include "testtimer.h"
#include "qthideandshowdialog.h"
#include "trace.h"
#include "ui_qttesthideandshowdialogmenudialog.h"

#pragma GCC diagnostic pop

ribi::QtTestHideAndShowDialogMenuDialog::QtTestHideAndShowDialogMenuDialog(QWidget *parent)
  : QtHideAndShowDialog(parent),
    ui(new Ui::QtTestHideAndShowDialogMenuDialog)
{
  #ifndef NDEBUG
  Test();
  #endif

  ui->setupUi(this);
}

ribi::QtTestHideAndShowDialogMenuDialog::~QtTestHideAndShowDialogMenuDialog() noexcept
{
  delete ui;
}

void ribi::QtTestHideAndShowDialogMenuDialog::keyPressEvent(QKeyEvent * event)
{
  if (event->key() == Qt::Key_Escape) { close(); return; }
}

void ribi::QtTestHideAndShowDialogMenuDialog::on_button_about_clicked()
{
  About a = TestHideAndShowDialogMenuDialog().GetAbout();
  a.AddLibrary("QtHideAndShowDialog version: " + QtHideAndShowDialog::GetVersion());
  QtAboutDialog d(a);
  d.setWindowIcon(this->windowIcon());
  d.setStyleSheet(this->styleSheet());
  this->ShowChild(&d);
}

void ribi::QtTestHideAndShowDialogMenuDialog::on_button_quit_clicked()
{
  close();
}

void ribi::QtTestHideAndShowDialogMenuDialog::on_button_start_clicked()
{
  QtTestHideAndShowMainDialog d;
  d.setStyleSheet(this->styleSheet());
  ShowChild(&d);
}

#ifndef NDEBUG
void ribi::QtTestHideAndShowDialogMenuDialog::Test() noexcept
{
  {
    static bool is_tested{false};
    if (is_tested) return;
    is_tested = true;
  }
  const TestTimer test_timer(__func__,__FILE__,1.0);
  QtTestHideAndShowMainDialog();
  assert(!QtTestHideAndShowDialogMenuDialog().GetVersion().empty());
}
#endif

 

 

 

 

 

./ToolTestQtHideAndShowDialog/testhideandshowdialogmenudialog.h

 

#ifndef  TOOLTESTHIDEANDSHOWDIALOGMENUDIALOG_H
#define  TOOLTESTHIDEANDSHOWDIALOGMENUDIALOG_H

#include <iosfwd>
#include <string>
#include <vector>

#include "menudialog.h"

namespace ribi {

///GUI independent TestPlane menu dialog
struct TestHideAndShowDialogMenuDialog final : public MenuDialog
{
  TestHideAndShowDialogMenuDialog();
  About GetAbout() const noexcept override;
  Help GetHelp() const noexcept override;
  boost::shared_ptr<const Program> GetProgram() const noexcept override;
  std::string GetVersion() const noexcept override;
  std::vector<std::string> GetVersionHistory() const noexcept override;

  private:
  int ExecuteSpecific(const std::vector<std::string>& argv) noexcept override;

  #ifndef NDEBUG
  static void Test() noexcept;
  #endif
};

} //namespace ribi

#endif //  TOOLTESTHIDEANDSHOWDIALOGMENUDIALOG_H

 

 

 

 

 

./ToolTestQtHideAndShowDialog/testhideandshowdialogmenudialog.cpp

 

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Weffc++"
#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
#include "testhideandshowdialogmenudialog.h"

#include <cassert>
#include <iostream>

#include <boost/lexical_cast.hpp>

#include "fileio.h"
#include "testtimer.h"
#include "richelbilderbeekprogram.h"
#include "trace.h"
#pragma GCC diagnostic pop

ribi::TestHideAndShowDialogMenuDialog::TestHideAndShowDialogMenuDialog()
{
  #ifndef NDEBUG
  Test();
  #endif
}

int ribi::TestHideAndShowDialogMenuDialog::ExecuteSpecific(const std::vector<std::string>& argv) noexcept
{
  const int argc = static_cast<int>(argv.size());
  if (argc == 1)
  {
    std::cout << GetHelp() << '\n';
    return 1;
  }
  return 0;
}

ribi::About ribi::TestHideAndShowDialogMenuDialog::GetAbout() const noexcept
{
  About a(
    "Richel Bilderbeek",
    "TestHideAndShowDialog",
    "tests the TestHideAndShowDialog class",
    "the 30th of June 2014",
    "2014",
    "http://www.richelbilderbeek.nl/ToolTestHideAndShowDialog.htm",
    GetVersion(),
    GetVersionHistory());
  a.AddLibrary("FileIo version: " + fileio::FileIo().GetVersion());
  return a;
}

ribi::Help ribi::TestHideAndShowDialogMenuDialog::GetHelp() const noexcept
{
  return ribi::Help(
    this->GetAbout().GetFileTitle(),
    this->GetAbout().GetFileDescription(),
    {

    },
    {

    }
  );
}

boost::shared_ptr<const ribi::Program> ribi::TestHideAndShowDialogMenuDialog::GetProgram() const noexcept
{
  boost::shared_ptr<const ribi::Program> p {
    new ribi::ProgramTestQtHideAndShowDialog
  };
  assert(p);
  return p;
}

std::string ribi::TestHideAndShowDialogMenuDialog::GetVersion() const noexcept
{
  return "1.2";
}

std::vector<std::string> ribi::TestHideAndShowDialogMenuDialog::GetVersionHistory() const noexcept
{
  return {
    "2013-xx-xx: version 1.0: initial version",
    "2014-05-09: version 1.1: started versioning"
    "2014-06-30: version 1.2: fixed desktop version"
  };
}

#ifndef NDEBUG
void ribi::TestHideAndShowDialogMenuDialog::Test() noexcept
{
  {
    static bool is_tested{false};
    if (is_tested) return;
    is_tested = true;
  }
  const TestTimer test_timer(__func__,__FILE__,1.0);
}
#endif

 

 

 

 

 

./ToolTestQtHideAndShowDialog/crosscompiletowindows.sh

 

#!/bin/sh
#From http://richelbilderbeek.nl/CppQtCrosscompileToWindowsExample15.htm

echo "Cross compiling to Windows"

echo "1/2: Creating Windows makefile"
i686-pc-mingw32-qmake ToolTestQtHideAndShowDialog.pro

echo "2/2: making makefile"

make

echo "Done"

 

 

 

 

 

./ToolTestQtHideAndShowDialog/zip.sh

 

#!/bin/sh

echo "Removing user information"
rm *.user

echo "Removing possible temp file"
rm copy.txt
rm tmp.txt


echo "Creating of all main folders"

mkdir temp_zip
mkdir temp_zip/Classes
mkdir temp_zip/Tools

echo "Creating of all subfolders"

mkdir temp_zip/Classes/CppQtHideAndShowDialog
mkdir temp_zip/Tools/ToolTestQtHideAndShowDialog

echo "Copying files"

cp ../../Classes/CppQtHideAndShowDialog/Licence.txt temp_zip/Classes/CppQtHideAndShowDialog/Licence.txt
cp ../../Classes/CppQtHideAndShowDialog/qthideandshowdialog.cpp temp_zip/Classes/CppQtHideAndShowDialog/qthideandshowdialog.cpp
cp ../../Classes/CppQtHideAndShowDialog/qthideandshowdialog.h temp_zip/Classes/CppQtHideAndShowDialog/qthideandshowdialog.h
cp ../../Tools/ToolTestQtHideAndShowDialog/Licence.txt temp_zip/Tools/ToolTestQtHideAndShowDialog/Licence.txt
cp ../../Tools/ToolTestQtHideAndShowDialog/ToolTestQtHideAndShowDialog.pro temp_zip/Tools/ToolTestQtHideAndShowDialog/ToolTestQtHideAndShowDialog.pro
cp ../../Tools/ToolTestQtHideAndShowDialog/cnr.sh temp_zip/Tools/ToolTestQtHideAndShowDialog/cnr.sh
cp ../../Tools/ToolTestQtHideAndShowDialog/crosscompiletowindows.sh temp_zip/Tools/ToolTestQtHideAndShowDialog/crosscompiletowindows.sh
cp ../../Tools/ToolTestQtHideAndShowDialog/qtmain.cpp temp_zip/Tools/ToolTestQtHideAndShowDialog/qtmain.cpp
cp ../../Tools/ToolTestQtHideAndShowDialog/zip.sh temp_zip/Tools/ToolTestQtHideAndShowDialog/zip.sh

FILENAME="ToolTestQtHideAndShowDialogSource"
ZIP_FILENAME=$FILENAME".zip"

echo "Compressing files"

cd temp_zip
zip -r $FILENAME Classes
zip -r $FILENAME Tools
cd ..
cp "temp_zip/"$ZIP_FILENAME $ZIP_FILENAME

echo "Cleaning up"

echo "Emptying subfolders"

rm temp_zip/Classes/CppQtHideAndShowDialog/*.*
rm temp_zip/Tools/ToolTestQtHideAndShowDialog/*.*

echo "Removing subfolders"

rmdir temp_zip/Classes/CppQtHideAndShowDialog
rmdir temp_zip/Tools/ToolTestQtHideAndShowDialog

echo "Removing main folders"

rmdir temp_zip/Classes
rmdir temp_zip/Tools

echo "Removing temporary folder"

rm temp_zip/*.*
rmdir temp_zip

echo "Done"

# CreateQtProjectZipFile, version 1.3
# Copyright (C) 2012 Richel Bilderbeek
# Programmed on the 10th of June 2012
# by Richel Bilderbeek
#
# CreateQtProjectZipFile can be downloaded from http://www.richelbilderbeek.nl/ToolCreateQtProjectZipFile.htm
# Licenced under GPL 3.0

 

 

 

 

 

Go back to Richel Bilderbeek's C++ page.

Go back to Richel Bilderbeek's homepage.

 

Valid XHTML 1.0 Strict

This page has been created by the tool CodeToHtml