diff options
| author | 2011-03-02 22:13:00 +0000 | |
|---|---|---|
| committer | 2011-03-02 22:13:00 +0000 | |
| commit | 03e011bf335157e38a2aac75dbed4377c71bfb75 (patch) | |
| tree | 6369b163a66aca49ac8f8a3be8d2831cd281e51a /src/modules/options/OptionsWidget_textIcons.cpp | |
| parent | I'm a bit fussy (diff) | |
| download | KVIrc-03e011bf335157e38a2aac75dbed4377c71bfb75.tar.gz KVIrc-03e011bf335157e38a2aac75dbed4377c71bfb75.tar.bz2 KVIrc-03e011bf335157e38a2aac75dbed4377c71bfb75.zip | |
fix for a crahs in the texticons option widget
disabled the "load external file" option, since it was not working anyway
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@5531 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules/options/OptionsWidget_textIcons.cpp')
| -rw-r--r-- | src/modules/options/OptionsWidget_textIcons.cpp | 130 |
1 files changed, 59 insertions, 71 deletions
diff --git a/src/modules/options/OptionsWidget_textIcons.cpp b/src/modules/options/OptionsWidget_textIcons.cpp index e0015f3ed..0017b294b 100644 --- a/src/modules/options/OptionsWidget_textIcons.cpp +++ b/src/modules/options/OptionsWidget_textIcons.cpp @@ -29,8 +29,10 @@ #include "KviLocale.h" #include "KviFileDialog.h" #include "kvi_fileextensions.h" +#include "KviTalPopupMenu.h" #include "KviTalHBox.h" +#include <QToolButton> #include <QLayout> #include <QCursor> #include <QHeaderView> @@ -63,9 +65,6 @@ void TextIconTableItem::setId(int id) OptionsWidget_textIcons::OptionsWidget_textIcons(QWidget * parent) : KviOptionsWidget(parent) { - m_pBox=0; - m_pIconButton=0; - m_pBrowseButton=0; m_pPopup=0; m_iLastEditedRow=-1; @@ -101,19 +100,13 @@ OptionsWidget_textIcons::OptionsWidget_textIcons(QWidget * parent) connect(m_pRestore,SIGNAL(clicked()),this,SLOT(restoreClicked())); connect(m_pTable,SIGNAL(itemSelectionChanged()),this,SLOT(itemSelectionChanged())); - connect(m_pTable,SIGNAL(itemClicked(QTableWidgetItem *)),this,SLOT(itemClicked(QTableWidgetItem *))); + connect(m_pTable,SIGNAL(currentItemChanged(QTableWidgetItem *, QTableWidgetItem *)),this,SLOT(currentItemChanged(QTableWidgetItem *, QTableWidgetItem *))); fillTable(); } OptionsWidget_textIcons::~OptionsWidget_textIcons() { - if(m_pIconButton) - delete m_pIconButton; - if(m_pBrowseButton) - delete m_pBrowseButton; - if(m_pBox) - delete m_pBox; } void OptionsWidget_textIcons::fillTable() @@ -167,66 +160,76 @@ void OptionsWidget_textIcons::iconSelected(KviIconManager::SmallIcon eIcon) { m_pItem->icon()->setId(eIcon); m_pItem->setIcon(QIcon(*m_pItem->icon()->pixmap())); - m_pIconButton->setIcon(QIcon(*m_pItem->icon()->pixmap())); -} -void OptionsWidget_textIcons::chooseFromFile() -{ - QString szFile; - KviFileDialog::askForOpenFileName(szFile,"Choose icon filename",QString(),KVI_FILTER_IMAGE,"options"); - if(!szFile.isEmpty()) - { - if(g_pIconManager->getPixmap(szFile)) - { - m_pItem->icon()->setFilename(szFile); - m_pItem->setIcon(QIcon(*m_pItem->icon()->pixmap())); - m_pIconButton->setIcon(QIcon(*m_pItem->icon()->pixmap())); - } - } + KviTalHBox * pBox=new KviTalHBox(0); + pBox->setSpacing(0); + pBox->setMargin(0); + + QToolButton * pIconButton=new QToolButton(pBox); + pIconButton->setMinimumWidth(150); + pIconButton->setIcon(QIcon(*m_pItem->icon()->pixmap())); + connect(pIconButton,SIGNAL(clicked()),this,SLOT(doPopup())); + +// FIXME: this does not work currently! +// QToolButton * pBrowseButton=new QToolButton(pBox); +// pBrowseButton->setText("..."); +// connect(pBrowseButton,SIGNAL(clicked()),this,SLOT(chooseFromFile())); + + m_pTable->setCellWidget(m_pItem->row(),1,pBox); } + +// FIXME: this does not work currently! +// void OptionsWidget_textIcons::chooseFromFile() +// { +// QString szFile; +// KviFileDialog::askForOpenFileName(szFile,"Choose icon filename",QString(),KVI_FILTER_IMAGE,"options"); +// if(!szFile.isEmpty()) +// { +// if(g_pIconManager->getPixmap(szFile)) +// { +// m_pItem->icon()->setFilename(szFile); +// m_pItem->setIcon(QIcon(*m_pItem->icon()->pixmap())); +// m_pIconButton->setIcon(QIcon(*m_pItem->icon()->pixmap())); +// } +// } +// } void OptionsWidget_textIcons::itemSelectionChanged() { int i = m_pTable->currentRow(); m_pDel->setEnabled(i >= 0 && i < m_pTable->rowCount()); } -void OptionsWidget_textIcons::itemClicked(QTableWidgetItem *i) -{ - if (i->column()!=1) return; - if (m_iLastEditedRow==i->row()) return; - - m_pItem=(TextIconTableItem *)i; - if(m_pIconButton) - { - delete m_pIconButton; - m_pIconButton = NULL; - } - if(m_pBrowseButton) - { - delete m_pBrowseButton; - m_pBrowseButton = NULL; - } - if (m_pBox) +void OptionsWidget_textIcons::currentItemChanged(QTableWidgetItem *cur, QTableWidgetItem *prev) +{ + if(prev) { - delete m_pBox; - m_pBox = NULL; + QWidget * pOldWidget = m_pTable->cellWidget(prev->row(),1); + if(pOldWidget) + m_pTable->setCellWidget(prev->row(),1,NULL); } - m_pBox=new KviTalHBox(0); - m_pBox->setSpacing(0); - m_pBox->setMargin(0); + if(!cur) return; + if(cur->column()!=1) return; + if(m_iLastEditedRow==cur->row() || cur == prev) return; + + m_pItem=(TextIconTableItem *)cur; + + KviTalHBox * pBox=new KviTalHBox(0); + pBox->setSpacing(0); + pBox->setMargin(0); - m_pIconButton=new QToolButton(m_pBox); - m_pIconButton->setMinimumWidth(150); - m_pIconButton->setIcon(QIcon(i->icon())); - connect(m_pIconButton,SIGNAL(clicked()),this,SLOT(doPopup())); + QToolButton * pIconButton=new QToolButton(pBox); + pIconButton->setMinimumWidth(150); + pIconButton->setIcon(QIcon(cur->icon())); + connect(pIconButton,SIGNAL(clicked()),this,SLOT(doPopup())); - m_pBrowseButton=new QToolButton(m_pBox); - m_pBrowseButton->setText("..."); - connect(m_pBrowseButton,SIGNAL(clicked()),this,SLOT(chooseFromFile())); +// FIXME: this does not work currently! +// QToolButton * pBrowseButton=new QToolButton(pBox); +// pBrowseButton->setText("..."); +// connect(pBrowseButton,SIGNAL(clicked()),this,SLOT(chooseFromFile())); - m_pTable->setCellWidget(i->row(),1,m_pBox); - m_iLastEditedRow=i->row(); + m_pTable->setCellWidget(cur->row(),1,pBox); + m_iLastEditedRow=cur->row(); } void OptionsWidget_textIcons::addClicked() @@ -250,21 +253,6 @@ void OptionsWidget_textIcons::delClicked() if((i > -1) && (i < m_pTable->rowCount())) { - if(m_pIconButton) - { - delete m_pIconButton; - m_pIconButton=NULL; - } - if(m_pBrowseButton) - { - delete m_pBrowseButton; - m_pBrowseButton=NULL; - } - if (m_pBox) - { - delete m_pBox; - m_pBox=NULL; - } m_pTable->removeRow(i); if(m_pTable->rowCount() == 0) m_pDel->setEnabled(false); } |
