first draft for fixing resize problem

preferencesAboutTextFull
Claudio Valerio 13 years ago
parent 0aab9a9957
commit bac4c4caac
  1. 33
      src/customWidgets/UBWidgetList.cpp
  2. 17
      src/gui/UBTeacherBarWidget.cpp
  3. 2
      src/gui/UBTeacherBarWidget.h

@ -50,9 +50,9 @@ void UBWidgetList::addWidget(QWidget *widget)
{
if(NULL != mpLayout){
mpEmptyLabel->setVisible(false);
mWidgets << widget;
updateSize(true, widget);
mpLayout->addWidget(widget);
mWidgets << widget;
}
}
@ -76,34 +76,31 @@ void UBWidgetList::updateSize(bool widgetAdded, QWidget *widget)
int newWidgetHeight;
if(eWidgetListOrientation_Vertical == mOrientation){
scaleFactor = (float)mpContainer->width() / (float)widget->width();
scaleFactor = (float)widget->width() / (float)mpContainer->width();
}else{
scaleFactor = (float)mpContainer->height() / (float)widget->height();
scaleFactor = (float)widget->height() / (float)mpContainer->height();
}
newWidgetWidth = (int)((float)widget->width()*scaleFactor);
newWidgetHeight = (int)((float)widget->height()*scaleFactor);
qDebug() << "container size " << mpContainer->size();
qDebug() << "widget size " << widget->size();
qDebug() << "scale factor " << scaleFactor;
newWidgetWidth = widget->width()/scaleFactor;
newWidgetHeight = widget->height()/scaleFactor;
widget->resize(newWidgetWidth, newWidgetHeight);
qDebug() << "widget new value " << newWidgetWidth << "x" << newWidgetHeight;
// Now we have to update the container
if(eWidgetListOrientation_Vertical == mOrientation){
if(widgetAdded){
mpContainer->resize(mpContainer->width(), mpContainer->height() + newWidgetHeight);
}else{
}
else{
mpContainer->resize(mpContainer->width(), mpContainer->height() - newWidgetHeight);
}
}else{
}
else{
if(widgetAdded){
mpContainer->resize(mpContainer->width() + newWidgetWidth, mpContainer->height());
}else{
}
else{
mpContainer->resize(mpContainer->width() - newWidgetWidth, mpContainer->height());
}
}
@ -119,15 +116,20 @@ void UBWidgetList::resizeEvent(QResizeEvent *ev)
float scale;
if(eWidgetListOrientation_Vertical == mOrientation){
scale = (float)ev->size().width() / (float)ev->oldSize().width();
if(scale != 0 && scale < 10){
updateAllWidgetsize(scale);
mpContainer->resize(width() - 2, mpContainer->height()*scale);
}else{
}
}
else{
scale = (float)ev->size().height() / (float)ev->oldSize().height();
if(scale != 0 && scale < 10){
updateAllWidgetsize(scale);
mpContainer->resize(mpContainer->width()*scale, height() - 2);
}
}
}
}
void UBWidgetList::updateAllWidgetsize(float scale)
{
@ -154,3 +156,4 @@ void UBWidgetList::setEmptyText(const QString &text)
}
// TODO : - add onHover 'delete' button

@ -112,7 +112,7 @@ UBTeacherBarWidget::UBTeacherBarWidget(QWidget *parent, const char *name):UBDock
// Media
mpMediaLabel = new QLabel(tr("Media"), this);
mpLayout->addWidget(mpMediaLabel, 0);
mpDropMediaZone = new UBTeacherBarDropMediaZone();
mpDropMediaZone = new UBTeacherBarDropMediaZone(this);
mpLayout->addWidget(mpDropMediaZone, 1);
// Links
@ -369,9 +369,9 @@ UBTeacherBarDropMediaZone::UBTeacherBarDropMediaZone(QWidget *parent, const char
{
setObjectName(name);
setAcceptDrops(true);
mWidget.setEmptyText(tr("Drag media here ..."));
mLayout.addWidget(&mWidget);
mWidget = new UBWidgetList(parent);
mWidget->setEmptyText(tr("Drag media here ..."));
mLayout.addWidget(mWidget);
setLayout(&mLayout);
}
@ -379,6 +379,10 @@ UBTeacherBarDropMediaZone::UBTeacherBarDropMediaZone(QWidget *parent, const char
UBTeacherBarDropMediaZone::~UBTeacherBarDropMediaZone()
{
qDeleteAll(mWidgetList);
if(mWidget){
delete mWidget;
mWidget = NULL;
}
}
@ -423,9 +427,8 @@ void UBTeacherBarDropMediaZone::dropEvent(QDropEvent *pEvent)
QPixmap pix = pixFromDropEvent.height() ? pixFromDropEvent : QPixmap(resourcePath);
QLabel* label = new QLabel();
label->setPixmap(pix);
//label->resize(size());
label->setScaledContents(true);
mWidget.addWidget(label);
mWidget->addWidget(label);
mWidgetList << label;
}
else if(mimeType.contains("video") || mimeType.contains("audio")){
@ -433,7 +436,7 @@ void UBTeacherBarDropMediaZone::dropEvent(QDropEvent *pEvent)
mediaPlayer->setFile(resourcePath);
//mediaPlayer->resize(size());
mediaPlayer->playPause();
mWidget.addWidget(mediaPlayer);
mWidget->addWidget(mediaPlayer);
mWidgetList << mediaPlayer;
}
else{

@ -48,7 +48,7 @@ public:
private:
QList<QWidget*>mWidgetList;
UBWidgetList mWidget;
UBWidgetList* mWidget;
QVBoxLayout mLayout;

Loading…
Cancel
Save