first draft for fixing resize problem

preferencesAboutTextFull
Claudio Valerio 13 years ago
parent 0aab9a9957
commit bac4c4caac
  1. 41
      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){ if(NULL != mpLayout){
mpEmptyLabel->setVisible(false); mpEmptyLabel->setVisible(false);
mWidgets << widget;
updateSize(true, widget); updateSize(true, widget);
mpLayout->addWidget(widget); mpLayout->addWidget(widget);
mWidgets << widget;
} }
} }
@ -76,34 +76,31 @@ void UBWidgetList::updateSize(bool widgetAdded, QWidget *widget)
int newWidgetHeight; int newWidgetHeight;
if(eWidgetListOrientation_Vertical == mOrientation){ if(eWidgetListOrientation_Vertical == mOrientation){
scaleFactor = (float)mpContainer->width() / (float)widget->width(); scaleFactor = (float)widget->width() / (float)mpContainer->width();
}else{ }else{
scaleFactor = (float)mpContainer->height() / (float)widget->height(); scaleFactor = (float)widget->height() / (float)mpContainer->height();
} }
newWidgetWidth = (int)((float)widget->width()*scaleFactor); newWidgetWidth = widget->width()/scaleFactor;
newWidgetHeight = (int)((float)widget->height()*scaleFactor); newWidgetHeight = widget->height()/scaleFactor;
qDebug() << "container size " << mpContainer->size();
qDebug() << "widget size " << widget->size();
qDebug() << "scale factor " << scaleFactor;
widget->resize(newWidgetWidth, newWidgetHeight); widget->resize(newWidgetWidth, newWidgetHeight);
qDebug() << "widget new value " << newWidgetWidth << "x" << newWidgetHeight;
// Now we have to update the container // Now we have to update the container
if(eWidgetListOrientation_Vertical == mOrientation){ if(eWidgetListOrientation_Vertical == mOrientation){
if(widgetAdded){ if(widgetAdded){
mpContainer->resize(mpContainer->width(), mpContainer->height() + newWidgetHeight); mpContainer->resize(mpContainer->width(), mpContainer->height() + newWidgetHeight);
}else{ }
else{
mpContainer->resize(mpContainer->width(), mpContainer->height() - newWidgetHeight); mpContainer->resize(mpContainer->width(), mpContainer->height() - newWidgetHeight);
} }
}else{ }
else{
if(widgetAdded){ if(widgetAdded){
mpContainer->resize(mpContainer->width() + newWidgetWidth, mpContainer->height()); mpContainer->resize(mpContainer->width() + newWidgetWidth, mpContainer->height());
}else{ }
else{
mpContainer->resize(mpContainer->width() - newWidgetWidth, mpContainer->height()); mpContainer->resize(mpContainer->width() - newWidgetWidth, mpContainer->height());
} }
} }
@ -119,12 +116,17 @@ void UBWidgetList::resizeEvent(QResizeEvent *ev)
float scale; float scale;
if(eWidgetListOrientation_Vertical == mOrientation){ if(eWidgetListOrientation_Vertical == mOrientation){
scale = (float)ev->size().width() / (float)ev->oldSize().width(); scale = (float)ev->size().width() / (float)ev->oldSize().width();
updateAllWidgetsize(scale); if(scale != 0 && scale < 10){
mpContainer->resize(width() - 2, mpContainer->height()*scale); updateAllWidgetsize(scale);
}else{ mpContainer->resize(width() - 2, mpContainer->height()*scale);
}
}
else{
scale = (float)ev->size().height() / (float)ev->oldSize().height(); scale = (float)ev->size().height() / (float)ev->oldSize().height();
updateAllWidgetsize(scale); if(scale != 0 && scale < 10){
mpContainer->resize(mpContainer->width()*scale, height() - 2); updateAllWidgetsize(scale);
mpContainer->resize(mpContainer->width()*scale, height() - 2);
}
} }
} }
} }
@ -154,3 +156,4 @@ void UBWidgetList::setEmptyText(const QString &text)
} }
// TODO : - add onHover 'delete' button // TODO : - add onHover 'delete' button

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

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

Loading…
Cancel
Save