diff options
Diffstat (limited to 'tdefilereplace/tdefilereplaceview.cpp')
-rw-r--r-- | tdefilereplace/tdefilereplaceview.cpp | 713 |
1 files changed, 0 insertions, 713 deletions
diff --git a/tdefilereplace/tdefilereplaceview.cpp b/tdefilereplace/tdefilereplaceview.cpp deleted file mode 100644 index 48a8343b..00000000 --- a/tdefilereplace/tdefilereplaceview.cpp +++ /dev/null @@ -1,713 +0,0 @@ -/***************************************************************************** - tdefilereplaceview.cpp - description - ------------------- - begin : sam oct 16 15:28:00 CEST 1999 - copyright : (C) 1999 by Fran�is Dupoux <[email protected]> - (C) 2004 Emiliano Gulmini <[email protected]> -*****************************************************************************/ - -/***************************************************************************** - * * - * 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 option) any later version. * - * * - *****************************************************************************/ - -// TQt -#include <tqwhatsthis.h> -#include <tqmap.h> -#include <tqfileinfo.h> - -// KDE -#include <tdelistview.h> -#include <tdemessagebox.h> -#include <tdelocale.h> -#include <tdepopupmenu.h> -#include <krun.h> -#include <kpropertiesdialog.h> -#include <tdeapplication.h> -#include <dcopclient.h> -#include <dcopref.h> -//#include <kdebug.h> -#include <kiconloader.h> -#include <kled.h> -#include <tdefiledialog.h> - -// local -#include "tdefilereplaceview.h" -#include "tdefilereplacelib.h" -#include "kaddstringdlg.h" -#include "whatthis.h" - -using namespace whatthisNameSpace; - -TDEFileReplaceView::TDEFileReplaceView(RCOptions* info, TQWidget *parent,const char *name) : - TDEFileReplaceViewWdg(parent,name) -{ - m_option = info; - - initGUI(); - - // result listview: connect events - connect(m_lvResults, TQT_SIGNAL(mouseButtonClicked(int, TQListViewItem *, const TQPoint &, int)), - this, TQT_SLOT(slotResultMouseButtonClicked(int, TQListViewItem *, const TQPoint &))); - connect(m_lvResults, TQT_SIGNAL(returnPressed(TQListViewItem *)), - this, TQT_SLOT(slotResultReturnPressed(TQListViewItem *))); - connect(m_lvResults, TQT_SIGNAL(executed(TQListViewItem *)), - this, TQT_SLOT(executed(TQListViewItem *))); - connect(m_lvResults_2, TQT_SIGNAL(mouseButtonClicked(int, TQListViewItem *, const TQPoint &, int)), - this, TQT_SLOT(slotResultMouseButtonClicked(int, TQListViewItem *, const TQPoint &))); - connect(m_lvResults_2, TQT_SIGNAL(returnPressed(TQListViewItem *)), - this, TQT_SLOT(slotResultReturnPressed(TQListViewItem *))); - connect(m_lvResults_2, TQT_SIGNAL(executed(TQListViewItem *)), - this, TQT_SLOT(slotResultReturnPressed(TQListViewItem *))); - // connect header events - connect(m_lvResults->header(), TQT_SIGNAL(clicked(int)), this,TQT_SLOT(slotResultHeaderClicked(int))); - connect(m_lvResults_2->header(), TQT_SIGNAL(clicked(int)), this,TQT_SLOT(slotResultHeaderClicked(int))); - - // string listview: connect events - connect(m_lvStrings, TQT_SIGNAL(doubleClicked(TQListViewItem *)), this, TQT_SLOT(slotStringsEdit())); - connect(m_lvStrings_2, TQT_SIGNAL(doubleClicked(TQListViewItem *)), this, TQT_SLOT(slotStringsEdit())); - - whatsThis(); -} - -TQString TDEFileReplaceView::currentPath() -{ - TQListViewItem *lvi; - - if(! m_lviCurrent) lvi = m_rv->currentItem(); - else lvi = (TQListViewItem*) m_lviCurrent; - - while (lvi->parent()) - lvi = lvi->parent(); - - return TQString(lvi->text(1)+"/"+lvi->text(0)); -} - -void TDEFileReplaceView::showSemaphore(TQString s) -{ - if(s == "green") - { - m_ledGo->setState(KLed::On); - m_ledWait->setState(KLed::Off); - m_ledStop->setState(KLed::Off); - } - else - if(s == "yellow") - { - m_ledGo->setState(KLed::Off); - m_ledWait->setState(KLed::On); - m_ledStop->setState(KLed::Off); - } - else - if(s == "red") - { - m_ledGo->setState(KLed::Off); - m_ledWait->setState(KLed::Off); - m_ledStop->setState(KLed::On); - } -} - -void TDEFileReplaceView::stringsInvert(bool invertAll) -{ - TQListViewItem* lviCurItem, - * lviFirst; - TDEListView* sv = getStringsView(); - - if(invertAll) - lviCurItem = lviFirst = sv->firstChild(); - else - lviCurItem = lviFirst = sv->currentItem(); - - if(lviCurItem == 0) - return ; - - do - { - TQString searchText = lviCurItem->text(0), - replaceText = lviCurItem->text(1); - - // Cannot invert the string when search string is empty - if (replaceText.isEmpty()) - { - KMessageBox::error(0, i18n("<qt>Cannot invert string <b>%1</b>, because the search string would be empty.</qt>").arg(searchText)); - return; - } - - lviCurItem->setText(0, replaceText); - lviCurItem->setText(1, searchText); - - lviCurItem = lviCurItem->nextSibling(); - if(!invertAll) - break; - } while(lviCurItem && lviCurItem != lviFirst); - setCurrentStringsViewMap(); -} - -void TDEFileReplaceView::changeView(bool searchingOnlyMode) -{ - if(searchingOnlyMode) - { - m_stackResults->raiseWidget(m_lvResults_2); - m_stackStrings->raiseWidget(m_lvStrings_2); - m_rv = m_lvResults_2; - m_sv = m_lvStrings_2; - } - else - { - m_stackResults->raiseWidget(m_lvResults); - m_stackStrings->raiseWidget(m_lvStrings); - m_rv = m_lvResults; - m_sv = m_lvStrings; - } -} - -TDEListView* TDEFileReplaceView::getResultsView() -{ - if(m_option->m_searchingOnlyMode) - m_rv = m_lvResults_2; - else - m_rv = m_lvResults; - - return m_rv; -} - -TDEListView* TDEFileReplaceView::getStringsView() -{ - if(m_option->m_searchingOnlyMode) - m_sv = m_lvStrings_2; - else - m_sv = m_lvStrings; - return m_sv; -} - -//PUBLIC SLOTS -void TDEFileReplaceView::slotResultMouseButtonClicked(int button, TQListViewItem *lvi, const TQPoint &pos) -{ - if (lvi == 0) // No item selected - return; - - if (button == Qt::RightButton) - { - // Right mouse button: open popup menub - m_lviCurrent = static_cast<TDEListViewItem*>(lvi); - m_menuResult->popup(pos); - } -} - -void TDEFileReplaceView::slotResultReturnPressed (TQListViewItem *lvi) -{ - if (lvi == 0) // No item selected - return; - - // Left mouse button: open item in default view - m_lviCurrent = static_cast<TDEListViewItem*>(lvi); - slotResultOpen(); -} - -void TDEFileReplaceView::slotResultProperties() -{ - TQString currItem = currentPath(); - if(! currItem.isEmpty()) - { - KURL url(currItem); - (void) new KPropertiesDialog(url); - m_lviCurrent = 0; - } -} - -void TDEFileReplaceView::slotResultOpen() -{ - TQString currItem = currentPath(); - if(!currItem.isEmpty()) - { - (void) new KRun(KURL(currItem), 0, true, true); - m_lviCurrent = 0; - } -} - -void TDEFileReplaceView::slotResultOpenWith() -{ - TQString currItem = currentPath(); - if(!currItem.isEmpty()) - { - KURL::List kurls; - kurls.append(KURL(currItem)); - KRun::displayOpenWithDialog(kurls); - m_lviCurrent = 0; - } -} - -void TDEFileReplaceView::slotResultDirOpen() -{ - TQString currItem = currentPath(); - if(!currItem.isEmpty()) - { - TQFileInfo fi; - fi.setFile(currItem); - (void) new KRun (KURL::fromPathOrURL(fi.dirPath()), 0, true, true); - m_lviCurrent = 0; - } -} - -void TDEFileReplaceView::slotResultEdit() -{ - TQListViewItem *lvi = m_rv->firstChild(); - - while (lvi) - { - DCOPClient *client = kapp->dcopClient(); - DCOPRef quanta(client->appId(),"WindowManagerIf"); - TQString path = TQString(lvi->text(1)+"/"+lvi->text(0)); - TQListViewItem *lviChild = lvi; - - while(lviChild) - { - if(lviChild->isSelected()) - { - coord c; - if(lviChild == lvi) - { - c.line = 0; - c.column = 0; - } - else - { - c= extractWordCoordinates(lviChild); - } - bool success = quanta.send("openFile", path, c.line, c.column); - - if(!success) - { - TQString message = i18n("File %1 cannot be opened. Might be a DCOP problem.").arg(path); - KMessageBox::error(parentWidget(), message); - } - } - if (lviChild == lvi) - lviChild = lviChild->firstChild(); - else - lviChild = lviChild->nextSibling(); - } - - lvi = lvi->nextSibling(); - } - - m_lviCurrent = 0; -} - -void TDEFileReplaceView::slotResultDelete() -{ - TQString currItem = currentPath(); - if (!currItem.isEmpty()) - { - TQFile fi; - int answer = KMessageBox::warningContinueCancel(this, i18n("Do you really want to delete %1?").arg(currItem), - TQString(),KStdGuiItem::del()); - - if(answer == KMessageBox::Continue) - { - fi.setName(currItem); - fi.remove(); - - delete m_lviCurrent; - m_lviCurrent = 0; - } - } -} - -void TDEFileReplaceView::slotResultTreeExpand() -{ - TQListViewItem *lviRoot = getResultsView()->firstChild(); - - if(lviRoot) - expand(lviRoot, true); -} - -void TDEFileReplaceView::slotResultTreeReduce() -{ - TQListViewItem *lviRoot = getResultsView()->firstChild(); - - if(lviRoot) - expand(lviRoot, false); -} - -void TDEFileReplaceView::slotResultHeaderClicked(int sortCol) -{ - TDEListView *lv = getResultsView(); - int oldSortCol = lv->columnSorted(); - - if (oldSortCol == -1 || sortCol != oldSortCol) - { - lv->setSorting(sortCol, true); - } - else - { - lv->setSorting(sortCol, lv->ascendingSort()); - } -} - -void TDEFileReplaceView::slotStringsAdd() -{ - KeyValueMap oldMap(m_option->m_mapStringsView); - - KAddStringDlg addStringDlg(m_option, false); - - if(!addStringDlg.exec()) - return; - - KeyValueMap addedStringsMap(m_option->m_mapStringsView); - KeyValueMap::Iterator itMap; - - for(itMap = oldMap.begin(); itMap != oldMap.end(); ++itMap) - addedStringsMap.insert(itMap.key(),itMap.data()); - - m_option->m_mapStringsView = addedStringsMap; - - raiseResultsView(); - raiseStringsView(); - - loadMapIntoView(addedStringsMap); -} - -void TDEFileReplaceView::slotQuickStringsAdd(const TQString& quickSearch, const TQString& quickReplace) -{ - if(!quickSearch.isEmpty()) - { - KeyValueMap map; - if(quickReplace.isEmpty()) - { - map[quickSearch] = TQString(); - m_option->m_searchingOnlyMode = true; - } - else - { - map[quickSearch] = quickReplace; - m_option->m_searchingOnlyMode = false; - } - - m_option->m_mapStringsView = map; - - raiseResultsView(); - raiseStringsView(); - - loadMapIntoView(map); - } -} - -void TDEFileReplaceView::slotStringsEdit() -{ - KeyValueMap oldMap(m_option->m_mapStringsView); - if(oldMap.isEmpty()) return; - bool oldSearchFlagValue = m_option->m_searchingOnlyMode; - - oldMap.remove(m_sv->currentItem()->text(0)); - - m_option->m_mapStringsView.clear(); - - m_option->m_mapStringsView.insert(m_sv->currentItem()->text(0), m_sv->currentItem()->text(1)); - - KAddStringDlg addStringDlg(m_option, true); - - if(!addStringDlg.exec()) - return; - - KeyValueMap newMap(m_option->m_mapStringsView); - if(oldSearchFlagValue == m_option->m_searchingOnlyMode) - { - KeyValueMap::Iterator itMap; - - //merges the two maps - for(itMap = oldMap.begin(); itMap != oldMap.end(); ++itMap) - newMap.insert(itMap.key(),itMap.data()); - } - - m_option->m_mapStringsView = newMap; - - raiseResultsView(); - raiseStringsView(); - - loadMapIntoView(newMap); -} - -void TDEFileReplaceView::slotStringsSave() -{ - // Check there are strings in the list - TDEListView* sv = getStringsView(); - - if (sv->firstChild() == 0) - { - KMessageBox::error(0, i18n("No strings to save as the list is empty.")); - return ; - } - - TQString header("<?xml version=\"1.0\" ?>\n<kfr>"), - footer("\n</kfr>"), - body; - if(m_option->m_searchingOnlyMode) - header += "\n\t<mode search=\"true\"/>"; - else - header += "\n\t<mode search=\"false\"/>"; - - TQListViewItem* lvi = sv->firstChild(); - - while( lvi ) - { - body += TQString("\n\t<replacement>" - "\n\t\t<oldstring><![CDATA[%1]]></oldstring>" - "\n\t\t<newstring><![CDATA[%2]]></newstring>" - "\n\t</replacement>").arg(lvi->text(0)).arg(lvi->text(1)); - lvi = lvi->nextSibling(); - } - - // Selects the file where strings will be saved - TQString menu = "*.kfr|" + i18n("TDEFileReplace Strings") + " (*.kfr)\n*|" + i18n("All Files") + " (*)"; - TQString fileName = KFileDialog::getSaveFileName(TQString(), menu, 0, i18n("Save Strings to File")); - if (fileName.isEmpty()) - return; - - // Forces the extension to be "kfr" == TDEFileReplace extension - - fileName = TDEFileReplaceLib::addExtension(fileName, "kfr"); - - TQFile file( fileName ); - if(!file.open( IO_WriteOnly )) - { - KMessageBox::error(0, i18n("File %1 cannot be saved.").arg(fileName)); - return ; - } - TQTextStream oTStream( &file ); - oTStream.setEncoding(TQTextStream::UnicodeUTF8); - oTStream << header - << body - << footer; - file.close(); -} - -void TDEFileReplaceView::slotStringsDeleteItem() -{ - TQListViewItem* item = m_sv->currentItem(); - if(item != 0) - { - KeyValueMap m = m_option->m_mapStringsView; - m.remove(item->text(0)); - m_option->m_mapStringsView = m; - delete item; - } -} - -void TDEFileReplaceView::slotStringsEmpty() -{ - TQListViewItem * myChild = m_sv->firstChild(); - while( myChild ) - { - TQListViewItem* item = myChild; - myChild = myChild->nextSibling(); - delete item; - } - KeyValueMap m; - m_option->m_mapStringsView = m; -} - -//PRIVATE -void TDEFileReplaceView::initGUI() -{ - m_option->m_searchingOnlyMode = true; - - m_stackResults->addWidget(m_lvResults); - m_stackResults->addWidget(m_lvResults_2); - m_stackStrings->addWidget(m_lvStrings); - m_stackStrings->addWidget(m_lvStrings_2); - - DCOPClient *client = kapp->dcopClient(); - QCStringList appList = client->registeredApplications(); - bool quantaFound = false; - - - for(QCStringList::Iterator it = appList.begin(); it != appList.end(); ++it) - { - if((*it).left(6) == "quanta") - { - quantaFound = true; - break; - } - } - - m_menuResult = new TDEPopupMenu(this, "ResultPopup"); - - - - m_menuResult->insertItem(SmallIconSet(TQString::fromLatin1("document-open")), - i18n("&Open"), - this, - TQT_SLOT(slotResultOpen())); - if(!quantaFound) - { - m_menuResult->insertItem(i18n("Open &With..."), - this, - TQT_SLOT(slotResultOpenWith())); - } - - if(quantaFound) - { - m_menuResult->insertItem(SmallIconSet("quanta"), - i18n("&Edit in Quanta"), - this, - TQT_SLOT(slotResultEdit())); - } - - m_menuResult->insertItem(SmallIconSet(TQString::fromLatin1("go-up")), - i18n("Open Parent &Folder"), - this, - TQT_SLOT(slotResultDirOpen())); - m_menuResult->insertItem(SmallIconSet(TQString::fromLatin1("edit-delete")), - i18n("&Delete"), - this, - TQT_SLOT(slotResultDelete())); - m_menuResult->insertSeparator(); - m_menuResult->insertItem(SmallIconSet(TQString::fromLatin1("application-vnd.tde.info")), - i18n("&Properties"), - this, - TQT_SLOT(slotResultProperties())); - raiseResultsView(); - raiseStringsView(); -} - -void TDEFileReplaceView::raiseStringsView() -{ - if(m_option->m_searchingOnlyMode) - m_sv = m_lvStrings_2; - else - m_sv = m_lvStrings; - - m_stackStrings->raiseWidget(m_sv); -} - -void TDEFileReplaceView::raiseResultsView() -{ - if(m_option->m_searchingOnlyMode) - m_rv = m_lvResults_2; - else - m_rv = m_lvResults; - - m_stackResults->raiseWidget(m_rv); -} - -coord TDEFileReplaceView::extractWordCoordinates(TQListViewItem* lvi) -{ - //get coordinates of the first string of the current selected file - coord c; - c.line = 0; - c.column = 0; - TQString s = lvi->text(0); - //tqWarning("WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW=%s",s.latin1()); - /* if(lvi->parent()) s = lvi->text(0); - else return c;*/ - - TQString temp; - int i = 0; - - //extracts line and column from lvi->text(0) - //FIXME: Don't get the line and column number from the text as it's translated and it will - //fail for non-English languages! - - //EMILIANO: This is not a good fixing but for now it should reduce the problems - while(true) - { - if(s[i] < '0' || s[i] > '9') - i++; - else - break; - } - while(true) - { - if(s[i] >= '0' && s[i] <= '9') - { - temp += s[i]; - i++; - } - else - break; - } - c.line = temp.toInt(); - temp = TQString(); - - while(true) - { - if(s[i] < '0' || s[i] > '9') - i++; - else - break; - } - while(true) - { - if(s[i] >= '0' && s[i] <= '9') - { - temp += s[i]; - i++; - } - else - break; - } - c.column = temp.toInt(); - - if(c.line > 0) c.line--; - if(c.column > 0) c.column--; - - return c; -} - -void TDEFileReplaceView::expand(TQListViewItem *lviCurrent, bool b) -{ - // current item - lviCurrent->setOpen(b); - - // recursivity - while((lviCurrent = lviCurrent->nextSibling()) != 0) - { - lviCurrent->setOpen(b); - - if (lviCurrent->firstChild()) - expand(lviCurrent->firstChild(), b); - } -} - -void TDEFileReplaceView::setMap() -{ - KeyValueMap map; - TQListViewItem* i = m_sv->firstChild(); - while(i != 0) - { - if(m_option->m_searchingOnlyMode) - map[i->text(0)] = TQString(); - else - map[i->text(0)] = i->text(1); - i = i->nextSibling(); - } - m_option->m_mapStringsView = map; -} - -void TDEFileReplaceView::loadMapIntoView(KeyValueMap map) -{ - m_sv->clear(); - KeyValueMap::Iterator itMap; - - for(itMap = map.begin(); itMap != map.end(); ++itMap) - { - TQListViewItem* lvi = new TQListViewItem(m_sv); - lvi->setMultiLinesEnabled(true); - lvi->setText(0,itMap.key()); - if(!m_option->m_searchingOnlyMode) - lvi->setText(1,itMap.data()); - } - -} - -void TDEFileReplaceView::whatsThis() -{ - TQWhatsThis::add(getResultsView(), lvResultWhatthis); - TQWhatsThis::add(getStringsView(), lvStringsWhatthis); -} -#include "tdefilereplaceview.moc" |