summaryrefslogtreecommitdiffstats
path: root/src/torservers.ui.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/torservers.ui.h')
-rw-r--r--src/torservers.ui.h450
1 files changed, 450 insertions, 0 deletions
diff --git a/src/torservers.ui.h b/src/torservers.ui.h
new file mode 100644
index 0000000..caf7021
--- /dev/null
+++ b/src/torservers.ui.h
@@ -0,0 +1,450 @@
+/***************************************************************************
+ * $Id: torservers.ui.h,v 1.22 2009/01/17 15:49:08 hoganrobert Exp $
+ * Copyright (C) 2006 - 2008 Robert Hogan *
+ * robert@roberthogan.net *
+ * *
+ * 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. *
+ * *
+ * 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 St, Fifth Floor, Boston, MA 02110-1301, USA. *
+ ***************************************************************************/
+#include "torkconfig.h"
+#include "crypto.h"
+#include <klocale.h>
+#include <qtooltip.h>
+#include <qpopupmenu.h>
+#include <kdebug.h>
+#include <kiconloader.h>
+
+#ifndef EXTERNAL_GEOIP
+# include "GeoIP-1.4.0/libGeoIP/GeoIP.h"
+#else
+# include <GeoIP.h>
+#endif
+
+typedef QMap<QString, QString> codemap;
+QString ccode;
+QString cname;
+codemap ccodes;
+QStringList blockCCs;
+
+void TorServers::init()
+{
+
+ ExcludeNodes->setSelectionMode( QListView::Extended );
+ ExcludeNodes->setColumnWidthMode(0, QListView::Manual);
+ ExcludeNodes->hideColumn(0);
+ ExcludeNodes->header()->setResizeEnabled(FALSE, 0);
+ ExcludeNodes->setColumnWidthMode(1, QListView::Manual);
+ ExcludeNodes->hideColumn(1);
+ ExcludeNodes->header()->setResizeEnabled(FALSE, 1);
+ ExcludeNodes->setColumnWidthMode(2, QListView::Manual);
+ ExcludeNodes->hideColumn(2);
+ ExcludeNodes->header()->setResizeEnabled(FALSE, 2);
+ ExcludeNodes->setResizeMode( QListView::LastColumn );
+
+ ExitNodes->setSelectionMode( QListView::Extended );
+ ExitNodes->setColumnWidthMode(0, QListView::Manual);
+ ExitNodes->hideColumn(0);
+ ExitNodes->header()->setResizeEnabled(FALSE, 0);
+ ExitNodes->setColumnWidthMode(1, QListView::Manual);
+ ExitNodes->hideColumn(1);
+ ExitNodes->header()->setResizeEnabled(FALSE, 1);
+ ExitNodes->setColumnWidthMode(2, QListView::Manual);
+ ExitNodes->hideColumn(2);
+ ExitNodes->header()->setResizeEnabled(FALSE, 2);
+ ExitNodes->setResizeMode( QListView::LastColumn );
+ QListViewItem *tm;
+ QString fp;
+ QString nick;
+ QString geoipcc;
+ QString countryName;
+
+ QStringList excludeCountries = TorkConfig::excludeCountries();
+ for ( QStringList::Iterator it = excludeCountries.begin(); it != excludeCountries.end(); ++it )
+ {
+ countryName = GeoIP_country_name[(*it).toInt()];
+ ccodes[countryName] = (*it);
+ CountryList->insertItem(countryName);
+ }
+
+// QStringList preferredCountries = TorkConfig::preferredCountries();
+// for ( QStringList::Iterator it = preferredCountries.begin(); it != preferredCountries.end(); ++it )
+// {
+// countryName = GeoIP_country_name[(*it).toInt()];
+// ccodes[countryName] = (*it);
+// PreferredCountryList->insertItem(countryName);
+// }
+
+ QStringList existingServers = TorkConfig::excludeServersHistory();
+
+ for ( QStringList::Iterator it = existingServers.begin(); it != existingServers.end(); ++it )
+ {
+ if ((*it).isEmpty())
+ continue;
+
+ fp.setLength(0);
+ nick.setLength(0);
+ geoipcc = (*it).section("-",0,0);
+ fp = (*it).section("-",1,1);
+ nick = (*it).section("-",2);
+ countryName = GeoIP_country_name[(geoipcc).toInt()];
+
+ tm = new QListViewItem(ExcludeNodes,countryName,geoipcc,fp,nick);
+ tm->setPixmap(3,QPixmap(SmallIcon("tork_" + QString(GeoIP_country_code[geoipcc.toInt()]).lower())));
+
+
+ }
+
+ existingServers = TorkConfig::includeServersHistory();
+
+ for ( QStringList::Iterator it = existingServers.begin(); it != existingServers.end(); ++it )
+ {
+
+ if ((*it).isEmpty())
+ continue;
+
+ fp.setLength(0);
+ nick.setLength(0);
+ geoipcc = (*it).section("-",0,0);
+ fp = (*it).section("-",1,1);
+ nick = (*it).section("-",2);
+ countryName = GeoIP_country_name[(geoipcc).toInt()];
+
+ tm = new QListViewItem(ExitNodes,countryName,geoipcc,fp,nick);
+ tm->setPixmap(3,QPixmap(SmallIcon("tork_" + QString(GeoIP_country_code[geoipcc.toInt()]).lower())));
+
+// CandidateList->insertItem( nick );
+
+ }
+ QStringList mapAddresses = TorkConfig::mapAddress();
+
+ for ( QStringList::Iterator it = mapAddresses.begin(); it != mapAddresses.end(); ++it )
+ {
+ if ((*it).isEmpty())
+ continue;
+ QString entry = (*it).section(" ",1,1);
+ QString destination = entry.section(".",0,-3);
+ QString server = entry.section(".",-2,-2);
+ QString waypoint = entry.section(".",-1,-1);
+
+ tm = new QListViewItem(MapAddress,destination,server,waypoint);
+ }
+
+ QListViewItemIterator it(AllowUnverifiedNodes);
+ while ( it.current() ) {
+ if (TorkConfig::allowUnverifiedNodes().contains(it.current()->text(0)))
+ AllowUnverifiedNodes->setSelected(*it,true);
+ ++it;
+ }
+
+ CountryList->sort(true);
+// PreferredCountryList->sort(true);
+
+ kcfg_StrictExitNodes->setEnabled((ExitNodes->childCount() == 0)?false:true);
+
+}
+
+void TorServers::destroy()
+{
+// QStringList cclist;
+// for (unsigned int index = 0; index != CountryList->count(); ++index){
+// cclist.append(ccodes[CountryList->item(index)->text()]);
+// }
+// TorkConfig::setExcludeCountries(cclist);
+//
+// cclist.clear();
+// for (unsigned int index = 0; index != PreferredCountryList->count(); ++index){
+// cclist.append(ccodes[PreferredCountryList->item(index)->text()]);
+// }
+// TorkConfig::setPreferredCountries(cclist);
+//
+// TorkConfig::writeConfig();
+
+}
+
+QString TorServers::ccode(const QString &country)
+{
+ return ccodes[country];
+}
+
+void TorServers::pushButton6_clicked()
+{
+
+ new QListViewItem(MapAddress,Destination->text(), CandidateList->currentText(), WayPoints->currentText());
+}
+
+
+
+void TorServers::MapAddress_contextMenuRequested( QListViewItem *, const QPoint &point, int )
+{
+
+ QPopupMenu *menu = new QPopupMenu( MapAddress );
+
+ menu->clear();
+ menu->insertItem( "Delete Entry", this,SLOT(slotDeleteEntry()) );
+ menu->popup( point );
+
+}
+
+
+void TorServers::slotDeleteEntry( )
+{
+
+ QListViewItemIterator it(MapAddress, QListViewItemIterator::Selected);
+ while ( it.current() ) {
+ if (MapAddress->isSelected( it.current()))
+ delete it.current();
+ ++it;
+ }
+
+
+}
+
+
+void TorServers::MapAddress_returnPressed( QListViewItem * )
+{
+
+}
+
+
+void TorServers::clearSelectedCountries_clicked()
+{
+
+ QValueList<QListViewItem*> itemsToDelete;
+
+ QListViewItemIterator it(ExcludeNodes, QListViewItemIterator::Selected);
+ while ( it.current() ) {
+ if (CountryList->findItem(it.current()->text(0))->isSelected()){
+ itemsToDelete << it.current();
+ }
+ ++it;
+ }
+
+ for ( QValueList<QListViewItem*>::Iterator itt = itemsToDelete.begin(); itt != itemsToDelete.end(); ++itt ){
+ delete (*itt);
+ }
+
+ QValueList<QListBoxItem*> countriesToDelete;
+
+ for (unsigned int index = 0; index != CountryList->count(); ++index){
+ if (CountryList->item(index)->isSelected() )
+ countriesToDelete << CountryList->item(index);
+ }
+
+ for ( QValueList<QListBoxItem*>::Iterator itb = countriesToDelete.begin();
+ itb != countriesToDelete.end(); ++itb ){
+ delete (*itb);
+ }
+
+ CountryList->clearSelection();
+}
+
+
+void TorServers::clearSelectedNodes_clicked()
+{
+
+ QValueList<QListViewItem*> itemsToDelete;
+
+ QListViewItemIterator it(ExcludeNodes, QListViewItemIterator::Selected);
+ while ( it.current() ) {
+ itemsToDelete << it.current();
+ ++it;
+ }
+
+ for ( QValueList<QListViewItem*>::Iterator itt = itemsToDelete.begin(); itt != itemsToDelete.end(); ++itt ){
+ delete (*itt);
+ }
+
+ CountryList->clearSelection();
+}
+
+
+// void TorServers::clearSelectedPreferredCountries_clicked()
+// {
+//
+// QValueList<QListViewItem*> itemsToDelete;
+//
+// QListViewItemIterator it(ExitNodes, QListViewItemIterator::Selected);
+// while ( it.current() ) {
+// if (PreferredCountryList->findItem(it.current()->text(0))->isSelected()){
+// itemsToDelete << it.current();
+// }
+// ++it;
+// }
+//
+// for ( QValueList<QListViewItem*>::Iterator itt = itemsToDelete.begin(); itt != itemsToDelete.end(); ++itt ){
+// delete (*itt);
+// }
+//
+// QValueList<QListBoxItem*> countriesToDelete;
+//
+// for (unsigned int index = 0; index != PreferredCountryList->count(); ++index){
+// if (PreferredCountryList->item(index)->isSelected() )
+// countriesToDelete << PreferredCountryList->item(index);
+// }
+//
+// for ( QValueList<QListBoxItem*>::Iterator itb = countriesToDelete.begin();
+// itb != countriesToDelete.end(); ++itb ){
+// delete (*itb);
+// }
+//
+// PreferredCountryList->clearSelection();
+// }
+
+
+void TorServers::clearSelectedPreferredNodes_clicked()
+{
+
+ QValueList<QListViewItem*> itemsToDelete;
+
+ QListViewItemIterator it(ExitNodes, QListViewItemIterator::Selected);
+ while ( it.current() ) {
+ itemsToDelete << it.current();
+ ++it;
+ }
+
+ for ( QValueList<QListViewItem*>::Iterator itt = itemsToDelete.begin(); itt != itemsToDelete.end(); ++itt ){
+ delete (*itt);
+ }
+
+ if (ExitNodes->childCount() == 0){
+ kcfg_StrictExitNodes->setEnabled(false);
+ kcfg_StrictExitNodes->setChecked(false);
+ }
+}
+
+
+
+void TorServers::pushButton6_2_clicked()
+{
+
+ QListViewItemIterator it(AllowUnverifiedNodes, QListViewItemIterator::Selected);
+ while ( it.current() ) {
+ it.current()->listView()->setSelected(it.current(),false);
+ ++it;
+ }
+
+}
+
+void TorServers::CountryList_clicked( )
+{
+
+ QStringList selectedCountries;
+ for ( unsigned int i = 0; i < CountryList->count(); ++i){
+ if (CountryList->isSelected(i)){
+ selectedCountries.append(CountryList->item(i)->text());
+ }
+ }
+
+ kdDebug() << "country list clicked" << endl;
+ QListViewItemIterator it( ExcludeNodes );
+ while ( it.current() ) {
+ QListViewItem *item = it.current();
+ if (selectedCountries.contains(item->text(0)))
+ item->setSelected(true);
+ else
+ item->setSelected(false);
+ it++;
+ }
+ ExcludeNodes->repaintContents();
+
+}
+
+// void TorServers::PreferredCountryList_clicked( QListBoxItem * curitem)
+// {
+//
+// QListViewItemIterator it( ExitNodes );
+// while ( it.current() ) {
+// QListViewItem *item = it.current();
+// if (curitem){
+// if (item->text(0) == curitem->text())
+// item->setSelected(curitem->isSelected());
+// }
+// it++;
+// }
+// ExitNodes->repaintContents();
+//
+// }
+
+
+
+// <connections>
+// <connection>
+// <sender>pushButton6</sender>
+// <signal>clicked()</signal>
+// <receiver>TorServers</receiver>
+// <slot>pushButton6_clicked()</slot>
+// </connection>
+// <connection>
+// <sender>MapAddress</sender>
+// <signal>contextMenuRequested(QListViewItem*,const QPoint&amp;,int)</signal>
+// <receiver>TorServers</receiver>
+// <slot>MapAddress_contextMenuRequested(QListViewItem*,const QPoint&amp;,int)</slot>
+// </connection>
+// <connection>
+// <sender>MapAddress</sender>
+// <signal>returnPressed(QListViewItem*)</signal>
+// <receiver>TorServers</receiver>
+// <slot>MapAddress_returnPressed(QListViewItem*)</slot>
+// </connection>
+// <connection>
+// <sender>clearSelected</sender>
+// <signal>clicked()</signal>
+// <receiver>TorServers</receiver>
+// <slot>clearSelected_clicked()</slot>
+// </connection>
+// <connection>
+// <sender>clearSelected_2</sender>
+// <signal>clicked()</signal>
+// <receiver>TorServers</receiver>
+// <slot>clearSelected_2_clicked()</slot>
+// </connection>
+// <connection>
+// <sender>clearSelected_3</sender>
+// <signal>clicked()</signal>
+// <receiver>TorServers</receiver>
+// <slot>clearSelected_3_clicked()</slot>
+// </connection>
+// <connection>
+// <sender>clearSelected_3_2</sender>
+// <signal>clicked()</signal>
+// <receiver>TorServers</receiver>
+// <slot>clearSelected_3_2_clicked()</slot>
+// </connection>
+// <connection>
+// <sender>pushButton6_2</sender>
+// <signal>clicked()</signal>
+// <receiver>TorServers</receiver>
+// <slot>pushButton6_2_clicked()</slot>
+// </connection>
+// </connections>
+// <includes>
+// <include location="local" impldecl="in implementation">torservers.ui.h</include>
+// </includes>
+// <slots>
+// <slot>pushButton6_clicked()</slot>
+// <slot>MapAddress_contextMenuRequested( QListViewItem *, const QPoint &amp; point, int )</slot>
+// <slot>slotDeleteEntry()</slot>
+// <slot>MapAddress_returnPressed( QListViewItem * )</slot>
+// <slot>clearSelected_clicked()</slot>
+// <slot>clearSelected_2_clicked()</slot>
+// <slot>clearSelected_3_clicked()</slot>
+// <slot>clearSelected_3_2_clicked()</slot>
+// <slot>pushButton6_2_clicked()</slot>
+// </slots>
+// <functions>
+// <function access="private" specifier="non virtual">init()</function>
+// </functions>
+// <layoutdefaults spacing="6" margin="11"/>
+// </UI>