Skip to content

Commit

Permalink
Refs #5596. Use Qt4 layout managers instead of Qt3 versions in libmyt…
Browse files Browse the repository at this point in the history
…h. Note this does require relinking the plugins.

git-svn-id: http://svn.mythtv.org/svn/trunk@18605 7dbf422c-18fa-0310-86e9-fd20926502f2
  • Loading branch information
daniel-kristjansson committed Oct 8, 2008
1 parent 3af950a commit 9686f03
Show file tree
Hide file tree
Showing 14 changed files with 392 additions and 300 deletions.
4 changes: 2 additions & 2 deletions mythplugins/mythzoneminder/mythzoneminder/zmevents.cpp
Expand Up @@ -607,8 +607,8 @@ void ZMEvents::showMenu()

QLabel *splitter = popup->addLabel(" ", MythPopupBox::Small);
splitter->setLineWidth(2);
splitter->setFrameShape(Q3Frame::HLine);
splitter->setFrameShadow(Q3Frame::Sunken);
splitter->setFrameShape(QLabel::HLine);
splitter->setFrameShadow(QLabel::Sunken);
splitter->setMinimumHeight((int) (25 * hmult));
splitter->setMaximumHeight((int) (25 * hmult));

Expand Down
16 changes: 10 additions & 6 deletions mythtv/libs/libmyth/dialogbox.cpp
Expand Up @@ -9,25 +9,29 @@ using namespace std;
#undef DialogBox
#endif

#include <Q3ButtonGroup>
#include <QBoxLayout>

DialogBox::DialogBox(MythMainWindow *parent, const QString &text,
const char *checkboxtext,
const char *name)
: MythDialog(parent, name)
{
QLabel *maintext = new QLabel(text, this);
maintext->setBackgroundOrigin(WindowOrigin);
maintext->setAlignment(Qt::WordBreak | Qt::AlignLeft | Qt::AlignTop);

box = new Q3VBoxLayout(this, (int)(60 * wmult), (int)(0 * hmult));
maintext->setAlignment(Qt::AlignLeft | Qt::AlignTop);
maintext->setWordWrap(true);

box = new QVBoxLayout(this);
box->setContentsMargins((int)(60 * wmult),(int)(60 * wmult),
(int)(60 * wmult),(int)(60 * wmult));
box->setSpacing(0);
box->addWidget(maintext, 1);

checkbox = NULL;
if (checkboxtext)
{
checkbox = new MythCheckBox(this);
checkbox->setText(checkboxtext);
checkbox->setBackgroundOrigin(WindowOrigin);
checkbox->setText(checkboxtext);
box->addWidget(checkbox, 0);
}

Expand Down
4 changes: 2 additions & 2 deletions mythtv/libs/libmyth/dialogbox.h
Expand Up @@ -4,10 +4,10 @@
#include <QObject>
#include <QCheckBox>
#include <Q3ButtonGroup>
#include <Q3VBoxLayout>

#include "mythdialogs.h"
#include "compat.h" // to undef DialogBox
class QVBoxLayout;

class MPUBLIC DialogBox : public MythDialog
{
Expand All @@ -28,7 +28,7 @@ class MPUBLIC DialogBox : public MythDialog
~DialogBox() {} // use deleteLater() for thread safety

private:
Q3VBoxLayout *box;
QVBoxLayout *box;
Q3ButtonGroup *buttongroup;

QCheckBox *checkbox;
Expand Down
18 changes: 11 additions & 7 deletions mythtv/libs/libmyth/mythconfigdialogs.cpp
Expand Up @@ -6,7 +6,8 @@

#include "mythuihelper.h"

#include <q3hbox.h>
#include <QWidget>
#include <QHBoxLayout>

static void clear_widgets(vector<Configurable*> &children,
vector<QWidget*> &childwidget)
Expand Down Expand Up @@ -52,17 +53,20 @@ MythDialog* ConfigurationPopupDialog::dialogWidget(MythMainWindow* parent,

if (getLabel() != "")
{
Q3HBox* box = new Q3HBox(dialog);
box->setBackgroundOrigin(QWidget::WindowOrigin);
box->setSizePolicy(QSizePolicy(QSizePolicy::Minimum,
QSizePolicy::Maximum));

label = new QLabel(box);
label = new QLabel();
label->setText(getLabel());
label->setAlignment(Qt::AlignHCenter);
label->setSizePolicy(QSizePolicy(QSizePolicy::Minimum,
QSizePolicy::Maximum));

QHBoxLayout *layout = new QHBoxLayout;
layout->addWidget(label);

QWidget *box = new QWidget(dialog);
box->setSizePolicy(QSizePolicy(QSizePolicy::Minimum,
QSizePolicy::Maximum));
box->setLayout(layout);

dialog->addWidget(box);
}

Expand Down
183 changes: 112 additions & 71 deletions mythtv/libs/libmyth/mythconfiggroups.cpp
Expand Up @@ -2,6 +2,7 @@

#include <q3widgetstack.h>
#include <q3tabdialog.h>
#include <QGroupBox>

#include "mythconfiggroups.h"
#include "mythcontext.h"
Expand All @@ -28,20 +29,20 @@ ConfigurationGroup::ConfigurationGroup(bool luselabel, bool luseframe,
// Pre-calculate the margin and spacing that all sub-classes will use:

if (lzeroMargin)
margin = 4;
margin = 4 * 0.5;
else
{
float wmult = 0, hmult = 0;

GetMythUI()->GetScreenSettings(wmult, hmult);

if (luselabel)
margin = (int)(28 * hmult);
margin = (int)(28 * hmult * 0.5);
else
margin = (int)(10 * hmult);
margin = (int)(10 * hmult * 0.5);
}

space = (lzeroSpace) ? 4 : -1;
space = (lzeroSpace) ? 4 * 0.5 : -1;
}

ConfigurationGroup::~ConfigurationGroup()
Expand Down Expand Up @@ -107,31 +108,22 @@ void ConfigurationGroup::Save(QString destination)
(*it)->GetStorage()->Save(destination);
}

QWidget* VerticalConfigurationGroup::configWidget(ConfigurationGroup *cg,
QWidget* parent,
const char* widgetName)
QWidget *VerticalConfigurationGroup::configWidget(
ConfigurationGroup *cg,
QWidget *parent,
const char *widgetName)
{
widget = new Q3GroupBox(parent, widgetName);
connect(widget, SIGNAL(destroyed(QObject*)),
this, SLOT(widgetDeleted(QObject*)));

widget->setBackgroundOrigin(QWidget::WindowOrigin);

if (!useframe)
widget->setFrameShape(Q3GroupBox::NoFrame);

layout = new QVBoxLayout(widget, margin, space);

if (uselabel)
widget->setTitle(getLabel());
layout = new QVBoxLayout();
layout->setMargin(margin);
layout->setSpacing((space<0) ? margin : space);

childwidget.resize(children.size());
for (uint i = 0; i < children.size(); i++)
{
if (children[i] && children[i]->isVisible())
{
childwidget[i] = children[i]->configWidget(cg, widget, NULL);
layout->add(childwidget[i]);
childwidget[i] = children[i]->configWidget(cg, NULL, NULL);
layout->addWidget(childwidget[i]);
children[i]->setEnabled(children[i]->isEnabled());
}
}
Expand All @@ -143,6 +135,30 @@ QWidget* VerticalConfigurationGroup::configWidget(ConfigurationGroup *cg,
confgrp = cg;
}

QWidget *widget = NULL;
if (uselabel)
{
QGroupBox *groupbox = new QGroupBox(parent);
groupbox->setObjectName(QString("VCG(%1)_groupbox").arg(widgetName));
groupbox->setTitle(getLabel());
widget = groupbox;
}
else if (useframe)
{
QFrame *frame = new QFrame(parent);
frame->setFrameStyle(QFrame::Box);
frame->setObjectName(QString("VCG(%1)_frame").arg(widgetName));
widget = frame;
}
else
{
widget = new QWidget(parent);
widget->setObjectName(QString("VCG(%1)_widget").arg(widgetName));
}

widget->setLayout(layout);
connect(widget, SIGNAL(destroyed(QObject*)),
this, SLOT(widgetDeleted(QObject*)));
return widget;
}

Expand Down Expand Up @@ -177,7 +193,7 @@ bool VerticalConfigurationGroup::replaceChild(
if (childwidget[i])
{
old_child->widgetInvalid(childwidget[i]);
layout->remove(childwidget[i]);
layout->removeWidget(childwidget[i]);
childwidget[i]->deleteLater();
childwidget[i] = NULL;
}
Expand All @@ -190,7 +206,7 @@ bool VerticalConfigurationGroup::replaceChild(
if (was_visible)
{
childwidget[i] = new_child->configWidget(confgrp, widget, NULL);
layout->add(childwidget[i]);
layout->addWidget(childwidget[i]);
new_child->setEnabled(was_enabled);
childwidget[i]->resize(1,1);
childwidget[i]->show();
Expand All @@ -208,78 +224,103 @@ void VerticalConfigurationGroup::repaint(void)
widget->repaint();
}

QWidget* HorizontalConfigurationGroup::configWidget(ConfigurationGroup *cg,
QWidget* parent,
const char* widgetName)
QWidget *HorizontalConfigurationGroup::configWidget(
ConfigurationGroup *cg,
QWidget *parent,
const char *widgetName)
{
Q3GroupBox* widget = new Q3GroupBox(parent, widgetName);
widget->setBackgroundOrigin(QWidget::WindowOrigin);

if (!useframe)
widget->setFrameShape(Q3GroupBox::NoFrame);
QHBoxLayout *layout = new QHBoxLayout();
layout->setMargin(margin);
layout->setSpacing((space<0) ? margin : space);

QHBoxLayout *layout = new QHBoxLayout(widget, margin, space);

if (uselabel)
for (uint i = 0 ; i < children.size() ; ++i)
{
// This makes weird and bad things happen in qt -mdz 2002/12/28
//widget->setInsideMargin(20);
widget->setTitle(getLabel());
}

for(unsigned i = 0 ; i < children.size() ; ++i)
if (children[i]->isVisible())
if (children[i] && children[i]->isVisible())
{
QWidget *child = children[i]->configWidget(cg, widget, NULL);
layout->add(child);
QWidget *child = children[i]->configWidget(cg, NULL, NULL);
layout->addWidget(child);
children[i]->setEnabled(children[i]->isEnabled());
}
}

if (cg)
{
connect(this, SIGNAL(changeHelpText(QString)), cg,
SIGNAL(changeHelpText(QString)));
connect(this, SIGNAL(changeHelpText(QString)),
cg, SIGNAL(changeHelpText(QString)));
}

QWidget *widget = NULL;
if (uselabel)
{
QGroupBox *groupbox = new QGroupBox(parent);
groupbox->setObjectName(QString("HCG(%1)_groupbox").arg(widgetName));
groupbox->setTitle(getLabel());
widget = groupbox;
}
else if (useframe)
{
QFrame *frame = new QFrame(parent);
frame->setFrameStyle(QFrame::Box);
frame->setObjectName(QString("HCG(%1)_frame").arg(widgetName));
widget = frame;
}
else
{
widget = new QWidget(parent);
widget->setObjectName(QString("HCG(%1)_widget").arg(widgetName));
}

widget->setLayout(layout);
return widget;
}

QWidget* GridConfigurationGroup::configWidget(ConfigurationGroup *cg,
QWidget* parent,
const char* widgetName)
QWidget* GridConfigurationGroup::configWidget(
ConfigurationGroup *cg,
QWidget *parent,
const char *widgetName)
{
Q3GroupBox* widget = new Q3GroupBox(parent, widgetName);
widget->setBackgroundOrigin(QWidget::WindowOrigin);

if (!useframe)
widget->setFrameShape(Q3GroupBox::NoFrame);
QGridLayout *layout = new QGridLayout();
layout->setMargin(margin);
layout->setSpacing(space < 0 ? margin : space);

QGridLayout *layout = NULL;

int rows = (children.size()+columns-1) / columns;

layout = new QGridLayout(widget, rows, columns, margin, space);

if (uselabel)
for (uint i = 0; i < children.size(); i++)
{
// This makes weird and bad things happen in qt -mdz 2002/12/28
//widget->setInsideMargin(20);
widget->setTitle(getLabel());
}

for (unsigned i = 0 ; i < children.size() ; ++i)
if (children[i]->isVisible())
if (children[i] && children[i]->isVisible())
{
QWidget *child = children[i]->configWidget(cg, widget, NULL);
QWidget *child = children[i]->configWidget(cg, NULL, NULL);
layout->addWidget(child, i / columns, i % columns);
children[i]->setEnabled(children[i]->isEnabled());
}
}

if (cg)
{
connect(this, SIGNAL(changeHelpText(QString)), cg,
SIGNAL(changeHelpText(QString)));
connect(this, SIGNAL(changeHelpText(QString)),
cg, SIGNAL(changeHelpText(QString)));
}

QWidget *widget = NULL;
if (uselabel)
{
QGroupBox *groupbox = new QGroupBox(parent);
groupbox->setObjectName(QString("GCG(%1)_groupbox").arg(widgetName));
groupbox->setTitle(getLabel());
widget = groupbox;
}
else if (useframe)
{
QFrame *frame = new QFrame(parent);
frame->setFrameStyle(QFrame::Box);
frame->setObjectName(QString("GCG(%1)_frame").arg(widgetName));
widget = frame;
}
else
{
widget = new QWidget(parent);
widget->setObjectName(QString("GCG(%1)_widget").arg(widgetName));
}

widget->setLayout(layout);

return widget;
}
Expand Down
5 changes: 4 additions & 1 deletion mythtv/libs/libmyth/mythconfiggroups.h
Expand Up @@ -3,6 +3,9 @@
#ifndef MYTH_CONFIG_GROUPS_H
#define MYTH_CONFIG_GROUPS_H

#include <QVBoxLayout>
#include <QGroupBox>

// MythTV headers
#include "mythexp.h"
#include "mythstorage.h"
Expand Down Expand Up @@ -87,7 +90,7 @@ class MPUBLIC VerticalConfigurationGroup : public ConfigurationGroup

private:
vector<QWidget*> childwidget;
Q3GroupBox *widget;
QGroupBox *widget;
ConfigurationGroup *confgrp;
QVBoxLayout *layout;
};
Expand Down

0 comments on commit 9686f03

Please sign in to comment.