Remove software and opengl flow implementations

This simplifies the code base A LOT.
This commit is contained in:
luisangelsm
2026-01-23 19:27:15 +01:00
parent 8c04235987
commit 283475bee2
46 changed files with 611 additions and 5903 deletions

View File

@ -5,44 +5,30 @@ HEADERS += \
$$PWD/help_about_dialog.h \
$$PWD/yacreader_field_edit.h \
$$PWD/yacreader_field_plain_text_edit.h \
$$PWD/yacreader_flow.h \
$$PWD/yacreader_flow_config_widget.h \
$$PWD/yacreader_options_dialog.h \
$$PWD/yacreader_spin_slider_widget.h \
$$PWD/yacreader_tool_bar_stretch.h \
$$PWD/yacreader_busy_widget.h \
$$PWD/rounded_corners_dialog.h \
$$PWD/whats_new_dialog.h \
$$PWD/whats_new_controller.h
!CONFIG(no_opengl) {
HEADERS += $$PWD/yacreader_gl_flow_config_widget.h
}
$$PWD/whats_new_controller.h \
$$PWD/yacreader_3d_flow_config_widget.h
macx{
HEADERS += $$PWD/yacreader_macosx_toolbar.h
}
}
SOURCES += \
$$PWD/help_about_dialog.cpp \
$$PWD/yacreader_field_edit.cpp \
$$PWD/yacreader_field_plain_text_edit.cpp \
$$PWD/yacreader_flow.cpp \
$$PWD/yacreader_flow_config_widget.cpp \
$$PWD/yacreader_options_dialog.cpp \
$$PWD/yacreader_spin_slider_widget.cpp \
$$PWD/yacreader_tool_bar_stretch.cpp \
$$PWD/yacreader_busy_widget.cpp \
$$PWD/rounded_corners_dialog.cpp \
$$PWD/whats_new_dialog.cpp \
$$PWD/whats_new_controller.cpp
!CONFIG(no_opengl) {
SOURCES += $$PWD/yacreader_gl_flow_config_widget.cpp
}
$$PWD/whats_new_controller.cpp \
$$PWD/yacreader_3d_flow_config_widget.cpp
macx{
OBJECTIVE_SOURCES += $$PWD/yacreader_macosx_toolbar.mm
}

View File

@ -8,8 +8,6 @@ HEADERS += \
$$PWD/whats_new_controller.h \
$$PWD/yacreader_field_edit.h \
$$PWD/yacreader_field_plain_text_edit.h \
$$PWD/yacreader_flow.h \
$$PWD/yacreader_flow_config_widget.h \
$$PWD/yacreader_options_dialog.h \
$$PWD/yacreader_search_line_edit.h \
$$PWD/yacreader_spin_slider_widget.h \
@ -22,11 +20,8 @@ HEADERS += \
$$PWD/yacreader_library_item_widget.h \
$$PWD/yacreader_treeview.h \
$$PWD/yacreader_busy_widget.h \
$$PWD/yacreader_cover_label.h
!CONFIG(no_opengl){
HEADERS += $$PWD/yacreader_gl_flow_config_widget.h
}
$$PWD/yacreader_cover_label.h \
$$PWD/yacreader_3d_flow_config_widget.h
macx{
HEADERS += $$PWD/yacreader_macosx_toolbar.h
}
@ -38,8 +33,6 @@ SOURCES += \
$$PWD/whats_new_controller.cpp \
$$PWD/yacreader_field_edit.cpp \
$$PWD/yacreader_field_plain_text_edit.cpp \
$$PWD/yacreader_flow.cpp \
$$PWD/yacreader_flow_config_widget.cpp \
$$PWD/yacreader_options_dialog.cpp \
$$PWD/yacreader_search_line_edit.cpp \
$$PWD/yacreader_spin_slider_widget.cpp \
@ -52,11 +45,8 @@ SOURCES += \
$$PWD/yacreader_library_item_widget.cpp \
$$PWD/yacreader_treeview.cpp \
$$PWD/yacreader_busy_widget.cpp \
$$PWD/yacreader_cover_label.cpp
!CONFIG(no_opengl){
SOURCES += $$PWD/yacreader_gl_flow_config_widget.cpp
}
$$PWD/yacreader_cover_label.cpp \
$$PWD/yacreader_3d_flow_config_widget.cpp
macx{
OBJECTIVE_SOURCES += $$PWD/yacreader_macosx_toolbar.mm
}

View File

@ -1,6 +1,5 @@
#include "help_about_dialog.h"
#include "opengl_checker.h"
#include "global_info_provider.h"
#include <QtCore>
@ -100,10 +99,8 @@ void HelpAboutDialog::loadSystemInfo()
{
auto text = YACReader::getGlobalInfo();
auto openGLChecker = OpenGLChecker();
text.append("\nGRAPHIC INFORMATION\n");
text.append(QString("Screen pixel ratio: %1\n").arg(devicePixelRatioF()));
text.append(QString("OpenGL version: %1\n").arg(openGLChecker.textVersionDescription()));
systemInfoText->setText(text);
}

View File

@ -1,15 +1,16 @@
#include "yacreader_gl_flow_config_widget.h"
#include "yacreader_3d_flow_config_widget.h"
#include "yacreader_spin_slider_widget.h"
#include "yacreader_flow_gl.h" //TODO
#include <QSlider>
#include <QVBoxLayout>
#include <QGroupBox>
#include <QRadioButton>
#include <QLabel>
#include <QPushButton>
#include <QCheckBox>
YACReaderGLFlowConfigWidget::YACReaderGLFlowConfigWidget(QWidget *parent /* = 0 */)
YACReader3DFlowConfigWidget::YACReader3DFlowConfigWidget(QWidget *parent /* = 0 */)
: QWidget(parent)
{
QVBoxLayout *layout = new QVBoxLayout(this);
@ -75,7 +76,7 @@ YACReaderGLFlowConfigWidget::YACReaderGLFlowConfigWidget(QWidget *parent /* = 0
showAdvancedOptions = new QPushButton(tr("Show advanced settings"));
showAdvancedOptions->setCheckable(true);
connect(showAdvancedOptions, &QAbstractButton::toggled, this, &YACReaderGLFlowConfigWidget::avancedOptionToogled);
connect(showAdvancedOptions, &QAbstractButton::toggled, this, &YACReader3DFlowConfigWidget::avancedOptionToogled);
vbox->addWidget(showAdvancedOptions, 0, Qt::AlignRight);
@ -213,7 +214,7 @@ YACReaderGLFlowConfigWidget::YACReaderGLFlowConfigWidget(QWidget *parent /* = 0
setLayout(layout);
}
void YACReaderGLFlowConfigWidget::avancedOptionToogled(bool show)
void YACReader3DFlowConfigWidget::avancedOptionToogled(bool show)
{
if (show)
optionsGroupBox->show();
@ -221,7 +222,7 @@ void YACReaderGLFlowConfigWidget::avancedOptionToogled(bool show)
optionsGroupBox->hide();
}
void YACReaderGLFlowConfigWidget::setValues(Preset preset)
void YACReader3DFlowConfigWidget::setValues(Preset preset)
{
xRotation->setValue(preset.cfRX);
yPosition->setValue(preset.cfY * 100);

View File

@ -1,7 +1,7 @@
#ifndef YACREADER_GL_FLOW_CONFIG_WIDGET_H
#define YACREADER_GL_FLOW_CONFIG_WIDGET_H
#ifndef YACREADER_3D_FLOW_CONFIG_WIDGET_H
#define YACREADER_3D_FLOW_CONFIG_WIDGET_H
#include "yacreader_flow_gl.h" //TODO
#include "flow_types.h" //TODO
#include <QWidget>
class QRadioButton;
@ -11,11 +11,11 @@ class QCheckBox;
class QPushButton;
class QGroupBox;
class YACReaderGLFlowConfigWidget : public QWidget
class YACReader3DFlowConfigWidget : public QWidget
{
Q_OBJECT
public:
YACReaderGLFlowConfigWidget(QWidget *parent = 0);
YACReader3DFlowConfigWidget(QWidget *parent = 0);
// GL.........................
QRadioButton *radioClassic;
@ -47,4 +47,4 @@ public slots:
void avancedOptionToogled(bool show);
};
#endif // YACREADER_GL_FLOW_CONFIG_WIDGET_H
#endif // YACREADER_3D_FLOW_CONFIG_WIDGET_H

View File

@ -1,17 +0,0 @@
#include "yacreader_flow.h"
#include <QMouseEvent>
YACReaderFlow::YACReaderFlow(QWidget *parent, FlowType flowType)
: PictureFlow(parent, flowType) { }
void YACReaderFlow::mousePressEvent(QMouseEvent *event)
{
PictureFlow::mousePressEvent(event, slideSize().width());
}
void YACReaderFlow::mouseDoubleClickEvent(QMouseEvent *event)
{
if ((event->x() > (width() - slideSize().width()) / 2) && (event->x() < (width() + slideSize().width()) / 2))
emit selected(centerIndex());
}

View File

@ -1,21 +0,0 @@
#ifndef YACREADER_FLOW_H
#define YACREADER_FLOW_H
#include "pictureflow.h"
class QMouseEvent;
class YACReaderFlow : public PictureFlow
{
Q_OBJECT
public:
YACReaderFlow(QWidget *parent, FlowType flowType = CoverFlowLike);
void mousePressEvent(QMouseEvent *event);
void mouseDoubleClickEvent(QMouseEvent *event);
signals:
void selected(unsigned int centerIndex);
};
#endif // YACREADER_FLOW_H

View File

@ -1,52 +0,0 @@
#include "yacreader_flow_config_widget.h"
#include <QVBoxLayout>
#include <QGroupBox>
#include <QRadioButton>
#include <QLabel>
YACReaderFlowConfigWidget::YACReaderFlowConfigWidget(QWidget *parent)
: QWidget(parent)
{
QVBoxLayout *layout = new QVBoxLayout(this);
QGroupBox *groupBox = new QGroupBox(tr("How to show covers:"));
radio1 = new QRadioButton(tr("CoverFlow look"));
radio2 = new QRadioButton(tr("Stripe look"));
radio3 = new QRadioButton(tr("Overlapped Stripe look"));
QVBoxLayout *vbox = new QVBoxLayout;
QHBoxLayout *opt1 = new QHBoxLayout;
opt1->addWidget(radio1);
QLabel *lOpt1 = new QLabel();
lOpt1->setPixmap(QPixmap(":/images/flow1.png"));
opt1->addStretch();
opt1->addWidget(lOpt1);
vbox->addLayout(opt1);
QHBoxLayout *opt2 = new QHBoxLayout;
opt2->addWidget(radio2);
QLabel *lOpt2 = new QLabel();
lOpt2->setPixmap(QPixmap(":/images/flow2.png"));
opt2->addStretch();
opt2->addWidget(lOpt2);
vbox->addLayout(opt2);
QHBoxLayout *opt3 = new QHBoxLayout;
opt3->addWidget(radio3);
QLabel *lOpt3 = new QLabel();
lOpt3->setPixmap(QPixmap(":/images/flow3.png"));
opt3->addStretch();
opt3->addWidget(lOpt3);
vbox->addLayout(opt3);
// vbox->addStretch(1);
groupBox->setLayout(vbox);
layout->addWidget(groupBox);
layout->setContentsMargins(0, 0, 0, 0);
setLayout(layout);
}

View File

@ -1,19 +0,0 @@
#ifndef YACREADER_FLOW_CONFIG_WIDGET_H
#define YACREADER_FLOW_CONFIG_WIDGET_H
#include <QWidget>
class QRadioButton;
class YACReaderFlowConfigWidget : public QWidget
{
Q_OBJECT
public:
QRadioButton *radio1;
QRadioButton *radio2;
QRadioButton *radio3;
YACReaderFlowConfigWidget(QWidget *parent = 0);
};
#endif // YACREADER_FLOW_CONFIG_WIDGET_H

View File

@ -1,13 +1,8 @@
#include "yacreader_options_dialog.h"
#include "yacreader_flow_config_widget.h"
#ifndef NO_OPENGL
#include "yacreader_gl_flow_config_widget.h"
#else
#include "pictureflow.h"
#endif
#include "yacreader_3d_flow_config_widget.h"
#include "yacreader_global_gui.h"
#include "yacreader_spin_slider_widget.h"
#include "yacreader_global.h"
#include <QPushButton>
#include <QCheckBox>
@ -20,11 +15,7 @@
YACReaderOptionsDialog::YACReaderOptionsDialog(QWidget *parent)
: QDialog(parent)
{
sw = new YACReaderFlowConfigWidget(this);
#ifndef NO_OPENGL
gl = new YACReaderGLFlowConfigWidget(this);
#endif
gl = new YACReader3DFlowConfigWidget(this);
accept = new QPushButton(tr("Save"));
cancel = new QPushButton(tr("Cancel"));
@ -42,15 +33,7 @@ YACReaderOptionsDialog::YACReaderOptionsDialog(QWidget *parent)
connect(accept, &QAbstractButton::clicked, this, &YACReaderOptionsDialog::saveOptions);
connect(cancel, &QAbstractButton::clicked, this, QOverload<>::of(&YACReaderOptionsDialog::restoreOptions));
connect(cancel, &QAbstractButton::clicked, this, &QWidget::close);
#ifndef NO_OPENGL
useGL = new QCheckBox(tr("Use hardware acceleration (restart needed)"));
connect(useGL, &QCheckBox::stateChanged, this, &YACReaderOptionsDialog::saveUseGL);
#endif
// sw CONNECTIONS
connect(sw->radio1, &QAbstractButton::toggled, this, &YACReaderOptionsDialog::setClassicConfigSW);
connect(sw->radio2, &QAbstractButton::toggled, this, &YACReaderOptionsDialog::setStripeConfigSW);
connect(sw->radio3, &QAbstractButton::toggled, this, &YACReaderOptionsDialog::setOverlappedStripeConfigSW);
#ifndef NO_OPENGL
// gl CONNECTIONS
connect(gl->radioClassic, &QAbstractButton::toggled, this, &YACReaderOptionsDialog::setClassicConfig);
connect(gl->radioStripe, &QAbstractButton::toggled, this, &YACReaderOptionsDialog::setStripeConfig);
@ -100,11 +83,9 @@ YACReaderOptionsDialog::YACReaderOptionsDialog(QWidget *parent)
connect(gl->performanceSlider, &QAbstractSlider::valueChanged, this, &YACReaderOptionsDialog::savePerformance);
connect(gl->performanceSlider, &QAbstractSlider::valueChanged, this, &YACReaderOptionsDialog::optionsChanged);
connect(gl->vSyncCheck, &QCheckBox::stateChanged, this, &YACReaderOptionsDialog::saveUseVSync);
#endif
connect(gl->vSyncCheck, &QCheckBox::checkStateChanged, this, &YACReaderOptionsDialog::saveUseVSync);
}
#ifndef NO_OPENGL
void YACReaderOptionsDialog::savePerformance(int value)
{
settings->setValue(PERFORMANCE, value);
@ -129,7 +110,6 @@ void YACReaderOptionsDialog::saveFlowParameters()
settings->setValue(LIGHT_STRENGTH, gl->lightStrength->getValue());
settings->setValue(MAX_ANGLE, gl->maxAngle->getValue());
}
#endif
void YACReaderOptionsDialog::saveOptions()
{
@ -137,96 +117,68 @@ void YACReaderOptionsDialog::saveOptions()
close();
}
#ifndef NO_OPENGL
void YACReaderOptionsDialog::saveUseGL(int b)
{
if (Qt::Checked == b) {
sw->setVisible(false);
gl->setVisible(true);
} else {
gl->setVisible(false);
sw->setVisible(true);
}
resize(0, 0);
settings->setValue(USE_OPEN_GL, b);
}
#endif
#ifndef NO_OPENGL
void YACReaderOptionsDialog::saveXRotation(int value)
{
settings->setValue(FLOW_TYPE_GL, Custom);
settings->setValue(FLOW_TYPE_GL, YACReader::Custom);
settings->setValue(X_ROTATION, value);
}
void YACReaderOptionsDialog::saveYPosition(int value)
{
settings->setValue(FLOW_TYPE_GL, Custom);
settings->setValue(FLOW_TYPE_GL, YACReader::Custom);
settings->setValue(Y_POSITION, value);
}
void YACReaderOptionsDialog::saveCoverDistance(int value)
{
settings->setValue(FLOW_TYPE_GL, Custom);
settings->setValue(FLOW_TYPE_GL, YACReader::Custom);
settings->setValue(COVER_DISTANCE, value);
}
void YACReaderOptionsDialog::saveCentralDistance(int value)
{
settings->setValue(FLOW_TYPE_GL, Custom);
settings->setValue(FLOW_TYPE_GL, YACReader::Custom);
settings->setValue(CENTRAL_DISTANCE, value);
}
void YACReaderOptionsDialog::saveZoomLevel(int value)
{
settings->setValue(FLOW_TYPE_GL, Custom);
settings->setValue(FLOW_TYPE_GL, YACReader::Custom);
settings->setValue(ZOOM_LEVEL, value);
}
void YACReaderOptionsDialog::saveYCoverOffset(int value)
{
settings->setValue(FLOW_TYPE_GL, Custom);
settings->setValue(FLOW_TYPE_GL, YACReader::Custom);
settings->setValue(Y_COVER_OFFSET, value);
}
void YACReaderOptionsDialog::saveZCoverOffset(int value)
{
settings->setValue(FLOW_TYPE_GL, Custom);
settings->setValue(FLOW_TYPE_GL, YACReader::Custom);
settings->setValue(Z_COVER_OFFSET, value);
}
void YACReaderOptionsDialog::saveCoverRotation(int value)
{
settings->setValue(FLOW_TYPE_GL, Custom);
settings->setValue(FLOW_TYPE_GL, YACReader::Custom);
settings->setValue(COVER_ROTATION, value);
}
void YACReaderOptionsDialog::saveFadeOutDist(int value)
{
settings->setValue(FLOW_TYPE_GL, Custom);
settings->setValue(FLOW_TYPE_GL, YACReader::Custom);
settings->setValue(FADE_OUT_DIST, value);
}
void YACReaderOptionsDialog::saveLightStrength(int value)
{
settings->setValue(FLOW_TYPE_GL, Custom);
settings->setValue(FLOW_TYPE_GL, YACReader::Custom);
settings->setValue(LIGHT_STRENGTH, value);
}
void YACReaderOptionsDialog::saveMaxAngle(int value)
{
settings->setValue(FLOW_TYPE_GL, Custom);
settings->setValue(FLOW_TYPE_GL, YACReader::Custom);
settings->setValue(MAX_ANGLE, value);
}
#endif
void YACReaderOptionsDialog::restoreOptions(QSettings *settings)
{
this->settings = settings;
// FLOW CONFIG
#ifndef NO_OPENGL
if (settings->contains(USE_OPEN_GL) && settings->value(USE_OPEN_GL).toInt() == Qt::Checked) {
sw->setVisible(false);
gl->setVisible(true);
useGL->setChecked(true);
} else {
gl->setVisible(false);
sw->setVisible(true);
useGL->setChecked(false);
}
if (!settings->contains(FLOW_TYPE_GL)) {
setClassicConfig();
@ -242,67 +194,66 @@ void YACReaderOptionsDialog::restoreOptions(QSettings *settings)
gl->performanceSlider->setValue(settings->value(PERFORMANCE).toInt());
FlowType flowType;
YACReader::FlowType flowType;
switch (settings->value(FLOW_TYPE_GL).toInt()) {
case 0:
flowType = CoverFlowLike;
flowType = YACReader::CoverFlowLike;
break;
case 1:
flowType = Strip;
flowType = YACReader::Strip;
break;
case 2:
flowType = StripOverlapped;
flowType = YACReader::StripOverlapped;
break;
case 3:
flowType = Modern;
flowType = YACReader::Modern;
break;
case 4:
flowType = Roulette;
flowType = YACReader::Roulette;
break;
case 5:
flowType = Custom;
flowType = YACReader::Custom;
break;
default:
flowType = CoverFlowLike;
flowType = YACReader::CoverFlowLike;
}
if (flowType == Custom) {
if (flowType == YACReader::Custom) {
loadConfig();
return;
}
if (flowType == CoverFlowLike) {
if (flowType == YACReader::CoverFlowLike) {
setClassicConfig();
gl->radioClassic->setChecked(true);
return;
}
if (flowType == Strip) {
if (flowType == YACReader::Strip) {
setStripeConfig();
gl->radioStripe->setChecked(true);
return;
}
if (flowType == StripOverlapped) {
if (flowType == YACReader::StripOverlapped) {
setOverlappedStripeConfig();
gl->radioOver->setChecked(true);
return;
}
if (flowType == Modern) {
if (flowType == YACReader::Modern) {
setModernConfig();
gl->radionModern->setChecked(true);
return;
}
if (flowType == Roulette) {
if (flowType == YACReader::Roulette) {
setRouletteConfig();
gl->radioDown->setChecked(true);
return;
}
// END FLOW CONFIG
#endif
}
void YACReaderOptionsDialog::restoreOptions()
@ -310,7 +261,6 @@ void YACReaderOptionsDialog::restoreOptions()
restoreOptions(settings);
}
#ifndef NO_OPENGL
void YACReaderOptionsDialog::loadConfig()
{
gl->xRotation->setValue(settings->value(X_ROTATION).toInt());
@ -325,30 +275,14 @@ void YACReaderOptionsDialog::loadConfig()
gl->lightStrength->setValue(settings->value(LIGHT_STRENGTH).toInt());
gl->maxAngle->setValue(settings->value(MAX_ANGLE).toInt());
}
#endif
void YACReaderOptionsDialog::setClassicConfigSW()
{
settings->setValue(FLOW_TYPE_SW, CoverFlowLike);
}
void YACReaderOptionsDialog::setStripeConfigSW()
{
settings->setValue(FLOW_TYPE_SW, Strip);
}
void YACReaderOptionsDialog::setOverlappedStripeConfigSW()
{
settings->setValue(FLOW_TYPE_SW, StripOverlapped);
}
#ifndef NO_OPENGL
void YACReaderOptionsDialog::setClassicConfig()
{
gl->setValues(presetYACReaderFlowClassicConfig);
saveFlowParameters();
settings->setValue(FLOW_TYPE_GL, CoverFlowLike);
settings->setValue(FLOW_TYPE_GL, YACReader::CoverFlowLike);
}
void YACReaderOptionsDialog::setStripeConfig()
@ -357,7 +291,7 @@ void YACReaderOptionsDialog::setStripeConfig()
saveFlowParameters();
settings->setValue(FLOW_TYPE_GL, Strip);
settings->setValue(FLOW_TYPE_GL, YACReader::Strip);
}
void YACReaderOptionsDialog::setOverlappedStripeConfig()
@ -366,7 +300,7 @@ void YACReaderOptionsDialog::setOverlappedStripeConfig()
saveFlowParameters();
settings->setValue(FLOW_TYPE_GL, StripOverlapped);
settings->setValue(FLOW_TYPE_GL, YACReader::StripOverlapped);
}
void YACReaderOptionsDialog::setModernConfig()
@ -375,7 +309,7 @@ void YACReaderOptionsDialog::setModernConfig()
saveFlowParameters();
settings->setValue(FLOW_TYPE_GL, Modern);
settings->setValue(FLOW_TYPE_GL, YACReader::Modern);
}
void YACReaderOptionsDialog::setRouletteConfig()
@ -384,6 +318,5 @@ void YACReaderOptionsDialog::setRouletteConfig()
saveFlowParameters();
settings->setValue(FLOW_TYPE_GL, Roulette);
settings->setValue(FLOW_TYPE_GL, YACReader::Roulette);
}
#endif

View File

@ -3,10 +3,7 @@
#include <QDialog>
class YACReaderFlowConfigWidget;
#ifndef NO_OPENGL
class YACReaderGLFlowConfigWidget;
#endif
class YACReader3DFlowConfigWidget;
class QCheckBox;
class QPushButton;
class QSettings;
@ -16,11 +13,7 @@ class YACReaderOptionsDialog : public QDialog
{
Q_OBJECT
protected:
YACReaderFlowConfigWidget *sw;
#ifndef NO_OPENGL
YACReaderGLFlowConfigWidget *gl;
QCheckBox *useGL;
#endif
YACReader3DFlowConfigWidget *gl;
QPushButton *accept;
QPushButton *cancel;
@ -37,10 +30,8 @@ public slots:
virtual void restoreOptions();
virtual void saveOptions();
protected slots:
#ifndef NO_OPENGL
virtual void savePerformance(int value);
virtual void saveUseVSync(int b);
virtual void saveUseGL(int b);
virtual void saveXRotation(int value);
virtual void saveYPosition(int value);
virtual void saveCoverDistance(int value);
@ -59,10 +50,6 @@ protected slots:
virtual void setModernConfig();
virtual void setRouletteConfig();
virtual void saveFlowParameters();
#endif
virtual void setClassicConfigSW();
virtual void setStripeConfigSW();
virtual void setOverlappedStripeConfigSW();
signals:
void optionsChanged();