Source Code (Use browser search to find items of interest.)

Class Index

ksysctrl'ConflictDisplay (./kdeadmin/ksysctrl/ksysctrl/conflictdisplay.h:32)

class ConflictDisplay : public QWidget
{
  public:
  
    ConflictDisplay(QWidget *parent = 0L, const char *name = 0L);
    ~ConflictDisplay() {}

            void   reset();
            void   showConflicts(QList<Conflict>&);

    virtual QSize  minimumSizeHint() const;
    virtual QSize  sizeHint()        const;

  protected:

    void  resizeEvent(QResizeEvent *);

  private:
  
    QFrame         *_frame;
    QWidget        *_background;
    QScrollView    *_scrollview;
    
    QList<QLabel>  _labellist;
    uint           _listwidth, _listheight;

    void  clear();
};


ksysctrl'ConflictDisplay::ConflictDisplay() (./kdeadmin/ksysctrl/ksysctrl/conflictdisplay.cpp:26)

ConflictDisplay::ConflictDisplay(QWidget *parent, const char *name) : QWidget(parent, name),
								      _listwidth(0),
								      _listheight(0)
{
  _labellist.setAutoDelete(true);
  _labellist.clear();

  _scrollview = new QScrollView(this, "scrollview");
  _scrollview->setVScrollBarMode(QScrollView::AlwaysOn);
  _scrollview->setFrameStyle(QFrame::Panel | QFrame::Sunken);
  _scrollview->setLineWidth(2);
  
  _background = new QWidget(_scrollview, "background");
  
  reset();
}


/*
 * Public methods
 *****************/
 

ksysctrl'ConflictDisplay::minimumSizeHint() (./kdeadmin/ksysctrl/ksysctrl/conflictdisplay.cpp:48)

QSize  ConflictDisplay::minimumSizeHint() const
{
  return QSize(_listwidth, 70);
}



ksysctrl'ConflictDisplay::reset() (./kdeadmin/ksysctrl/ksysctrl/conflictdisplay.cpp:54)

void  ConflictDisplay::reset()
{
  QLabel   *label;
  QWidget  *viewport = _scrollview->viewport();
  
  clear();
  
  label = new QLabel(i18n("No conflicts."), _background);
  label->adjustSize();
  
  _listwidth  = label->width();
  _listheight = label->height();
  
  _labellist.append(label);
  label->move(0, 0);
  label->show();
  
  _background->resize(QMAX(_listwidth,  (uint) viewport->width()), 
  		      QMAX(_listheight, (uint) viewport->height()));
}



ksysctrl'ConflictDisplay::showConflicts() (./kdeadmin/ksysctrl/ksysctrl/conflictdisplay.cpp:76)

void  ConflictDisplay::showConflicts(QList<Conflict>& conflictlist)
{
  Conflict  *conflict;
  QLabel    *label;
  QWidget   *viewport = _scrollview->viewport();
  
  clear();
  
  for (conflict = conflictlist.first(); conflict; conflict = conflictlist.next())
  {
    label = new QLabel(conflict->description(), _background);
    label->adjustSize();
    
    _labellist.append(label);
    label->move(0, _listheight);
    label->show();
    
    _listwidth   = QMAX(_listwidth, (uint) label->width());
    _listheight += label->height(); 
  }
  
  _background->resize(QMAX(_listwidth,  (uint) viewport->width()), 
  		      QMAX(_listheight, (uint) viewport->height())); 
}



ksysctrl'ConflictDisplay::sizeHint() (./kdeadmin/ksysctrl/ksysctrl/conflictdisplay.cpp:102)

QSize  ConflictDisplay::sizeHint() const
{
  return QSize(_listwidth, QMAX(70, _listheight));
}


/*
 * Protected methods
 ********************/
 

ksysctrl'ConflictDisplay::resizeEvent() (./kdeadmin/ksysctrl/ksysctrl/conflictdisplay.cpp:112)

void  ConflictDisplay::resizeEvent(QResizeEvent *ev)
{
  uint     w = width();
  uint     h = height();
  uint     backw;
  uint     backh;
  QWidget  *viewport = _scrollview->viewport();
  
  _scrollview->setGeometry(0, 0, w, h);
  
  backw = QMAX(_listwidth-4,  (uint) viewport->width());
  backh = QMAX(_listheight-4, (uint) viewport->height());
  
  _background->setGeometry(2, 2, backw, backh); 
}


/*
 * Private methods
 ******************/
 

ksysctrl'ConflictDisplay::clear() (./kdeadmin/ksysctrl/ksysctrl/conflictdisplay.cpp:133)

void  ConflictDisplay::clear()
{
  _labellist.clear();   
  _listwidth = _listheight = 0;
}