From 8988bde2c41f314acbe7c8409ce8e9c1465fdee8 Mon Sep 17 00:00:00 2001 From: Szymon Tomasz Stefanek Date: Sat, 5 Mar 2011 03:27:15 +0000 Subject: More file renaming git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@5537 17fca916-40b9-46aa-a4ea-0a15b648b75c --- src/modules/theme/managementdialog.cpp | 457 --------------------------------- 1 file changed, 457 deletions(-) delete mode 100644 src/modules/theme/managementdialog.cpp (limited to 'src/modules/theme/managementdialog.cpp') diff --git a/src/modules/theme/managementdialog.cpp b/src/modules/theme/managementdialog.cpp deleted file mode 100644 index 0aa1a4d15..000000000 --- a/src/modules/theme/managementdialog.cpp +++ /dev/null @@ -1,457 +0,0 @@ -//============================================================================= -// -// File : managementdialog.cpp -// Creation date : Sat 30 Dec 2006 14:54:56 by Szymon Stefanek -// -// This file is part of the KVIrc IRC Client distribution -// Copyright (C) 2006-2010 Szymon Stefanek -// -// This program is FREE software. You can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your opinion) any later version. -// -// This program is distributed in the HOPE that it will be USEFUL, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, write to the Free Software Foundation, -// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -// -//============================================================================= - -#include "managementdialog.h" -#include "PackThemeDialog.h" -#include "SaveThemeDialog.h" -#include "ThemeFunctions.h" - -#include "KviOptions.h" -#include "KviLocale.h" -#include "KviConfigurationFile.h" -#include "KviFileUtils.h" -#include "KviApplication.h" -#include "KviMainWindow.h" -#include "KviIconManager.h" -#include "KviInternalCommand.h" -#include "KviPackageReader.h" -#include "kvi_fileextensions.h" -#include "KviFileDialog.h" -#include "KviDynamicToolTip.h" -#include "KviIconManager.h" -#include "KviMessageBox.h" -#include "KviTalPopupMenu.h" -#include "KviTalListWidget.h" - - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -extern QRect g_rectManagementDialogGeometry; - - -ThemeListWidgetItem::ThemeListWidgetItem(KviTalListWidget * box,KviThemeInfo * inf) -: KviTalListWidgetItem(box) -{ - m_pThemeInfo = inf; - QString t; - t = ""; - t += inf->name(); - t += ""; - - if(!inf->version().isEmpty()) { - t += "["; - t += inf->version(); - t += "]"; - } - - if(!inf->author().isEmpty()) { - t += " "; - t += __tr2qs_ctx("by","theme"); - t += " "; - t += inf->author(); - t += ""; - } - - t += ""; - t += "
"; - t += inf->description(); - t += ""; - setText(t); -} - -ThemeListWidgetItem::~ThemeListWidgetItem() -{ - delete m_pThemeInfo; - -} - -ThemeManagementDialog * ThemeManagementDialog::m_pInstance = 0; - - -ThemeManagementDialog::ThemeManagementDialog(QWidget * parent) -: QWidget(parent) -{ - m_pItemDelegate=0; - setObjectName("theme_options_widget"); - setWindowTitle(__tr2qs_ctx("Manage Themes - KVIrc","theme")); - setWindowIcon(*(g_pIconManager->getSmallIcon(KviIconManager::Theme))); - - m_pInstance = this; - - QGridLayout * g = new QGridLayout(this); - - KviTalHBox *hb = new KviTalHBox(this); - hb->setMargin(1); - hb->setSpacing(1); - g->addWidget(hb,0,0); - - QToolButton * tb; - QFrame * sep; - - tb = new QToolButton(hb); - tb->setIcon(*(g_pIconManager->getBigIcon(KVI_BIGICON_SAVE))); - tb->setIconSize(QSize(32,32)); - tb->setToolTip(__tr2qs_ctx("Save Current Theme...","theme")); - connect(tb,SIGNAL(clicked()),this,SLOT(saveCurrentTheme())); - - sep = new QFrame(hb); - sep->setFrameStyle(QFrame::VLine | QFrame::Sunken); - sep->setMinimumWidth(12); - - m_pPackThemeButton = new QToolButton(hb); - m_pPackThemeButton->setIcon(*(g_pIconManager->getBigIcon(KVI_BIGICON_PACK))); - - m_pPackThemeButton->setIconSize(QSize(32,32)); - m_pPackThemeButton->setToolTip(__tr2qs_ctx("Export Selected Themes to a Distributable Package","theme")); - connect(m_pPackThemeButton,SIGNAL(clicked()),this,SLOT(packTheme())); - - m_pDeleteThemeButton = new QToolButton(hb); - m_pDeleteThemeButton->setIcon(*(g_pIconManager->getBigIcon(KVI_BIGICON_REMOVE))); - m_pDeleteThemeButton->setIconSize(QSize(32,32)); - m_pDeleteThemeButton->setToolTip(__tr2qs_ctx("Delete Selected Themes","theme")); - connect(m_pDeleteThemeButton,SIGNAL(clicked()),this,SLOT(deleteTheme())); - - sep = new QFrame(hb); - sep->setFrameStyle(QFrame::VLine | QFrame::Sunken); - sep->setMinimumWidth(12); - - tb = new QToolButton(hb); - tb->setIcon(*(g_pIconManager->getBigIcon(KVI_BIGICON_OPEN))); - tb->setIconSize(QSize(32,32)); - tb->setToolTip(__tr2qs_ctx("Install Theme Package From Disk","theme")); - connect(tb,SIGNAL(clicked()),this,SLOT(installFromFile())); - - tb = new QToolButton(hb); - tb->setIcon(*(g_pIconManager->getBigIcon(KVI_BIGICON_WWW))); - tb->setIconSize(QSize(32,32)); - tb->setToolTip(__tr2qs_ctx("Get More Themes...","theme")); - connect(tb,SIGNAL(clicked()),this,SLOT(getMoreThemes())); - - QWidget *w= new QWidget(hb); - w->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Minimum); - - m_pListWidget = new KviTalListWidget(this); - m_pListWidget->setContextMenuPolicy(Qt::CustomContextMenu); - m_pItemDelegate = new KviTalIconAndRichTextItemDelegate(m_pListWidget); - m_pItemDelegate->setDefaultIcon(g_pIconManager->getBigIcon(QString(KVI_BIGICON_THEME))); - m_pListWidget->setItemDelegate(m_pItemDelegate); - m_pListWidget->setMinimumHeight(400); - m_pListWidget->setMinimumWidth(400); - - m_pListWidget->setSelectionMode(QAbstractItemView::ExtendedSelection); - m_pListWidget->setSortingEnabled(true); - connect(m_pListWidget,SIGNAL(itemDoubleClicked(QListWidgetItem *)),this,SLOT(applyTheme(QListWidgetItem *))); - - //FIXME tooltip - //connect(m_pListWidget,SIGNAL(tipRequest(QListWidgetItem *,const QPoint &)),this,SLOT(tipRequest(QListWidgetItem *,const QPoint &))); - connect(m_pListWidget,SIGNAL(customContextMenuRequested(const QPoint &)), - this,SLOT(contextMenuRequested(const QPoint &))); - connect(m_pListWidget,SIGNAL(itemSelectionChanged()),this,SLOT(enableDisableButtons())); - g->addWidget(m_pListWidget,1,0); - -// KviDynamicToolTip * tip = new KviDynamicToolTip(m_pListWidget); -// connect(tip,SIGNAL(tipRequest(KviDynamicToolTip *,const QPoint &)),this,SLOT(tipRequest(KviDynamicToolTip *,const QPoint &))); - - QPushButton * b = new QPushButton(__tr2qs("Close"),this); - b->setMaximumSize(b->sizeHint().width(),b->sizeHint().height()); - connect(b,SIGNAL(clicked()),this,SLOT(closeClicked())); - g->addWidget(b,2,0); - - g->setMargin(1); - g->setSpacing(1); - g->setAlignment(b,Qt::AlignRight); - fillThemeBox(); - m_pContextPopup = new KviTalPopupMenu(this); - - if(g_rectManagementDialogGeometry.y() < 5) - { - g_rectManagementDialogGeometry.setY(5); - } - resize(g_rectManagementDialogGeometry.width(), - g_rectManagementDialogGeometry.height()); - - QRect rect = g_pApp->desktop()->screenGeometry(g_pMainWindow); - move(rect.x() + ((rect.width() - g_rectManagementDialogGeometry.width())/2),rect.y() + ((rect.height() - g_rectManagementDialogGeometry.height())/2)); -} - -ThemeManagementDialog::~ThemeManagementDialog() -{ - if (m_pItemDelegate) delete m_pItemDelegate; - g_rectManagementDialogGeometry = QRect(pos().x(),pos().y(),size().width(),size().height()); - m_pInstance = 0; -} - -void ThemeManagementDialog::closeClicked() -{ - delete this; - m_pInstance = 0; -} - -void ThemeManagementDialog::display(bool bTopLevel) -{ - if(m_pInstance) - { - if(bTopLevel) - { - if(m_pInstance->parent()) - { - m_pInstance->setParent(0); - } - } else { - if(m_pInstance->parent() != g_pMainWindow->splitter()) - { - m_pInstance->setParent(g_pMainWindow->splitter()); - } - } - } else { - if(bTopLevel) - { - m_pInstance = new ThemeManagementDialog(0); - } else { - m_pInstance = new ThemeManagementDialog(g_pMainWindow->splitter()); - } - } - m_pInstance->show(); - m_pInstance->raise(); - m_pInstance->setFocus(); -} - -void ThemeManagementDialog::cleanup() -{ - if(!m_pInstance)return; - delete m_pInstance; - m_pInstance = 0; -} - -void ThemeManagementDialog::packTheme() -{ - KviPointerList dl; - dl.setAutoDelete(false); - QList itemsSelected = m_pListWidget->selectedItems (); - for(int i=0;ithemeInfo()); - if(dl.isEmpty())return; - - PackThemeDialog * pDialog = new PackThemeDialog(this,&dl); - pDialog->exec(); - delete pDialog; -} - -void ThemeManagementDialog::contextMenuRequested(const QPoint & pos) -{ - if(m_pListWidget->itemAt(pos)!=0) - { - m_pListWidget->setCurrentItem(m_pListWidget->itemAt(pos)); - m_pContextPopup->clear(); - m_pContextPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Minus)),__tr2qs_ctx("&Remove Theme","theme"),this,SLOT(deleteTheme())); - m_pContextPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Accept)),__tr2qs_ctx("&Apply Theme","theme"),this,SLOT(applyCurrentTheme())); - m_pContextPopup->popup(m_pListWidget->viewport()->mapToGlobal(pos)); - } -} - -void ThemeManagementDialog::applyTheme ( QListWidgetItem * it) -{ - if(it)m_pListWidget->setCurrentItem(it); - applyCurrentTheme(); -} - -void ThemeManagementDialog::applyCurrentTheme() -{ - ThemeListWidgetItem * it = (ThemeListWidgetItem *)m_pListWidget->currentItem(); - if(!it)return; - - if(KviMessageBox::yesNo(__tr2qs_ctx("Apply theme - KVIrc","theme"), - __tr2qs_ctx("Do you wish to apply theme \"%Q\" (version %Q)?","theme"), - &(it->themeInfo()->name()),&(it->themeInfo()->version()))) - { - QString szPath = it->themeInfo()->absoluteDirectory(); - if(szPath.isEmpty())return; - - KviThemeInfo out; - if(!KviTheme::load(szPath,out)) - { - QString szErr = out.lastError(); - QString szMsg = QString(__tr2qs_ctx("Failed to apply the specified theme: %1","theme")).arg(szErr); - QMessageBox::critical(this,__tr2qs_ctx("Apply theme - KVIrc","theme"),szMsg, - QMessageBox::Ok,QMessageBox::NoButton,QMessageBox::NoButton); - - } - m_pItemDelegate->setDefaultIcon(g_pIconManager->getBigIcon(QString(KVI_BIGICON_THEME))); - } -} - -void ThemeManagementDialog::deleteTheme() -{ - QList itemsSelected = m_pListWidget->selectedItems (); - for(int i=0;ithemeInfo()->name()),&(((ThemeListWidgetItem *)itemsSelected.at(i))->themeInfo()->version())))goto jump_out; - KviFileUtils::deleteDir(((ThemeListWidgetItem *)itemsSelected.at(i))->themeInfo()->absoluteDirectory()); - } -jump_out: - fillThemeBox(); -} - -void ThemeManagementDialog::installFromFile() -{ - QString szFileName; - QString szError; - - if(!KviFileDialog::askForOpenFileName(szFileName,__tr2qs_ctx("Open Theme - KVIrc","theme"),QString(),KVI_FILTER_THEME)) - return; - if(!ThemeFunctions::installThemePackage(szFileName,szError,this)) - { - KviMessageBox::information(szError); - return; - } - fillThemeBox(); -} - -void ThemeManagementDialog::getMoreThemes() -{ - if(!g_pMainWindow)return; - g_pMainWindow->executeInternalCommand(KVI_INTERNALCOMMAND_OPENURL_KVIRC_THEMES); -} - -void ThemeManagementDialog::saveCurrentTheme() -{ - SaveThemeDialog * pSaveThemeDialog = new SaveThemeDialog(this); - pSaveThemeDialog->exec(); - delete pSaveThemeDialog; - fillThemeBox(); -} - -void ThemeManagementDialog::fillThemeBox(const QString &szDir) -{ - QDir d(szDir); - - QStringList sl = d.entryList(QDir::Dirs); - - for(QStringList::Iterator it = sl.begin();it != sl.end();++it) - { - if(*it == ".")continue; - if(*it == "..")continue; - - QString szTest = szDir; - szTest += KVI_PATH_SEPARATOR_CHAR; - szTest += *it; - - KviThemeInfo * inf = new KviThemeInfo(); - if(inf->loadFromDirectory(szTest)) - { - inf->setSubdirectory(*it); - new ThemeListWidgetItem(m_pListWidget,inf); - } else { - delete inf; - } - } -} - -void ThemeManagementDialog::fillThemeBox() -{ - m_pListWidget->clear(); - - QString szDir; - g_pApp->getGlobalKvircDirectory(szDir,KviApplication::Themes); - fillThemeBox(szDir); - g_pApp->getLocalKvircDirectory(szDir,KviApplication::Themes); - fillThemeBox(szDir); - - enableDisableButtons(); -} - -bool ThemeManagementDialog::hasSelectedItems() -{ - QList itemsSelected = m_pListWidget->selectedItems (); - return itemsSelected.count()?true:false; - -} - -void ThemeManagementDialog::enableDisableButtons() -{ - bool b = hasSelectedItems(); - m_pPackThemeButton->setEnabled(b); - m_pDeleteThemeButton->setEnabled(b); -} - -void ThemeManagementDialog::closeEvent(QCloseEvent * e) -{ - e->ignore(); - delete this; -} - -void ThemeManagementDialog::tipRequest(QListWidgetItem *,const QPoint &) -{ - // FIXME - /* - //ThemeListWidgetItem * it = (ThemeListWidgetItem *)(m_pListWidget->itemAt(pnt)); - - //if(!it)return; - - KviThemeInfo * pThemeInfo = ((ThemeListWidgetItem *)it)->themeInfo(); - - QString szThemeDescription; - - ThemeFunctions::getThemeHtmlDescription( - szThemeDescription, - pThemeInfo->name(), - pThemeInfo->version(), - pThemeInfo->description(), - pThemeInfo->subdirectory(), - pThemeInfo->application(), - pThemeInfo->author(), - pThemeInfo->date(), - pThemeInfo->themeEngineVersion(), - pThemeInfo->mediumScreenshot(), - 0 - ); - QLabel *wid=new QLabel(0); - wid->setWindowFlags(Qt::Popup); - wid->setText("Prova del tooltip"); - wid->move(pnt); - wid->show(); -// pTip->tip(m_pListWidget->visualItemRect(it),szThemeDescription); -*/ -} - -- cgit v1.3.1-10-gc9f91