Skip to content
Snippets Groups Projects
Commit 41c8fa41 authored by pospelov's avatar pospelov
Browse files

First gui prototype

parent d38f29d2
No related branches found
No related tags found
No related merge requests found
Showing
with 591 additions and 0 deletions
#include "fancytabwidget.h"
#include "fancytabbar.h"
//#include "styledbar.h"
#include "stylehelper.h"
#include <QColorDialog>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QMouseEvent>
#include <QStackedLayout>
#include <QStatusBar>
#include <QPainter>
#include <QStackedWidget>
class FancyColorButton : public QWidget
{
public:
FancyColorButton(QWidget *parent)
: m_parent(parent)
{
setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred);
}
void mousePressEvent(QMouseEvent *ev)
{
if (ev->modifiers() & Qt::ShiftModifier) {
QColor color = QColorDialog::getColor(StyleHelper::requestedBaseColor(), m_parent);
if (color.isValid())
StyleHelper::setBaseColor(color);
}
}
private:
QWidget *m_parent;
};
FancyTabWidget::FancyTabWidget(QWidget *parent)
: QWidget(parent)
, m_tabBar(0)
{
// m_tabBar = new FancyTabBar(this);
m_tabBar = new FancyTabBar2(this);
m_selectionWidget = new QWidget(this);
QVBoxLayout *selectionLayout = new QVBoxLayout;
selectionLayout->setSpacing(0);
selectionLayout->setMargin(0);
// StyledBar *bar = new StyledBar(this);
// QHBoxLayout *layout = new QHBoxLayout(bar);
// layout->setMargin(0);
// layout->setSpacing(10);
//layout->addWidget(new FancyColorButton(this));
// selectionLayout->addWidget(bar);
selectionLayout->addWidget(m_tabBar);
m_selectionWidget->setLayout(selectionLayout);
m_selectionWidget->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding);
m_cornerWidgetContainer = new QWidget(this);
m_cornerWidgetContainer->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred);
m_cornerWidgetContainer->setAutoFillBackground(true); //true
QVBoxLayout *cornerWidgetLayout = new QVBoxLayout;
cornerWidgetLayout->setSpacing(0);
cornerWidgetLayout->setMargin(0);
cornerWidgetLayout->addStretch();
m_cornerWidgetContainer->setLayout(cornerWidgetLayout);
selectionLayout->addWidget(m_cornerWidgetContainer, 0);
// m_modesStack = new QStackedLayout;
m_statusBar = new QStatusBar;
m_statusBar->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Fixed);
m_statusBar->showMessage("Hello world");
//m_statusBar->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding);
QVBoxLayout *vlayout = new QVBoxLayout;
vlayout->setMargin(0);
vlayout->setSpacing(0);
// vlayout->addLayout(m_modesStack);
// vlayout->addWidget(m_statusBar);
m_stackedWidgets = new QStackedWidget;
// m_stackedWidgets->addWidget(new ConfigurationPage);
// m_stackedWidgets->addWidget(new UpdatePage);
// m_stackedWidgets->addWidget(new QueryPage);
vlayout->addWidget(m_stackedWidgets, 1);
vlayout->addWidget(m_statusBar);
QHBoxLayout *mainLayout = new QHBoxLayout;
mainLayout->setMargin(0);
mainLayout->setSpacing(1);
mainLayout->addWidget(m_selectionWidget);
mainLayout->addLayout(vlayout);
setLayout(mainLayout);
connect(m_tabBar, SIGNAL(currentChanged(int)), this, SLOT(showWidget(int)));
}
FancyTabWidget::~FancyTabWidget()
{
delete m_tabBar;
}
void FancyTabWidget::insertTab(int index, QWidget *tab, const QIcon &icon, const QString &label)
{
m_stackedWidgets->addWidget(tab);
m_tabBar->insertTab(index, icon, label);
m_tabBar->setTabEnabled(index, true);
}
//void FancyTabWidget::removeTab(int index)
//{
// m_modesStack->removeWidget(m_modesStack->widget(index));
// m_tabBar->removeTab(index);
//}
void FancyTabWidget::paintEvent(QPaintEvent *event)
{
Q_UNUSED(event)
QPainter painter(this);
QRect rect = m_selectionWidget->rect().adjusted(0, 0, 1, 0);
rect = style()->visualRect(layoutDirection(), geometry(), rect);
StyleHelper::verticalGradient(&painter, rect, rect);
painter.setPen(StyleHelper::borderColor());
painter.drawLine(rect.topRight(), rect.bottomRight());
QColor light = StyleHelper::sidebarHighlight();
painter.setPen(light);
painter.drawLine(rect.bottomLeft(), rect.bottomRight());
}
void FancyTabWidget::showWidget(int index)
{
emit currentAboutToShow(index);
m_stackedWidgets->setCurrentIndex(index);
emit currentChanged(index);
}
#ifndef FANCYTABWIDGET_H
#define FANCYTABWIDGET_H
#include <QWidget>
class FancyTabBar;
class FancyTabBar2;
class QStackedLayout;
class QStatusBar;
class QStackedWidget;
class QIcon;
class FancyTabWidget : public QWidget
{
Q_OBJECT
public:
FancyTabWidget(QWidget *parent = 0);
~FancyTabWidget();
void paintEvent(QPaintEvent *event);
void insertTab(int index, QWidget *tab, const QIcon &icon, const QString &label);
// void removeTab(int index);
signals:
void currentAboutToShow(int index);
void currentChanged(int index);
public slots:
private slots:
void showWidget(int index);
private:
FancyTabBar2 *m_tabBar;
// FancyTabBar *m_tabBar;
QWidget *m_cornerWidgetContainer;
QWidget *m_selectionWidget;
QStatusBar *m_statusBar;
QStackedWidget *m_stackedWidgets;
};
#endif // FANCYTABWIDGET_H
#include "imode.h"
IMode::IMode(QObject *parent) : m_isEnabled(true)
{
(void)parent;
}
void IMode::setEnabled(bool enabled)
{
if (m_isEnabled == enabled) return;
m_isEnabled = enabled;
emit enabledStateChanged(m_isEnabled);
}
bool IMode::isEnabled() const
{
return m_isEnabled;
}
#ifndef IMODE_H
#define IMODE_H
#include <QObject>
#include <QIcon>
class IMode : public QObject
{
Q_OBJECT
public:
IMode(QObject *parent = 0);
QString displayName() const { return m_displayName; }
QIcon icon() const { return m_icon; }
int id() const { return m_id; }
bool isEnabled() const;
void setEnabled(bool enabled);
void setDisplayName(const QString &displayName) { m_displayName = displayName; }
void setIcon(const QIcon &icon) { m_icon = icon; }
void setId(int id) { m_id = id; }
signals:
void enabledStateChanged(bool enabled);
private:
QString m_displayName;
QIcon m_icon;
int m_id;
bool m_isEnabled;
};
#endif // IMODE_H
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
#include "mainwindow.h"
#include "fancytabwidget.h"
//#include "manhattanstyle.h"
#include "welcomemanager.h"
#include "samplemanager.h"
#include "experimentmanager.h"
#include "simulationmanager.h"
#include "fitmanager.h"
#include <QApplication>
#include <iostream>
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
// : FancyMainWindow(parent)
, m_tabWidget(0)
, m_welcomeManager(0)
, m_sampleManager(0)
, m_expManager(0)
, m_simulManager(0)
, m_fitManager(0)
{
// QString baseName = QApplication::style()->objectName();
// qApp->setStyle(new ManhattanStyle(baseName));
// std::cout << "XXX " << baseName.toStdString().c_str() << std::endl;
setDockNestingEnabled(true);
setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea);
setCorner(Qt::BottomRightCorner, Qt::BottomDockWidgetArea);
m_tabWidget = new FancyTabWidget(this);
m_welcomeManager = new WelcomeManager();
m_sampleManager = new SampleManager();
m_expManager = new ExperimentManager();
m_simulManager = new SimulationManager();
m_fitManager = new FitManager();
m_tabWidget->insertTab(0, m_welcomeManager, QIcon("./images/mode_welcome.png"), "Welcome");
m_tabWidget->insertTab(1, m_sampleManager, QIcon("./images/mode_sample.png"), "Sample");
m_tabWidget->insertTab(2, m_expManager, QIcon("./images/mode_exp.png"), "Experiment");
m_tabWidget->insertTab(3, m_simulManager, QIcon("./images/mode_simul.png"), "Simulation");
m_tabWidget->insertTab(4, m_fitManager, QIcon("./images/mode_fit.png"), "Fit");
setCentralWidget(m_tabWidget);
}
MainWindow::~MainWindow()
{
}
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
//#include "fancymainwindow.h"
class FancyTabWidget;
class WelcomeManager;
class SampleManager;
class ExperimentManager;
class SimulationManager;
class FitManager;
class MainWindow : public QMainWindow
//class MainWindow : public FancyMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
FancyTabWidget *m_tabWidget;
WelcomeManager *m_welcomeManager;
SampleManager *m_sampleManager;
ExperimentManager *m_expManager;
SimulationManager *m_simulManager;
FitManager * m_fitManager;
};
#endif // MAINWINDOW_H
#include "welcomemode.h"
#include "welcomemanager.h"
WelcomeMode::WelcomeMode()
{
m_welcomeManager = new WelcomeManager();
setObjectName(QLatin1String("WelcomeMode"));
setDisplayName(tr("Welcome"));
setIcon(QIcon(QLatin1String(":/fancyactionbar/images/mode_Edit.png")));
}
WelcomeMode::~WelcomeMode()
{
// Make sure the editor manager does not get deleted
m_welcomeManager->setParent(0);
}
#ifndef WELCOMEMODE_H
#define WELCOMEMODE_H
#include "imode.h"
class WelcomeManager;
class WelcomeMode : public IMode
{
public:
WelcomeMode();
~WelcomeMode();
private:
WelcomeManager *m_welcomeManager;
};
#endif // WELCOMEMODE_H
#-------------------------------------------------
#
# Project created by QtCreator 2013-02-11T18:32:10
#
#-------------------------------------------------
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = basuite
TEMPLATE = app
SOURCES += \
appcore/fancytabwidget.cpp \
appcore/imode.cpp \
appcore/main.cpp \
appcore/mainwindow.cpp \
appcore/welcomemode.cpp \
experimentmanager/experimentmanager.cpp \
fitmanager/fitmanager.cpp \
samplemanager/samplemanager.cpp \
simulationmanager/simulationmanager.cpp \
# utils/fancymainwindow.cpp \
utils/fancytab.cpp \
utils/fancytabbar.cpp \
# utils/manhattanstyle.cpp \
# utils/styleanimator.cpp \
# utils/styledbar.cpp \
utils/stylehelper.cpp \
welcomemanager/welcomemanager.cpp
HEADERS += \
appcore/fancytabwidget.h \
appcore/imode.h \
appcore/mainwindow.h \
appcore/welcomemode.h \
experimentmanager/experimentmanager.h \
fitmanager/fitmanager.h \
samplemanager/samplemanager.h \
simulationmanager/simulationmanager.h \
# utils/fancymainwindow.h \
utils/fancytab.h \
utils/fancytabbar.h \
# utils/manhattanstyle.h \
# utils/styleanimator.h \
# utils/styledbar.h \
utils/stylehelper.h \
welcomemanager/welcomemanager.h
INCLUDEPATH += $$PWD/utils $$PWD/appcore $$PWD/welcomemanager $$PWD/samplemanager $$PWD/experimentmanager $$PWD/simulationmanager $$PWD/fitmanager
#FORMS += mainwindow.ui
#include "experimentmanager.h"
#include <QtWidgets>
ExperimentManager::ExperimentManager(QWidget *parent)
: QWidget(parent)
{
QGroupBox *packagesGroup = new QGroupBox(tr("Look for packages"));
QLabel *nameLabel = new QLabel(tr("Name:"));
QLineEdit *nameEdit = new QLineEdit;
QLabel *dateLabel = new QLabel(tr("Released after:"));
QDateTimeEdit *dateEdit = new QDateTimeEdit(QDate::currentDate());
QCheckBox *releasesCheckBox = new QCheckBox(tr("Releases"));
QCheckBox *upgradesCheckBox = new QCheckBox(tr("Upgrades"));
QSpinBox *hitsSpinBox = new QSpinBox;
hitsSpinBox->setPrefix(tr("Return up to "));
hitsSpinBox->setSuffix(tr(" results"));
hitsSpinBox->setSpecialValueText(tr("Return only the first result"));
hitsSpinBox->setMinimum(1);
hitsSpinBox->setMaximum(100);
hitsSpinBox->setSingleStep(10);
QPushButton *startQueryButton = new QPushButton(tr("Start query"));
QGridLayout *packagesLayout = new QGridLayout;
packagesLayout->addWidget(nameLabel, 0, 0);
packagesLayout->addWidget(nameEdit, 0, 1);
packagesLayout->addWidget(dateLabel, 1, 0);
packagesLayout->addWidget(dateEdit, 1, 1);
packagesLayout->addWidget(releasesCheckBox, 2, 0);
packagesLayout->addWidget(upgradesCheckBox, 3, 0);
packagesLayout->addWidget(hitsSpinBox, 4, 0, 1, 2);
packagesGroup->setLayout(packagesLayout);
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addWidget(packagesGroup);
mainLayout->addSpacing(12);
mainLayout->addWidget(startQueryButton);
mainLayout->addStretch(1);
setLayout(mainLayout);
}
#ifndef EXPMANAGER_H
#define EXPMANAGER_H
#include <QWidget>
class ExperimentManager : public QWidget
{
public:
ExperimentManager(QWidget *parent = 0);
};
#endif // EXPMANAGER_H
#include "fitmanager.h"
#include <QtWidgets>
FitManager::FitManager(QWidget *parent)
: QWidget(parent)
{
QGroupBox *packagesGroup = new QGroupBox(tr("Look for packages"));
QLabel *nameLabel = new QLabel(tr("Name:"));
QLineEdit *nameEdit = new QLineEdit;
QLabel *dateLabel = new QLabel(tr("Released after:"));
QDateTimeEdit *dateEdit = new QDateTimeEdit(QDate::currentDate());
QCheckBox *releasesCheckBox = new QCheckBox(tr("Releases"));
QCheckBox *upgradesCheckBox = new QCheckBox(tr("Upgrades"));
QSpinBox *hitsSpinBox = new QSpinBox;
hitsSpinBox->setPrefix(tr("Return up to "));
hitsSpinBox->setSuffix(tr(" results"));
hitsSpinBox->setSpecialValueText(tr("Return only the first result"));
hitsSpinBox->setMinimum(1);
hitsSpinBox->setMaximum(100);
hitsSpinBox->setSingleStep(10);
QPushButton *startQueryButton = new QPushButton(tr("Start query"));
QGridLayout *packagesLayout = new QGridLayout;
packagesLayout->addWidget(nameLabel, 0, 0);
packagesLayout->addWidget(nameEdit, 0, 1);
packagesLayout->addWidget(dateLabel, 1, 0);
packagesLayout->addWidget(dateEdit, 1, 1);
packagesLayout->addWidget(releasesCheckBox, 2, 0);
packagesLayout->addWidget(upgradesCheckBox, 3, 0);
packagesLayout->addWidget(hitsSpinBox, 4, 0, 1, 2);
packagesGroup->setLayout(packagesLayout);
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addWidget(packagesGroup);
mainLayout->addSpacing(12);
mainLayout->addWidget(startQueryButton);
mainLayout->addStretch(1);
setLayout(mainLayout);
}
#ifndef FITMANAGER_H
#define FITMANAGER_H
#include <QWidget>
class FitManager : public QWidget
{
public:
FitManager(QWidget *parent = 0);
};
#endif // FITMANAGER_H
BASuite/images/mode_exp.png

2.12 KiB

BASuite/images/mode_fit.png

1.58 KiB

BASuite/images/mode_sample.png

869 B

BASuite/images/mode_simul.png

2.66 KiB

BASuite/images/mode_welcome.png

2.4 KiB

#include "samplemanager.h"
#include <QtWidgets>
SampleManager::SampleManager(QWidget *parent)
: QWidget(parent)
{
QGroupBox *updateGroup = new QGroupBox(tr("Package selection"));
QCheckBox *systemCheckBox = new QCheckBox(tr("Update system"));
QCheckBox *appsCheckBox = new QCheckBox(tr("Update applications"));
QCheckBox *docsCheckBox = new QCheckBox(tr("Update documentation"));
QGroupBox *packageGroup = new QGroupBox(tr("Existing packages"));
QListWidget *packageList = new QListWidget;
QListWidgetItem *qtItem = new QListWidgetItem(packageList);
qtItem->setText(tr("Qt"));
QListWidgetItem *qsaItem = new QListWidgetItem(packageList);
qsaItem->setText(tr("QSA"));
QListWidgetItem *teamBuilderItem = new QListWidgetItem(packageList);
teamBuilderItem->setText(tr("Teambuilder"));
QPushButton *startUpdateButton = new QPushButton(tr("Start update"));
QVBoxLayout *updateLayout = new QVBoxLayout;
updateLayout->addWidget(systemCheckBox);
updateLayout->addWidget(appsCheckBox);
updateLayout->addWidget(docsCheckBox);
updateGroup->setLayout(updateLayout);
QVBoxLayout *packageLayout = new QVBoxLayout;
packageLayout->addWidget(packageList);
packageGroup->setLayout(packageLayout);
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addWidget(updateGroup);
mainLayout->addWidget(packageGroup);
mainLayout->addSpacing(12);
mainLayout->addWidget(startUpdateButton);
mainLayout->addStretch(1);
setLayout(mainLayout);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment