Chum groups!

This commit is contained in:
Kiooeht 2011-03-29 00:02:05 -07:00
parent b81c2517c3
commit a5cce9acfc
12 changed files with 748 additions and 382 deletions

1
TODO
View file

@ -15,7 +15,6 @@ SS: and the arrows next to the time thing overlap the CLOSE button
Features:
* copy quirks between profiles?
* help button on quirks menu?
* chum list groups
* More complex quirks: by-sound
* Theme checking
* Spy mode

View file

@ -174,7 +174,7 @@ class pesterQuirks(object):
yield q
class PesterProfile(object):
def __init__(self, handle, color=None, mood=Mood("offline"), chumdb=None):
def __init__(self, handle, color=None, mood=Mood("offline"), group=None, chumdb=None):
self.handle = handle
if color is None:
if chumdb:
@ -183,6 +183,12 @@ class PesterProfile(object):
color = QtGui.QColor("black")
self.color = color
self.mood = mood
if group is None:
if chumdb:
group = chumdb.getGroup(handle, "Chums")
else:
group = "Chums"
self.group = group
def initials(self, time=None):
handle = self.handle
caps = [l for l in handle if l.isupper()]
@ -212,7 +218,8 @@ class PesterProfile(object):
def plaindict(self):
return (self.handle, {"handle": self.handle,
"mood": self.mood.name(),
"color": unicode(self.color.name())})
"color": unicode(self.color.name()),
"group": unicode(self.group)})
def blocked(self, config):
return self.handle in config.getBlocklist()

View file

@ -37,6 +37,13 @@ class RightClickList(QtGui.QListWidget):
self.setCurrentItem(listing)
self.optionsMenu.popup(event.globalPos())
class RightClickTree(QtGui.QTreeWidget):
def contextMenuEvent(self, event):
if event.reason() == QtGui.QContextMenuEvent.Mouse:
listing = self.itemAt(event.pos())
self.setCurrentItem(listing)
self.optionsMenu.popup(event.globalPos())
class MultiTextDialog(QtGui.QDialog):
def __init__(self, title, parent, *queries):
QtGui.QDialog.__init__(self, parent)

View file

@ -3,7 +3,7 @@ import codecs
import re
from time import strftime, strptime
from PyQt4 import QtGui, QtCore
from generic import RightClickList
from generic import RightClickList, RightClickTree
from parsetools import convertTags
from convo import PesterText
@ -138,7 +138,8 @@ class PesterLogViewer(QtGui.QDialog):
self.logList.sort()
self.logList.reverse()
self.tree = QtGui.QTreeWidget()
self.tree = RightClickTree()
self.tree.optionsMenu = QtGui.QMenu(self)
self.tree.setFixedSize(260, 300)
self.tree.header().hide()
if theme.has_key("convo/scrollbar"):
@ -148,6 +149,7 @@ class PesterLogViewer(QtGui.QDialog):
self.connect(self.tree, QtCore.SIGNAL('itemSelectionChanged()'),
self, QtCore.SLOT('loadSelectedLog()'))
self.tree.setSortingEnabled(False)
child_1 = None
last = ["",""]
for (i,l) in enumerate(self.logList):

View file

@ -507,6 +507,10 @@ class PesterOptions(QtGui.QDialog):
self.theme = theme
self.setStyleSheet(self.theme["main/defaultwindow/style"])
hr = QtGui.QFrame()
hr.setFrameShape(QtGui.QFrame.HLine)
hr.setFrameShadow(QtGui.QFrame.Sunken)
self.tabcheck = QtGui.QCheckBox("Tabbed Conversations", self)
if self.config.tabs():
self.tabcheck.setChecked(True)
@ -533,6 +537,12 @@ class PesterOptions(QtGui.QDialog):
if self.config.showSeconds():
self.secondscheck.setChecked(True)
# Will add ability to turn off groups later
#self.groupscheck = QtGui.QCheckBox("Use Groups", self)
#self.groupscheck.setChecked(self.config.useGroups())
self.showemptycheck = QtGui.QCheckBox("Show Empty Groups", self)
self.showemptycheck.setChecked(self.config.showEmptyGroups())
self.ok = QtGui.QPushButton("OK", self)
self.ok.setDefault(True)
self.connect(self.ok, QtCore.SIGNAL('clicked()'),
@ -548,6 +558,9 @@ class PesterOptions(QtGui.QDialog):
layout_0.addWidget(self.tabcheck)
layout_0.addWidget(self.soundcheck)
layout_0.addWidget(self.hideOffline)
#layout_0.addWidget(self.groupscheck)
layout_0.addWidget(self.showemptycheck)
layout_0.addWidget(hr)
layout_0.addWidget(self.timestampcheck)
layout_0.addWidget(self.timestampBox)
layout_0.addWidget(self.secondscheck)

View file

@ -216,7 +216,7 @@ def timeDifference(td):
elif atd < timedelta(0,3600):
if minutes == 1:
timetext = "%d MINUTE %s" % (minutes, when)
else:
else:
timetext = "%d MINUTES %s" % (minutes, when)
elif atd < timedelta(0,3600*100):
if hours == 1 and leftoverminutes == 0:
@ -235,7 +235,7 @@ def img2smiley(string):
return string
smiledict = {
":rancorous:": "pc_rancorous.gif",
":rancorous:": "pc_rancorous.gif",
":apple:": "apple.gif",
":bathearst:": "bathearst.gif",
":cathearst:": "cathearst.png",
@ -245,7 +245,7 @@ smiledict = {
":blueghost:": "blueslimer.gif",
":slimer:": "slimer.gif",
":candycorn:": "candycorn.gif",
":cheer:": "cheer.gif",
":cheer:": "cheer.gif",
":duhjohn:": "confusedjohn.gif",
":datrump:": "datrump.gif",
":facepalm:": "facepalm.gif",

View file

@ -18,7 +18,7 @@ from menus import PesterChooseQuirks, PesterChooseTheme, \
PesterChooseProfile, PesterOptions, PesterUserlist, PesterMemoList, \
LoadingScreen, AboutPesterchum
from dataobjs import PesterProfile, Mood, pesterQuirk, pesterQuirks
from generic import PesterIcon, RightClickList, MultiTextDialog, PesterList
from generic import PesterIcon, RightClickList, RightClickTree, MultiTextDialog, PesterList
from convo import PesterTabWindow, PesterText, PesterInput, PesterConvo
from parsetools import convertTags, addTimeInitial
from memos import PesterMemo, MemoTabWindow, TimeTracker
@ -131,7 +131,14 @@ class PesterProfileDB(dict):
json.dump(chumdict, fp)
fp.close()
converted = dict([(handle, PesterProfile(handle, color=QtGui.QColor(c['color']), mood=Mood(c['mood']))) for (handle, c) in chumdict.iteritems()])
u = []
for (handle, c) in chumdict.iteritems():
try:
g = c['group']
u.append((handle, PesterProfile(handle, color=QtGui.QColor(c['color']), mood=Mood(c['mood']), group=g)))
except KeyError:
u.append((handle, PesterProfile(handle, color=QtGui.QColor(c['color']), mood=Mood(c['mood']))))
converted = dict(u)
self.update(converted)
def save(self):
@ -152,6 +159,17 @@ class PesterProfileDB(dict):
self[handle].color = color
else:
self[handle] = PesterProfile(handle, color)
def getGroup(self, handle, default="Chums"):
if not self.has_key(handle):
return default
else:
return self[handle].group
def setGroup(self, handle, theGroup):
if self.has_key(handle):
self[handle].group = theGroup
else:
self[handle] = PesterProfile(handle, group=theGroup)
self.save()
def __setitem__(self, key, val):
dict.__setitem__(self, key, val)
self.save()
@ -264,6 +282,18 @@ class userConfig(object):
if not self.config.has_key('showSeconds'):
self.set("showSeconds", False)
return self.config.get('showSeconds', False)
def useGroups(self):
if not self.config.has_key('useGroups'):
self.set("useGroups", False)
return self.config.get('useGroups', False)
def openDefaultGroup(self):
if not self.config.has_key('openDefaultGroup'):
self.set("openDefaultGroup", True)
return self.config.get('openDefaultGroup', True)
def showEmptyGroups(self):
if not self.config.has_key('emptyGroups'):
self.set("emptyGroups", False)
return self.config.get('emptyGroups', False)
def addChum(self, chum):
if chum.handle not in self.chums():
fp = open(self.filename) # what if we have two clients open??
@ -291,6 +321,25 @@ class userConfig(object):
l = self.getBlocklist()
l.pop(l.index(handle))
self.set('block', l)
def getGroups(self):
if not self.config.has_key('groups'):
self.set('groups', [])
return self.config.get('groups', [])
def addGroup(self, group, open=False):
l = self.getGroups()
if group not in l:
l.append([group,open])
l.sort()
self.set('groups', l)
def delGroup(self, group):
l = self.getGroups()
i = 0
for g in l:
if g[0] == group: break
i = i+1
l.pop(i)
l.sort()
self.set('groups', l)
def server(self):
return self.config.get('server', 'irc.mindfang.org')
def port(self):
@ -404,9 +453,9 @@ class WMButton(QtGui.QPushButton):
self.setStyleSheet("QPushButton { padding: 0px; }")
self.setAutoDefault(False)
class chumListing(QtGui.QListWidgetItem):
class chumListing(QtGui.QTreeWidgetItem):
def __init__(self, chum, window):
QtGui.QListWidgetItem.__init__(self, chum.handle)
QtGui.QTreeWidgetItem.__init__(self, [chum.handle])
self.mainwindow = window
self.chum = chum
self.handle = chum.handle
@ -420,32 +469,44 @@ class chumListing(QtGui.QListWidgetItem):
mood = self.chum.mood
self.mood = mood
icon = self.mood.icon(self.mainwindow.theme)
self.setIcon(icon)
self.setIcon(0, icon)
try:
self.setTextColor(QtGui.QColor(self.mainwindow.theme["main/chums/moods"][self.mood.name()]["color"]))
self.setTextColor(0, QtGui.QColor(self.mainwindow.theme["main/chums/moods"][self.mood.name()]["color"]))
except KeyError:
self.setTextColor(QtGui.QColor(self.mainwindow.theme["main/chums/moods/chummy/color"]))
self.setTextColor(0, QtGui.QColor(self.mainwindow.theme["main/chums/moods/chummy/color"]))
def changeTheme(self, theme):
icon = self.mood.icon(theme)
self.setIcon(icon)
self.setIcon(0, icon)
try:
self.setTextColor(QtGui.QColor(self.mainwindow.theme["main/chums/moods"][self.mood.name()]["color"]))
self.setTextColor(0, QtGui.QColor(self.mainwindow.theme["main/chums/moods"][self.mood.name()]["color"]))
except KeyError:
self.setTextColor(QtGui.QColor(self.mainwindow.theme["main/chums/moods/chummy/color"]))
self.setTextColor(0, QtGui.QColor(self.mainwindow.theme["main/chums/moods/chummy/color"]))
def __lt__(self, cl):
h1 = self.handle.lower()
h2 = cl.handle.lower()
return (h1 < h2)
class chumArea(RightClickList):
class chumArea(RightClickTree):
def __init__(self, chums, parent=None):
QtGui.QListWidget.__init__(self, parent)
QtGui.QTreeWidget.__init__(self, parent)
self.mainwindow = parent
theme = self.mainwindow.theme
self.chums = chums
gTemp = self.mainwindow.config.getGroups()
self.groups = [g[0] for g in gTemp]
self.openGroups = [g[1] for g in gTemp]
# quick hack to sort saved groups
self.mainwindow.config.addGroup("f3rskv9dssag[%3ffvsla09iv34G#$v")
self.mainwindow.config.delGroup("f3rskv9dssag[%3ffvsla09iv34G#$v")
# end quick hack
self.showAllGroups()
if not self.mainwindow.config.hideOfflineChums():
self.showAllChums()
self.optionsMenu = QtGui.QMenu(self)
if not self.mainwindow.config.showEmptyGroups():
self.hideEmptyGroups()
self.chumoptions = QtGui.QMenu(self)
self.groupoptions = QtGui.QMenu(self)
self.optionsMenu = self.chumoptions
self.pester = QtGui.QAction(self.mainwindow.theme["main/menus/rclickchumlist/pester"], self)
self.connect(self.pester, QtCore.SIGNAL('triggered()'),
self, QtCore.SLOT('activateChum()'))
@ -458,13 +519,83 @@ class chumArea(RightClickList):
self.logchum = QtGui.QAction(self.mainwindow.theme["main/menus/rclickchumlist/viewlog"], self)
self.connect(self.logchum, QtCore.SIGNAL('triggered()'),
self, QtCore.SLOT('openChumLogs()'))
self.optionsMenu.addAction(self.pester)
self.optionsMenu.addAction(self.logchum)
self.optionsMenu.addAction(self.blockchum)
self.optionsMenu.addAction(self.removechum)
self.removegroup = QtGui.QAction(self.mainwindow.theme["main/menus/rclickchumlist/removegroup"], self)
self.connect(self.removegroup, QtCore.SIGNAL('triggered()'),
self, QtCore.SLOT('removeGroup()'))
self.renamegroup = QtGui.QAction(self.mainwindow.theme["main/menus/rclickchumlist/renamegroup"], self)
self.connect(self.renamegroup, QtCore.SIGNAL('triggered()'),
self, QtCore.SLOT('renameGroup()'))
self.chumoptions.addAction(self.pester)
self.chumoptions.addAction(self.logchum)
self.chumoptions.addAction(self.blockchum)
self.chumoptions.addAction(self.removechum)
self.moveMenu = QtGui.QMenu(self.mainwindow.theme["main/menus/rclickchumlist/movechum"], self)
self.chumoptions.addMenu(self.moveMenu)
self.moveGroupMenu()
self.groupoptions.addAction(self.renamegroup)
self.groupoptions.addAction(self.removegroup)
self.initTheme(theme)
self.sortItems()
#self.sortItems()
#self.sortItems(1, QtCore.Qt.AscendingOrder)
self.setSortingEnabled(False)
self.header().hide()
self.setDropIndicatorShown(False)
self.setIndentation(0)
self.setDragEnabled(True)
self.setDragDropMode(QtGui.QAbstractItemView.InternalMove)
self.connect(self, QtCore.SIGNAL('itemDoubleClicked(QTreeWidgetItem *, int)'),
self, QtCore.SLOT('expandGroup()'))
def dropEvent(self, event):
item = self.itemAt(event.pos())
if item:
if item.text(0) == "Chums" or item.text(0) in self.groups:
group = item.text(0)
else:
group = item.parent().text(0)
chumLabel = event.source().currentItem()
chumLabel.chum.group = group
self.mainwindow.chumdb.setGroup(chumLabel.chum.handle, group)
self.takeItem(chumLabel)
self.addItem(chumLabel)
def chumoptionsmenu(self):
self.optionsMenu = self.chumoptions
def groupoptionsmenu(self):
self.optionsMenu = self.groupoptions
def moveGroupMenu(self):
currentGroup = self.currentItem()
if currentGroup:
currentGroup = currentGroup.parent().text(0)
self.moveMenu.clear()
actGroup = QtGui.QActionGroup(self)
groups = self.groups[:]
groups.insert(0, "Chums")
for gtext in groups:
if gtext == currentGroup:
continue
movegroup = self.moveMenu.addAction(gtext)
actGroup.addAction(movegroup)
self.connect(actGroup, QtCore.SIGNAL('triggered(QAction *)'),
self, QtCore.SLOT('moveToGroup(QAction *)'))
def contextMenuEvent(self, event):
#fuckin Qt
if event.reason() == QtGui.QContextMenuEvent.Mouse:
listing = self.itemAt(event.pos())
self.setCurrentItem(listing)
if self.currentItem().text(0) == "Chums" or \
self.currentItem().text(0) in self.groups:
self.groupoptionsmenu()
else:
self.chumoptionsmenu()
self.moveGroupMenu()
self.optionsMenu.popup(event.globalPos())
def addChum(self, chum):
if len([c for c in self.chums if c.handle == chum.handle]) != 0:
return
@ -473,29 +604,95 @@ class chumArea(RightClickList):
chum.mood.name() == "offline"):
chumLabel = chumListing(chum, self.mainwindow)
self.addItem(chumLabel)
self.sortItems()
#self.topLevelItem(0).addChild(chumLabel)
#self.topLevelItem(0).sortChildren(0, QtCore.Qt.AscendingOrder)
def getChums(self, handle):
chums = self.findItems(handle, QtCore.Qt.MatchFlags(0))
chums = self.findItems(handle, QtCore.Qt.MatchContains | QtCore.Qt.MatchRecursive)
return chums
def showAllChums(self):
for c in self.chums:
chandle = c.handle
if not self.findItems(chandle, QtCore.Qt.MatchFlags(0)):
if not len(self.findItems(chandle, QtCore.Qt.MatchContains | QtCore.Qt.MatchRecursive)):
chumLabel = chumListing(c, self.mainwindow)
self.addItem(chumLabel)
self.sortItems()
#self.sortItems()
def hideOfflineChums(self):
for j in range(self.topLevelItemCount()):
i = 0
listing = self.topLevelItem(j).child(i)
while listing is not None:
if listing.chum.mood.name() == "offline":
self.topLevelItem(j).takeChild(i)
else:
i += 1
listing = self.topLevelItem(j).child(i)
self.topLevelItem(j).sortChildren(0, QtCore.Qt.AscendingOrder)
def showAllGroups(self):
curgroups = []
for i in range(self.topLevelItemCount()):
curgroups.append(self.topLevelItem(i).text(0))
if "Chums" not in curgroups:
child_1 = QtGui.QTreeWidgetItem(["Chums"])
self.addTopLevelItem(child_1)
if self.mainwindow.config.openDefaultGroup():
child_1.setExpanded(True)
for i,g in enumerate(self.groups):
if g not in curgroups:
child_1 = QtGui.QTreeWidgetItem(["%s" % (g)])
self.addTopLevelItem(child_1)
if self.openGroups[i]:
child_1.setExpanded(True)
def hideEmptyGroups(self):
i = 0
listing = self.item(i)
listing = self.topLevelItem(i)
while listing is not None:
if listing.chum.mood.name() == "offline":
self.takeItem(i)
if listing.childCount() == 0:
self.takeTopLevelItem(i)
else:
i += 1
listing = self.item(i)
self.sortItems()
listing = self.topLevelItem(i)
@QtCore.pyqtSlot()
def expandGroup(self):
item = self.currentItem()
if item.text(0) in self.groups:
self.mainwindow.config.delGroup(str(item.text(0)))
expand = item.isExpanded()
self.mainwindow.config.addGroup(str(item.text(0)), not expand)
elif item.text(0) == "Chums":
self.mainwindow.config.set("openDefaultGroup", not item.isExpanded())
def addItem(self, chumLabel):
if hasattr(self, 'groups'):
if chumLabel.chum.group not in self.groups:
self.topLevelItem(0).addChild(chumLabel)
self.topLevelItem(0).sortChildren(0, QtCore.Qt.AscendingOrder)
else:
if not self.findItems(chumLabel.handle, QtCore.Qt.MatchContains | QtCore.Qt.MatchRecursive):
if not self.findItems(chumLabel.chum.group, QtCore.Qt.MatchFlags(0)):
child_1 = QtGui.QTreeWidgetItem(["%s" % (chumLabel.chum.group)])
self.addTopLevelItem(child_1)
if self.openGroups[self.groups.index("%s" % (chumLabel.chum.group))]:
child_1.setExpanded(True)
for i in range(self.topLevelItemCount()):
if self.topLevelItem(i).text(0) == chumLabel.chum.group:
break
self.topLevelItem(i).addChild(chumLabel)
self.topLevelItem(i).sortChildren(0, QtCore.Qt.AscendingOrder)
else: # usually means this is now the trollslum
if not self.findItems(chumLabel.handle, QtCore.Qt.MatchContains | QtCore.Qt.MatchRecursive):
self.topLevelItem(0).addChild(chumLabel)
self.topLevelItem(0).sortChildren(0, QtCore.Qt.AscendingOrder)
def takeItem(self, chumLabel):
r = None
for i in range(self.topLevelItemCount()):
for j in range(self.topLevelItem(i).childCount()):
if self.topLevelItem(i).child(j).text(0) == chumLabel.chum.handle:
r = self.topLevelItem(i).takeChild(j)
break
if not self.mainwindow.config.showEmptyGroups():
self.hideEmptyGroups()
return r
def updateMood(self, handle, mood):
hideoff = self.mainwindow.config.hideOfflineChums()
chums = self.getChums(handle)
@ -506,7 +703,7 @@ class chumArea(RightClickList):
handle in [p.handle for p in self.chums]:
newLabel = chumListing([p for p in self.chums if p.handle == handle][0], self.mainwindow)
self.addItem(newLabel)
self.sortItems()
#self.sortItems()
chums = [newLabel]
elif mood.name() == "offline" and \
len(chums) > 0:
@ -532,14 +729,27 @@ class chumArea(RightClickList):
self.removechum.setText(theme["main/menus/rclickchumlist/removechum"])
self.blockchum.setText(theme["main/menus/rclickchumlist/blockchum"])
self.logchum.setText(theme["main/menus/rclickchumlist/viewlog"])
self.removegroup.setText(theme["main/menus/rclickchumlist/removegroup"])
self.renamegroup.setText(theme["main/menus/rclickchumlist/renamegroup"])
self.moveMenu.setTitle(theme["main/menus/rclickchumlist/movechum"])
def changeTheme(self, theme):
self.initTheme(theme)
chumlistings = [self.item(i) for i in range(0, self.count())]
chumlistings = []
for i in range(self.topLevelItemCount()):
for j in range(self.topLevelItem(i).childCount()):
chumlistings.append(self.topLevelItem(i).child(j))
#chumlistings = [self.item(i) for i in range(0, self.count())]
for c in chumlistings:
c.changeTheme(theme)
def count(self):
c = 0
for i in range(self.topLevelItemCount()):
c = c + self.topLevelItem(i).childCount()
return c
@QtCore.pyqtSlot()
def activateChum(self):
self.itemActivated.emit(self.currentItem())
self.itemActivated.emit(self.currentItem(), 0)
@QtCore.pyqtSlot()
def removeChum(self, handle = None):
if handle:
@ -551,7 +761,7 @@ class chumArea(RightClickList):
currentChum = self.currentItem().chum
self.chums = [c for c in self.chums if c.handle != currentChum.handle]
self.removeChumSignal.emit(self.currentItem().chum.handle)
oldlist = self.takeItem(self.currentRow())
oldlist = self.takeItem(self.currentItem())
del oldlist
@QtCore.pyqtSlot()
def blockChum(self):
@ -561,7 +771,7 @@ class chumArea(RightClickList):
self.blockChumSignal.emit(self.currentItem().chum.handle)
@QtCore.pyqtSlot()
def openChumLogs(self):
currentChum = self.currentItem().text()
currentChum = self.currentItem().text(0)
if not currentChum:
return
self.pesterlogviewer = PesterLogViewer(currentChum, self.mainwindow.config, self.mainwindow.theme, self.mainwindow)
@ -574,6 +784,61 @@ class chumArea(RightClickList):
def closeActiveLog(self):
self.pesterlogviewer.close()
self.pesterlogviewer = None
@QtCore.pyqtSlot()
def renameGroup(self):
if not hasattr(self, 'renamegroupdialog'):
self.renamegroupdialog = None
if not self.renamegroupdialog:
(gname, ok) = QtGui.QInputDialog.getText(self, "Rename Group", "Enter a new name for the group:")
if ok:
gname = unicode(gname)
currentGroup = self.currentItem()
if not currentGroup:
return
index = self.indexOfTopLevelItem(currentGroup)
if index != -1:
expanded = currentGroup.isExpanded()
self.mainwindow.config.delGroup(str(currentGroup.text(0)))
self.mainwindow.config.addGroup(gname, expanded)
gTemp = self.mainwindow.config.getGroups()
self.groups = [g[0] for g in gTemp]
self.openGroups = [g[1] for g in gTemp]
for i in range(currentGroup.childCount()):
currentGroup.child(i).chum.group = gname
self.mainwindow.chumdb.setGroup(currentGroup.child(i).chum.handle, gname)
currentGroup.setText(0, gname)
self.renamegroupdialog = None
@QtCore.pyqtSlot()
def removeGroup(self):
currentGroup = self.currentItem()
if not currentGroup:
return
self.mainwindow.config.delGroup(currentGroup.text(0))
gTemp = self.mainwindow.config.getGroups()
self.groups = [g[0] for g in gTemp]
self.openGroups = [g[1] for g in gTemp]
for i in range(self.topLevelItemCount()):
if self.topLevelItem(i).text(0) == currentGroup.text(0):
break
while self.topLevelItem(i).child(0):
chumLabel = self.topLevelItem(i).child(0)
chumLabel.chum.group = "Chums"
self.mainwindow.chumdb.setGroup(chumLabel.chum.handle, "Chums")
self.takeItem(chumLabel)
self.addItem(chumLabel)
self.takeTopLevelItem(i)
@QtCore.pyqtSlot(QtGui.QAction)
def moveToGroup(self, item):
if not item:
return
group = str(item.text())
chumLabel = self.currentItem()
if not chumLabel:
return
chumLabel.chum.group = group
self.mainwindow.chumdb.setGroup(chumLabel.chum.handle, group)
self.takeItem(chumLabel)
self.addItem(chumLabel)
removeChumSignal = QtCore.pyqtSignal(QtCore.QString)
blockChumSignal = QtCore.pyqtSignal(QtCore.QString)
@ -585,19 +850,34 @@ class trollSlum(chumArea):
theme = self.mainwindow.theme
self.setStyleSheet(theme["main/trollslum/chumroll/style"])
self.chums = trolls
child_1 = QtGui.QTreeWidgetItem([""])
self.addTopLevelItem(child_1)
child_1.setExpanded(True)
for c in self.chums:
chandle = c.handle
if not self.findItems(chandle, QtCore.Qt.MatchFlags(0)):
chumLabel = chumListing(c, self.mainwindow)
self.addItem(chumLabel)
self.setSortingEnabled(False)
self.header().hide()
self.setDropIndicatorShown(False)
self.setIndentation(0)
self.optionsMenu = QtGui.QMenu(self)
self.unblockchum = QtGui.QAction(self.mainwindow.theme["main/menus/rclickchumlist/unblockchum"], self)
self.connect(self.unblockchum, QtCore.SIGNAL('triggered()'),
self, QtCore.SIGNAL('unblockChumSignal()'))
self.optionsMenu.addAction(self.unblockchum)
self.sortItems()
#self.sortItems()
def contextMenuEvent(self, event):
#fuckin Qt
if event.reason() == QtGui.QContextMenuEvent.Mouse:
listing = self.itemAt(event.pos())
self.setCurrentItem(listing)
if self.currentItem().text(0) != "":
self.optionsMenu.popup(event.globalPos())
def changeTheme(self, theme):
self.setStyleSheet(theme["main/trollslum/chumroll/style"])
self.removechum.setText(theme["main/menus/rclickchumlist/removechum"])
@ -815,6 +1095,10 @@ class PesterWindow(MovingWindow):
self.logv = logv
self.connect(logv, QtCore.SIGNAL('triggered()'),
self, QtCore.SLOT('openLogv()'))
grps = QtGui.QAction(self.theme["main/menus/client/addgroup"], self)
self.grps = grps
self.connect(grps, QtCore.SIGNAL('triggered()'),
self, QtCore.SLOT('addGroupWindow()'))
opts = QtGui.QAction(self.theme["main/menus/client/options"], self)
self.opts = opts
self.connect(opts, QtCore.SIGNAL('triggered()'),
@ -851,6 +1135,7 @@ class PesterWindow(MovingWindow):
filemenu.addAction(logv)
filemenu.addAction(userlistaction)
filemenu.addAction(self.idleaction)
filemenu.addAction(grps)
filemenu.addAction(self.importaction)
filemenu.addAction(self.reconnectAction)
filemenu.addAction(exitaction)
@ -911,7 +1196,7 @@ class PesterWindow(MovingWindow):
chums = [PesterProfile(c, chumdb=self.chumdb) for c in set(self.config.chums())]
self.chumList = chumArea(chums, self)
self.connect(self.chumList,
QtCore.SIGNAL('itemActivated(QListWidgetItem *)'),
QtCore.SIGNAL('itemActivated(QTreeWidgetItem *, int)'),
self,
QtCore.SLOT('pesterSelectedChum()'))
self.connect(self.chumList,
@ -1147,6 +1432,7 @@ class PesterWindow(MovingWindow):
# menus
self.menu.move(*theme["main/menu/loc"])
self.logv.setText(theme["main/menus/client/logviewer"])
self.grps.setText(theme["main/menus/client/addgroup"])
self.opts.setText(theme["main/menus/client/options"])
self.exitaction.setText(theme["main/menus/client/exit"])
self.userlistaction.setText(theme["main/menus/client/userlist"])
@ -1301,7 +1587,9 @@ class PesterWindow(MovingWindow):
def pesterSelectedChum(self):
curChum = self.chumList.currentItem()
if curChum:
self.newConversationWindow(curChum)
if curChum.text(0) not in self.chumList.groups and \
curChum.text(0) != "Chums":
self.newConversationWindow(curChum)
@QtCore.pyqtSlot(QtGui.QListWidgetItem)
def newConversationWindow(self, chumlisting):
# check chumdb
@ -1642,6 +1930,25 @@ class PesterWindow(MovingWindow):
def closeLogUsers(self):
self.logusermenu.close()
self.logusermenu = None
@QtCore.pyqtSlot()
def addGroupWindow(self):
if not hasattr(self, 'addgroupdialog'):
self.addgroupdialog = None
if not self.addgroupdialog:
(gname, ok) = QtGui.QInputDialog.getText(self, "Add Group", "Enter a name for the new group:")
if ok:
gname = unicode(gname)
self.config.addGroup(gname)
gTemp = self.config.getGroups()
self.chumList.groups = [g[0] for g in gTemp]
self.chumList.openGroups = [g[1] for g in gTemp]
self.chumList.showAllGroups()
if not self.config.showEmptyGroups():
self.chumList.hideEmptyGroups()
self.addgroupdialog = None
@QtCore.pyqtSlot()
def openOpts(self):
if not hasattr(self, 'optionmenu'):
@ -1723,6 +2030,16 @@ class PesterWindow(MovingWindow):
self.config.set("time12Format", False)
secondssetting = self.optionmenu.secondscheck.isChecked()
self.config.set("showSeconds", secondssetting)
# groups
groupssetting = self.optionmenu.groupscheck.isChecked()
self.config.set("useGroups", groupssetting)
emptygroupssetting = self.optionmenu.showemptycheck.isChecked()
curemptygroup = self.config.showEmptyGroups()
if curemptygroup and not emptygroupssetting:
self.chumList.hideEmptyGroups()
elif emptygroupssetting and not curemptygroup:
self.chumList.showAllGroups()
self.config.set("emptyGroups", emptygroupssetting)
self.optionmenu = None
@QtCore.pyqtSlot()

View file

@ -20,9 +20,10 @@
"memos": "Memos",
"logviewer": "Pesterlogs",
"userlist": "Userlist",
"addgroup": "Add Group",
"import": "Import",
"reconnect": "Reconnect",
"idle": "Idle",
"idle": "Idle",
"exit": "Exit"},
"profile": {"_name": "Profile",
"switch": "Switch",
@ -38,6 +39,9 @@
"addchum": "Add Chum",
"viewlog": "View Pesterlog",
"unblockchum": "Unblock",
"removegroup": "Remove Group",
"renamegroup": "Rename Group",
"movechum": "Move To",
"banuser": "Ban User",
"opuser": "Make OP",
"quirksoff": "Quirks Off"
@ -54,7 +58,7 @@
"loc": [440, 211],
"size": [289, 275],
"userlistcolor": "black",
"moods": {
"moods": {
"chummy": { "icon": "$path/chummy.gif", "color": "black" },
@ -62,7 +66,7 @@
"offline": { "icon": "$path/offline.gif", "color": "#9d9d9d"},
"pleasant": { "icon": "$path/pleasant.gif", "color": "black" },
"distraught": { "icon": "$path/distraught.gif", "color": "black" },
@ -90,7 +94,7 @@
"devious": { "icon": "$path/devious.gif", "color": "red" },
"sleek": { "icon": "$path/sleek.gif", "color": "red" },
"detestful": { "icon": "$path/detestful.gif", "color": "red" },
"mirthful": { "icon": "$path/mirthful.gif", "color": "red" },
@ -109,7 +113,7 @@
}
},
"trollslum": {
"trollslum": {
"style": "background: #fdb302; border:2px solid yellow; font-family: 'Century Gothic'",
"size": [195, 200],
"label": { "text": "TROLLSLUM",
@ -127,7 +131,7 @@
"text": "" },
"currentMood": [1500, 1500]
},
"defaultwindow": { "style": "background: #fdb302; font-family:'Century Gothic';font:bold;selection-background-color:#919191; "
"defaultwindow": { "style": "background: #fdb302; font-family:'Century Gothic';font:bold;selection-background-color:#919191; "
},
"addchum": { "style": "background: rgba(255, 255, 0, 0%); border:0px; color: rgba(0, 0, 0, 0%);",
"loc": [443,144],
@ -147,82 +151,82 @@
},
"defaultmood": 0,
"moodlabel": { "style": "",
"loc": [20, 430],
"text": ""
},
"loc": [20, 430],
"text": ""
},
"moods": [
{ "style": "background-image:url($path/mood1.png); border:0px;",
"selected": "background-image:url($path/mood1c.png); border:0px;",
"loc": [0, 258],
"size": [100,110],
"text": "",
"icon": "",
"mood": 0
},
{ "style": "background-image:url($path/mood2.png); border:0px;",
"selected": "background-image:url($path/mood2c.png); border:0px;",
"loc": [106, 258],
"size": [100, 110],
"text": "",
"icon": "",
"mood": 19
},
{ "style": "background-image:url($path/mood3.png); border:0px;",
"selected": "background-image:url($path/mood3c.png); border:0px;",
"loc": [212, 258],
"size": [100, 110],
"text": "",
"icon": "",
"mood": 22
},
{ "style": "background-image:url($path/mood4.png); border:0px;",
"selected": "background-image:url($path/mood4c.png); border:0px;",
"loc": [318, 258],
"size": [100, 110],
"text": "",
"icon": "",
"mood": 4
},
{ "style": "background-image:url($path/mood5.png); border:0px;",
"selected": "background-image:url($path/mood5c.png); border:0px;",
"loc": [0, 382],
"size": [100, 110],
"text": "",
"icon": "",
"mood": 3
},
{ "style": "background-image:url($path/mood6.png); border:0px;",
"selected": "background-image:url($path/mood6c.png); border:0px;",
"loc": [106, 382],
"size": [100, 110],
"text": "",
"icon": "",
"mood": 20
},
{ "style": "background-image:url($path/mood7.png); border:0px;",
"selected": "background-image:url($path/mood7c.png); border:0px;",
"loc": [212, 382],
"size": [100, 110],
"text": "",
"icon": "",
"mood": 5
},
{ "style": "background-image:url($path/mood8.png); border:0px;",
"selected": "background-image:url($path/mood8c.png); border:0px;",
"loc": [318, 382],
"size": [100, 110],
"text": "",
"icon": "",
"mood": 1
},
{ "style": "border:0px;",
"selected": "border:0px;",
"loc": [0, 0],
"size": [100, 100],
"text": "",
"icon": "",
"mood": 2
}
{ "style": "background-image:url($path/mood1.png); border:0px;",
"selected": "background-image:url($path/mood1c.png); border:0px;",
"loc": [0, 258],
"size": [100,110],
"text": "",
"icon": "",
"mood": 0
},
{ "style": "background-image:url($path/mood2.png); border:0px;",
"selected": "background-image:url($path/mood2c.png); border:0px;",
"loc": [106, 258],
"size": [100, 110],
"text": "",
"icon": "",
"mood": 19
},
{ "style": "background-image:url($path/mood3.png); border:0px;",
"selected": "background-image:url($path/mood3c.png); border:0px;",
"loc": [212, 258],
"size": [100, 110],
"text": "",
"icon": "",
"mood": 22
},
{ "style": "background-image:url($path/mood4.png); border:0px;",
"selected": "background-image:url($path/mood4c.png); border:0px;",
"loc": [318, 258],
"size": [100, 110],
"text": "",
"icon": "",
"mood": 4
},
{ "style": "background-image:url($path/mood5.png); border:0px;",
"selected": "background-image:url($path/mood5c.png); border:0px;",
"loc": [0, 382],
"size": [100, 110],
"text": "",
"icon": "",
"mood": 3
},
{ "style": "background-image:url($path/mood6.png); border:0px;",
"selected": "background-image:url($path/mood6c.png); border:0px;",
"loc": [106, 382],
"size": [100, 110],
"text": "",
"icon": "",
"mood": 20
},
{ "style": "background-image:url($path/mood7.png); border:0px;",
"selected": "background-image:url($path/mood7c.png); border:0px;",
"loc": [212, 382],
"size": [100, 110],
"text": "",
"icon": "",
"mood": 5
},
{ "style": "background-image:url($path/mood8.png); border:0px;",
"selected": "background-image:url($path/mood8c.png); border:0px;",
"loc": [318, 382],
"size": [100, 110],
"text": "",
"icon": "",
"mood": 1
},
{ "style": "border:0px;",
"selected": "border:0px;",
"loc": [0, 0],
"size": [100, 100],
"text": "",
"icon": "",
"mood": 2
}
]
},
"convo":
@ -230,7 +234,7 @@
"tabstyle": "background-color: #fdb302; font-family: 'Century Gothic'",
"scrollbar": { "style" : "padding-top:17px; padding-bottom:17px;width: 18px; background: rgba(255, 255, 0, 0%); border:0px;",
"handle": "border-width: 5px; border-image:url($path/scrollbg.png) 5px; min-height:60px;",
"downarrow": "height:17px;border:0px solid #c48a00;",
"downarrow": "height:17px;border:0px solid #c48a00;",
"darrowstyle": "image:url($path/downarrow.png);",
"uparrow": "height:17px;border:0px solid #c48a00;",
"uarrowstyle": "image:url($path/uparrow.png);"
@ -258,12 +262,12 @@
"ceasepester": "ceased pestering",
"blocked": "blocked",
"unblocked": "unblocked",
"blockedmsg": "did not receive message from",
"blockedmsg": "did not receive message from",
"openmemo": "opened memo on board",
"joinmemo": "responded to memo",
"closememo": "ceased responding to memo",
"kickedmemo": "You have been banned from this memo!",
"idle": "is now an idle chum!"
"idle": "is now an idle chum!"
},
"systemMsgColor": "#646464"
},
@ -278,7 +282,7 @@
},
"scrollbar": { "style" : "padding-top:17px; padding-bottom:17px;width: 18px; background: rgba(255, 255, 0, 0%); border:0px;",
"handle": "border-width: 5px; border-image:url($path/scrollbg.png) 5px; min-height:60px;",
"downarrow": "height:17px;border:0px;",
"downarrow": "height:17px;border:0px;",
"darrowstyle": "image:url();",
"uparrow": "height:17px;border:0px;",
"uarrowstyle": "image:url();"
@ -295,20 +299,20 @@
"userlist": { "width": 150,
"style": "border:2px solid #c48a00; background: white; font-family: 'Century Gothic';selection-background-color:#646464; font-size: 14px; margin-left:0px; margin-right:10px;"
},
"time": { "text": { "width": 75,
"style": " border: 2px solid yellow; background: white; font-size: 12px; margin-top: 5px; margin-right: 5px; margin-left: 5px; font-family:'Century Gothic';font:bold;"
"time": { "text": { "width": 75,
"style": " border: 2px solid yellow; background: white; font-size: 12px; margin-top: 5px; margin-right: 5px; margin-left: 5px; font-family:'Century Gothic';font:bold;"
},
"slider": { "style": "border: 0px;",
"groove": "",
"handle": ""
},
"buttons": { "style": "color: black; font: bold; border: 2px solid #c48a00; font-size: 12px; background: yellow; margin-top: 5px; margin-right: 5px; margin-left: 5px; padding: 2px; width: 50px;" },
"arrows": { "left": "$path/leftarrow.png",
"buttons": { "style": "color: black; font: bold; border: 2px solid #c48a00; font-size: 12px; background: yellow; margin-top: 5px; margin-right: 5px; margin-left: 5px; padding: 2px; width: 50px;" },
"arrows": { "left": "$path/leftarrow.png",
"right": "$path/rightarrow.png",
"style": " border:0px; margin-top: 5px; margin-right:10px;"
"style": " border:0px; margin-top: 5px; margin-right:10px;"
}
},
"systemMsgColor": "#646464",
"op": { "icon": "$path/smooth.png" }
}
}
}

View file

@ -16,15 +16,16 @@
"loc": [150,22]
},
"sounds": { "alertsound": "$path/alarm.wav",
"ceasesound": "$path/cease.wav" },
"ceasesound": "$path/cease.wav" },
"menus": {"client": {"_name": "Client",
"options": "Options",
"memos": "Memos",
"logviewer": "Pesterlogs",
"userlist": "Userlist",
"addgroup": "Add Group",
"import": "Import",
"reconnect": "Reconnect",
"idle": "Idle",
"reconnect": "Reconnect",
"idle": "Idle",
"exit": "Exit"},
"profile": {"_name": "Profile",
"switch": "Switch",
@ -40,6 +41,9 @@
"addchum": "Add Chum",
"viewlog": "View Pesterlog",
"unblockchum": "Unblock",
"removegroup": "Remove Group",
"renamegroup": "Rename Group",
"movechum": "Move To",
"banuser": "Ban User",
"opuser": "Make OP",
"quirksoff": "Quirks Off"
@ -49,7 +53,7 @@
"loc": [123, 88],
"size": [190, 65],
"userlistcolor": "white",
"moods": {
"moods": {
"chummy": { "icon": "$path/chummy.png", "color": "white" },
@ -57,7 +61,7 @@
"offline": { "icon": "$path/offline.png", "color": "#bebebe"},
"pleasant": { "icon": "$path/pleasant.png", "color": "white" },
"distraught": { "icon": "$path/distraught.png", "color": "white" },
@ -85,7 +89,7 @@
"devious": { "icon": "$path/devious.png", "color": "red" },
"sleek": { "icon": "$path/sleek.png", "color": "red" },
"detestful": { "icon": "$path/detestful.png", "color": "red" },
"mirthful": { "icon": "$path/mirthful.png", "color": "red" },
@ -104,7 +108,7 @@
}
},
"trollslum": {
"trollslum": {
"style": "background: #fdb302; border:2px solid yellow; font-family: 'Arial'",
"size": [195, 200],
"label": { "text": "TROLLSLUM",
@ -122,7 +126,7 @@
"text": "" },
"currentMood": [129, 176]
},
"defaultwindow": { "style": "background: #fdb302; font-family:'Arial';font:bold;selection-background-color:#919191; "
"defaultwindow": { "style": "background: #fdb302; font-family:'Arial';font:bold;selection-background-color:#919191; "
},
"addchum": { "style": "background: rgba(255, 255, 0, 0%); border:0px; color: rgba(0, 0, 0, 0%);",
"loc": [25,0],
@ -142,90 +146,90 @@
},
"defaultmood": 0,
"moodlabel": { "style": "",
"loc": [20, 430],
"text": "MOODS"
},
"loc": [20, 430],
"text": "MOODS"
},
"moods": [
{ "style": "border:0px;",
"selected": "background-image:url($path/moodcheck1.png); border:0px;",
"loc": [13, 204],
"size": [101, 27],
"text": "",
"icon": "",
"mood": 0
},
{ "style": "border:0px;",
"selected": "background-image:url($path/moodcheck2.png); border:0px;",
"loc": [13, 231],
"size": [101, 27],
"text": "",
"icon": "",
"mood": 19
},
{ "style": "border:0px;",
"selected": "background-image:url($path/moodcheck3.png); border:0px;",
"loc": [13, 258],
"size": [101, 27],
"text": "",
"icon": "",
"mood": 20
},
{ "style": "border:0px;",
"selected": "background-image:url($path/moodcheck4.png); border:0px;",
"loc": [116, 204],
"size": [101, 27],
"text": "",
"icon": "",
"mood": 21
},
{ "style": "border:0px;",
"selected": "background-image:url($path/moodcheck5.png); border:0px;",
"loc": [116, 231],
"size": [101, 27],
"text": "",
"icon": "",
"mood": 22
},
{ "style": "border:0px;",
"selected": "background-image:url($path/moodcheck6.png); border:0px;",
"loc": [116, 258],
"size": [101, 27],
"text": "",
"icon": "",
"mood": 5
},
{ "style": "border:0px;",
"selected": "background-image:url($path/moodcheck7.png); border:0px;",
"loc": [219, 204],
"size": [101, 27],
"text": "",
"icon": "",
"mood": 6
},
{ "style": "border:0px;",
"selected": "background-image:url($path/moodcheck8.png); border:0px;",
"loc": [219, 231],
"size": [101, 27],
"text": "",
"icon": "",
"mood": 3
},
{ "style": "border:0px;",
"selected": "background-image:url($path/moodcheck9.png); border:0px;",
"loc": [219, 258],
"size": [101, 27],
"text": "",
"icon": "",
"mood": 1
},
{ "style": "border:0px;",
"selected": "border:0px;",
"loc": [13, 175],
"size": [101, 27],
"text": "",
"icon": "",
"mood": 2
}
{ "style": "border:0px;",
"selected": "background-image:url($path/moodcheck1.png); border:0px;",
"loc": [13, 204],
"size": [101, 27],
"text": "",
"icon": "",
"mood": 0
},
{ "style": "border:0px;",
"selected": "background-image:url($path/moodcheck2.png); border:0px;",
"loc": [13, 231],
"size": [101, 27],
"text": "",
"icon": "",
"mood": 19
},
{ "style": "border:0px;",
"selected": "background-image:url($path/moodcheck3.png); border:0px;",
"loc": [13, 258],
"size": [101, 27],
"text": "",
"icon": "",
"mood": 20
},
{ "style": "border:0px;",
"selected": "background-image:url($path/moodcheck4.png); border:0px;",
"loc": [116, 204],
"size": [101, 27],
"text": "",
"icon": "",
"mood": 21
},
{ "style": "border:0px;",
"selected": "background-image:url($path/moodcheck5.png); border:0px;",
"loc": [116, 231],
"size": [101, 27],
"text": "",
"icon": "",
"mood": 22
},
{ "style": "border:0px;",
"selected": "background-image:url($path/moodcheck6.png); border:0px;",
"loc": [116, 258],
"size": [101, 27],
"text": "",
"icon": "",
"mood": 5
},
{ "style": "border:0px;",
"selected": "background-image:url($path/moodcheck7.png); border:0px;",
"loc": [219, 204],
"size": [101, 27],
"text": "",
"icon": "",
"mood": 6
},
{ "style": "border:0px;",
"selected": "background-image:url($path/moodcheck8.png); border:0px;",
"loc": [219, 231],
"size": [101, 27],
"text": "",
"icon": "",
"mood": 3
},
{ "style": "border:0px;",
"selected": "background-image:url($path/moodcheck9.png); border:0px;",
"loc": [219, 258],
"size": [101, 27],
"text": "",
"icon": "",
"mood": 1
},
{ "style": "border:0px;",
"selected": "border:0px;",
"loc": [13, 175],
"size": [101, 27],
"text": "",
"icon": "",
"mood": 2
}
]
},
"convo":
@ -233,7 +237,7 @@
"tabstyle": "background-color: #fdb302; font-family: 'Arial'",
"scrollbar": { "style" : "padding-top:17px; padding-bottom:17px;width: 18px; background: rgba(255, 255, 0, 0%); border:0px;",
"handle": "background-color:#c48a00;min-height:20px;",
"downarrow": "height:17px;border:0px solid #c48a00;",
"downarrow": "height:17px;border:0px solid #c48a00;",
"darrowstyle": "image:url($path/downarrow.png);",
"uparrow": "height:17px;border:0px solid #c48a00;",
"uarrowstyle": "image:url($path/uparrow.png);"
@ -263,12 +267,12 @@
"ceasepester": "ceased pestering",
"blocked": "blocked",
"unblocked": "unblocked",
"blockedmsg": "did not receive message from",
"blockedmsg": "did not receive message from",
"openmemo": "opened memo on board",
"joinmemo": "responded to memo",
"closememo": "ceased responding to memo",
"kickedmemo": "You have been banned from this memo!",
"idle": "is now an idle chum!"
"idle": "is now an idle chum!"
},
"systemMsgColor": "#646464"
},
@ -284,7 +288,7 @@
},
"scrollbar": { "style" : "padding-top:17px; padding-bottom:17px;width: 18px; background: rgba(255, 255, 0, 0%); border:0px;",
"handle": "background-color:#c48a00;min-height:20px;",
"downarrow": "height:17px;border:0px solid #c48a00;",
"downarrow": "height:17px;border:0px solid #c48a00;",
"darrowstyle": "image:url($path/downarrow.png);",
"uparrow": "height:17px;border:0px solid #c48a00;",
"uarrowstyle": "image:url($path/uparrow.png);"
@ -301,20 +305,20 @@
"userlist": { "width": 150,
"style": "border:2px solid #c48a00; background: white; font-family: 'Arial';selection-background-color:#646464; font-size: 14px; margin-left:0px; margin-right:10px;"
},
"time": { "text": { "width": 75,
"style": " border: 2px solid yellow; background: white; font-size: 12px; margin-top: 5px; margin-right: 5px; margin-left: 5px; font-family:'Arial';font:bold;"
"time": { "text": { "width": 75,
"style": " border: 2px solid yellow; background: white; font-size: 12px; margin-top: 5px; margin-right: 5px; margin-left: 5px; font-family:'Arial';font:bold;"
},
"slider": { "style": "border: 0px;",
"groove": "",
"handle": ""
},
"buttons": { "style": "color: black; font: bold; border: 2px solid #c48a00; font-size: 12px; background: yellow; margin-top: 5px; margin-right: 5px; margin-left: 5px; padding: 2px; width: 50px;" },
"arrows": { "left": "$path/leftarrow.png",
"buttons": { "style": "color: black; font: bold; border: 2px solid #c48a00; font-size: 12px; background: yellow; margin-top: 5px; margin-right: 5px; margin-left: 5px; padding: 2px; width: 50px;" },
"arrows": { "left": "$path/leftarrow.png",
"right": "$path/rightarrow.png",
"style": " border:0px; margin-top: 5px; margin-right:10px;"
"style": " border:0px; margin-top: 5px; margin-right:10px;"
}
},
"systemMsgColor": "#646464",
"op": { "icon": "$path/smooth.png" }
}
}
}

View file

@ -16,15 +16,16 @@
"loc": [10,0]
},
"sounds": { "alertsound": "$path/alarm.wav",
"ceasesound": "$path/cease.wav" },
"ceasesound": "$path/cease.wav" },
"menus": {"client": {"_name": "CLIENT",
"options": "OPTIONS",
"memos": "MEMOS",
"logviewer": "PESTERLOGS",
"userlist": "USERLIST",
"addgroup": "ADD GROUP",
"import": "IMPORT",
"reconnect": "RECONNECT",
"idle": "IDLE",
"idle": "IDLE",
"exit": "EXIT"},
"profile": {"_name": "PROFILE",
"switch": "SWITCH",
@ -40,6 +41,9 @@
"addchum": "ADD CHUM",
"viewlog": "VIEW PESTERLOG",
"unblockchum": "UNBLOCK",
"removegroup": "REMOVE GROUP",
"renamegroup": "RENAME GROUP",
"movechum": "MOVE TO",
"banuser": "BAN USER",
"opuser": "MAKE OP",
"quirksoff": "QUIRKS OFF"
@ -49,7 +53,7 @@
"loc": [12, 117],
"size": [209, 82],
"userlistcolor": "white",
"moods": {
"moods": {
"chummy": { "icon": "$path/chummy.png", "color": "white" },
@ -57,7 +61,7 @@
"offline": { "icon": "$path/offline.png", "color": "#646464"},
"pleasant": { "icon": "$path/pleasant.png", "color": "white" },
"distraught": { "icon": "$path/distraught.png", "color": "white" },
@ -85,7 +89,7 @@
"devious": { "icon": "$path/devious.png", "color": "red" },
"sleek": { "icon": "$path/sleek.png", "color": "red" },
"detestful": { "icon": "$path/detestful.png", "color": "red" },
"mirthful": { "icon": "$path/mirthful.png", "color": "red" },
@ -104,7 +108,7 @@
}
},
"trollslum": {
"trollslum": {
"style": "background: #fdb302; border:2px solid yellow; font-family: 'Courier'",
"size": [195, 200],
"label": { "text": "TROLLSLUM",
@ -122,7 +126,7 @@
"text": "" },
"currentMood": [18, 249]
},
"defaultwindow": { "style": "background: #fdb302; font-family:'Courier';font:bold;selection-background-color:#919191; "
"defaultwindow": { "style": "background: #fdb302; font-family:'Courier';font:bold;selection-background-color:#919191; "
},
"addchum": { "style": "background: rgba(255, 255, 0, 0%); border:2px solid #c48a00; font: bold; color: rgba(0, 0, 0, 0%); font-family:'Courier';",
"pressed" : "background: rgb(255, 255, 255, 30%);",
@ -136,7 +140,7 @@
"size": [71, 22],
"text": ""
},
"block": { "style": "background: rgba(255, 255, 0, 0%); border:2px solid #c48a00; font: bold; color: rgba(255, 255, 0, 0%); font-family:'Courier';",
"block": { "style": "background: rgba(255, 255, 0, 0%); border:2px solid #c48a00; font: bold; color: rgba(255, 255, 0, 0%); font-family:'Courier';",
"pressed" : "background: rgb(255, 255, 255, 30%);",
"loc": [81,202],
"size": [71, 22],
@ -144,73 +148,73 @@
},
"defaultmood": 0,
"moodlabel": { "style": "",
"loc": [20, 430],
"text": "MOODS"
},
"loc": [20, 430],
"text": "MOODS"
},
"moods": [
{ "style": "text-align:left; border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier'",
"selected": "text-align:left; background-image:url($path/moodcheck1.png); border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier';",
"loc": [12, 288],
"size": [104, 22],
"text": "CHUMMY",
"icon": "$path/chummy.png",
"mood": 0
},
{ "style": "text-align:left; border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier'",
"selected": "text-align:left; background-image:url($path/moodcheck2.png); border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier';",
"loc": [12, 308],
"size": [104, 22],
"text": "PALSY",
"icon": "$path/chummy.png",
"mood": 3
},
{ "style": "text-align:left; border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier'",
"selected": "text-align:left; background-image:url($path/moodcheck3.png); border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier';",
"loc": [12, 328],
"size": [104, 22],
"text": "CHIPPER",
"icon": "$path/chummy.png",
"mood": 4
},
{ "style": "text-align:left; border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier'",
"selected": "text-align:left; background-image:url($path/moodcheck2.png); border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier';",
"loc": [117, 288],
"size": [104, 22],
"text": "BULLY",
"icon": "$path/chummy.png",
"mood": 5
},
{ "style": "text-align:left; border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier'",
"selected": "text-align:left; background-image:url($path/moodcheck2.png); border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier';",
"loc": [117, 308],
"size": [104, 22],
"text": "PEPPY",
"icon": "$path/chummy.png",
"mood": 6
},
{ "style": "text-align:left; border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier'",
"selected": "text-align:left; background-image:url($path/moodcheck4.png); border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier';",
"loc": [117, 328],
"size": [104, 22],
"text": "RANCOROUS",
"icon": "$path/rancorous.png",
"mood": 1
},
{ "style": "text-align:left; border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier'",
"selected": "text-align:left; background-image:url($path/moodcheck5.png); border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier';",
"loc": [12, 348],
"size": [209, 22],
"text": "ABSCOND",
"icon": "",
"mood": 2
}
{ "style": "text-align:left; border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier'",
"selected": "text-align:left; background-image:url($path/moodcheck1.png); border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier';",
"loc": [12, 288],
"size": [104, 22],
"text": "CHUMMY",
"icon": "$path/chummy.png",
"mood": 0
},
{ "style": "text-align:left; border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier'",
"selected": "text-align:left; background-image:url($path/moodcheck2.png); border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier';",
"loc": [12, 308],
"size": [104, 22],
"text": "PALSY",
"icon": "$path/chummy.png",
"mood": 3
},
{ "style": "text-align:left; border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier'",
"selected": "text-align:left; background-image:url($path/moodcheck3.png); border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier';",
"loc": [12, 328],
"size": [104, 22],
"text": "CHIPPER",
"icon": "$path/chummy.png",
"mood": 4
},
{ "style": "text-align:left; border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier'",
"selected": "text-align:left; background-image:url($path/moodcheck2.png); border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier';",
"loc": [117, 288],
"size": [104, 22],
"text": "BULLY",
"icon": "$path/chummy.png",
"mood": 5
},
{ "style": "text-align:left; border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier'",
"selected": "text-align:left; background-image:url($path/moodcheck2.png); border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier';",
"loc": [117, 308],
"size": [104, 22],
"text": "PEPPY",
"icon": "$path/chummy.png",
"mood": 6
},
{ "style": "text-align:left; border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier'",
"selected": "text-align:left; background-image:url($path/moodcheck4.png); border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier';",
"loc": [117, 328],
"size": [104, 22],
"text": "RANCOROUS",
"icon": "$path/rancorous.png",
"mood": 1
},
{ "style": "text-align:left; border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier'",
"selected": "text-align:left; background-image:url($path/moodcheck5.png); border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier';",
"loc": [12, 348],
"size": [209, 22],
"text": "ABSCOND",
"icon": "",
"mood": 2
}
]
},
"convo":
{"style": "background-color: #fdb302;background-image:url($path/convobg.png);background-repeat: no-repeat; border:2px solid yellow; font-family: 'Courier'",
"scrollbar": { "style" : "padding-top:17px; padding-bottom:17px;width: 18px; background: white; border:2px solid #c48a00;",
"handle": "background-color:#c48a00;min-height:20px;",
"downarrow": "height:17px;border:0px solid #c48a00;",
"downarrow": "height:17px;border:0px solid #c48a00;",
"darrowstyle": "image:url($path/downarrow.png);",
"uparrow": "height:17px;border:0px solid #c48a00;",
"uarrowstyle": "image:url($path/uparrow.png);"
@ -230,7 +234,7 @@
"style": "background: white; border:2px solid #c48a00;margin-top:5px; margin-right:10px; margin-left:10px; font-size: 12px;font-family: 'Courier'"
},
"tabwindow" : {
"style": "background-color:#fdb302;border:0px"
"style": "background-color:#fdb302;border:0px"
},
"tabs": {
"style": "background-color: #7f7f7f; font-family: 'Courier';font:bold;font-size:12px;min-height:25px;",
@ -243,12 +247,12 @@
"ceasepester": "ceased pestering",
"blocked": "blocked",
"unblocked": "unblocked",
"blockedmsg": "did not receive message from",
"blockedmsg": "did not receive message from",
"openmemo": "opened memo on board",
"joinmemo": "responded to memo",
"closememo": "ceased responding to memo",
"kickedmemo": "You have been banned from this memo!",
"idle": "is now an idle chum!"
"idle": "is now an idle chum!"
},
"systemMsgColor": "#646464"
},
@ -264,7 +268,7 @@
},
"scrollbar": { "style" : "padding-top:17px; padding-bottom:17px;width: 18px; background: rgba(255, 255, 0, 0%); border:0px;",
"handle": "background-color:#c48a00;min-height:20px;",
"downarrow": "height:17px;border:0px solid #c48a00;",
"downarrow": "height:17px;border:0px solid #c48a00;",
"darrowstyle": "image:url($path/downarrow.png);",
"uparrow": "height:17px;border:0px solid #c48a00;",
"uarrowstyle": "image:url($path/uparrow.png);"
@ -281,20 +285,20 @@
"userlist": { "width": 150,
"style": "border:2px solid #c48a00; background: white;font: bold;font-family: 'Courier';selection-background-color:#646464; font-size: 12px; margin-left:0px; margin-right:10px;"
},
"time": { "text": { "width": 75,
"style": " border: 2px solid yellow; background: white; font-size: 12px; margin-top: 5px; margin-right: 5px; margin-left: 5px; font-family:'Courier';font:bold;"
"time": { "text": { "width": 75,
"style": " border: 2px solid yellow; background: white; font-size: 12px; margin-top: 5px; margin-right: 5px; margin-left: 5px; font-family:'Courier';font:bold;"
},
"slider": { "style": "border: 0px;",
"groove": "",
"handle": ""
},
"buttons": { "style": "color: black; font: bold; border: 2px solid #c48a00; font: bold; font-size: 12px; background: yellow; margin-top: 5px; margin-right: 5px; margin-left: 5px; padding: 2px; width: 50px;" },
"arrows": { "left": "$path/leftarrow.png",
"buttons": { "style": "color: black; font: bold; border: 2px solid #c48a00; font: bold; font-size: 12px; background: yellow; margin-top: 5px; margin-right: 5px; margin-left: 5px; padding: 2px; width: 50px;" },
"arrows": { "left": "$path/leftarrow.png",
"right": "$path/rightarrow.png",
"style": " border:0px; margin-top: 5px; margin-right:10px;"
"style": " border:0px; margin-top: 5px; margin-right:10px;"
}
},
"systemMsgColor": "#646464",
"op": { "icon": "$path/op.png" }
}
}
}

View file

@ -21,8 +21,10 @@
"memos": "Memos",
"logviewer": "Pesterlogs",
"userlist": "Fresh Targets",
"addgroup": "Add Group",
"import": "import U2;",
"idle": "Idle",
"reconnect": "Reconnect",
"idle": "Idle",
"exit": "Abscond"},
"profile": {"_name": "View",
"switch": "Trolltag",
@ -38,6 +40,9 @@
"addchum": "Add Chump",
"viewlog": "View Pesterlog",
"unblockchum": "Mercy",
"removegroup": "Remove Group",
"renamegroup": "Rename Group",
"movechum": "Move To",
"banuser": "Ban",
"opuser": "Promote",
"quirksoff": "Quirks Off" }
@ -54,50 +59,50 @@
"size": [171, 357],
"userlistcolor": "black",
"moods": {
"chummy": { "icon": "$path/chummy.png", "color": "#63ea00" },
"rancorous": { "icon": "$path/rancorous.png", "color": "#7f7f7f" },
"offline": { "icon": "$path/offline.png", "color": "black"},
"pleasant": { "icon": "$path/pleasant.png", "color": "#d69df8" },
"distraught": { "icon": "$path/distraught.png", "color": "#706eba" },
"pranky": { "icon": "$path/pranky.png", "color": "blue" },
"smooth": { "icon": "$path/smooth.png", "color": "red" },
"ecstatic": { "icon": "$path/ecstatic.png", "color": "#99004d" },
"relaxed": { "icon": "$path/relaxed.png", "color": "#078446" },
"discontent": { "icon": "$path/discontent.png", "color": "#a75403" },
"devious": { "icon": "$path/devious.png", "color": "#008282" },
"sleek": { "icon": "$path/sleek.png", "color": "#a1a100" },
"detestful": { "icon": "$path/detestful.png", "color": "#6a006a" },
"mirthful": { "icon": "$path/mirthful.png", "color": "#450077" },
"manipulative": { "icon": "$path/manipulative.png", "color": "#004182" },
"vigorous": { "icon": "$path/vigorous.png", "color": "#0021cb" },
"perky": { "icon": "$path/perky.png", "color": "#406600" },
"acceptant": { "icon": "$path/acceptant.png", "color": "#a10000" },
"protective": { "icon": "$path/protective.png", "color": "white" },
"blocked": { "icon": "$path/blocked.png", "color": "black" }
}
},
"trollslum": {
@ -236,7 +241,7 @@
"icon": "",
"mood": 7
},
{ "style": "border:0px;color: rgba(0, 0, 0, 0%);",
"selected": "border:0px; color: rgba(0, 0, 0, 0%);",
"loc": [12, 117],
@ -266,7 +271,7 @@
"style": "background: white;margin-top:5px; border:1px solid #c2c2c2; margin-right: 54px; font-size: 12px; height: 19px;"
},
"tabwindow" : {
"style": "background: rgb(190, 19, 4); font-family: 'Arial'"
"style": "background: rgb(190, 19, 4); font-family: 'Arial'"
},
"tabs": {
"style": "",
@ -312,15 +317,15 @@
"userlist": { "width": 125,
"style": "font-size: 12px; background: white; margin-left: 5px; margin-bottom: 5px; border:2px solid #c2c2c2; padding: 5px; font-family: 'Arial';selection-background-color:rgb(200,200,200);"
},
"time": { "text": { "width": 75,
"style": "color: black; font:bold; border:1px solid #c2c2c2; background: white; height: 19px;"
"time": { "text": { "width": 75,
"style": "color: black; font:bold; border:1px solid #c2c2c2; background: white; height: 19px;"
},
"slider": { "style": " border:1px solid #c2c2c2;",
"groove": "border-image:url($path/timeslider.png);",
"handle": "image:url($path/acceptant.png);"
},
"buttons": { "style": "border:1px solid #a68168; height: 17px; width: 50px; color: #cd8f9d; font-family: 'Arial'; background: rgb(190, 19, 4); margin-left: 2px;" },
"arrows": { "left": "$path/leftarrow.png",
"buttons": { "style": "border:1px solid #a68168; height: 17px; width: 50px; color: #cd8f9d; font-family: 'Arial'; background: rgb(190, 19, 4); margin-left: 2px;" },
"arrows": { "left": "$path/leftarrow.png",
"right": "$path/rightarrow.png",
"style": "width: 19px; height: 19px; border:0px; margin-left: 2px;"
}
@ -328,4 +333,4 @@
"systemMsgColor": "#646464",
"op": { "icon": "$path/op.png" }
}
}
}

View file

@ -16,15 +16,16 @@
"loc": [43,220]
},
"sounds": { "alertsound": "$path/alarm.wav",
"ceasesound": "$path/cease.wav" },
"ceasesound": "$path/cease.wav" },
"menus": {"client": {"_name": "Typewriter",
"options": "Preferences",
"memos": "Bulletin Boards",
"logviewer": "Pesterlogs",
"userlist": "Userlist",
"addgroup": "Add Group",
"import": "Import",
"idle": "Idle",
"reconnect": "Reconnect",
"idle": "Idle",
"reconnect": "Reconnect",
"exit": "Cease"},
"profile": {"_name": "Ink",
"switch": "Alias",
@ -40,6 +41,9 @@
"addchum": "Add User",
"viewlog": "View Pesterlog",
"unblockchum": "Forgive",
"removegroup": "Remove Group",
"renamegroup": "Rename Group",
"movechum": "Move To",
"banuser": "Expel User",
"opuser": "Promote",
"quirksoff": "Quirks Off"
@ -49,7 +53,7 @@
"loc": [70, 20],
"size": [175,100],
"userlistcolor": "black",
"moods": {
"moods": {
"chummy": { "icon": "$path/chummy.png", "color": "black" },
@ -57,7 +61,7 @@
"offline": { "icon": "$path/offline.png", "color": "#646464"},
"pleasant": { "icon": "$path/pleasant.png", "color": "black" },
"distraught": { "icon": "$path/distraught.png", "color": "black" },
@ -85,7 +89,7 @@
"devious": { "icon": "$path/devious.png", "color": "red" },
"sleek": { "icon": "$path/sleek.png", "color": "red" },
"detestful": { "icon": "$path/detestful.png", "color": "red" },
"mirthful": { "icon": "$path/mirthful.png", "color": "red" },
@ -104,7 +108,7 @@
}
},
"trollslum": {
"trollslum": {
"style": "background: #bebebe; border:2px solid black; font-family: 'Courier'",
"size": [195, 200],
"label": { "text": "Ruffians",
@ -122,7 +126,7 @@
"text": "" },
"currentMood": [0, 0]
},
"defaultwindow": { "style": "background: #bebebe; font-family:'Courier';font:bold;selection-background-color: black; "
"defaultwindow": { "style": "background: #bebebe; font-family:'Courier';font:bold;selection-background-color: black; "
},
"addchum": { "style": "background: rgba(255, 255, 0, 0%); border:0px solid #c48a00; font: bold; color: rgba(0, 0, 0, 0%); font-family:'Courier';",
"pressed" : "background: rgb(255, 255, 255, 30%);",
@ -136,7 +140,7 @@
"size": [70, 15],
"text": ""
},
"block": { "style": "background: rgba(255, 255, 0, 0%); border:2px solid #c48a00; font: bold; color: rgba(255, 255, 0, 0%); font-family:'Courier';",
"block": { "style": "background: rgba(255, 255, 0, 0%); border:2px solid #c48a00; font: bold; color: rgba(255, 255, 0, 0%); font-family:'Courier';",
"pressed" : "background: rgb(255, 255, 255, 30%);",
"loc": [0,0],
"size": [0, 0],
@ -144,26 +148,26 @@
},
"defaultmood": 18,
"moodlabel": { "style": "",
"loc": [20, 430],
"text": "MOODS"
},
"loc": [20, 430],
"text": "MOODS"
},
"moods": [
{ "style": "text-align:left; border:0px solid #c48a00; padding: 0px;color: rgba(0, 0, 0, 0%); font-family:'Courier'",
"selected": "text-align:left; background-image:url($path/moodcheck1.png); border:0px solid #c48a00; padding: 0px;color: rgba(0, 0, 0, 0%); font-family:'Courier';",
"loc": [95, 323],
"size": [62, 9],
"text": "",
"icon": "",
"mood": 18
},
{ "style": "text-align:left; border:0px solid #c48a00; padding: 0px;color: rgba(0, 0, 0, 0%); font-family:'Courier'",
"selected": "text-align:left; background-image:url($path/moodcheck2.png); border:0px solid #c48a00; padding: 0px;color: rgba(0, 0, 0, 0%); font-family:'Courier';",
"loc": [165, 323],
"size": [70, 9],
"text": "",
"icon": "",
"mood": 2
}
{ "style": "text-align:left; border:0px solid #c48a00; padding: 0px;color: rgba(0, 0, 0, 0%); font-family:'Courier'",
"selected": "text-align:left; background-image:url($path/moodcheck1.png); border:0px solid #c48a00; padding: 0px;color: rgba(0, 0, 0, 0%); font-family:'Courier';",
"loc": [95, 323],
"size": [62, 9],
"text": "",
"icon": "",
"mood": 18
},
{ "style": "text-align:left; border:0px solid #c48a00; padding: 0px;color: rgba(0, 0, 0, 0%); font-family:'Courier'",
"selected": "text-align:left; background-image:url($path/moodcheck2.png); border:0px solid #c48a00; padding: 0px;color: rgba(0, 0, 0, 0%); font-family:'Courier';",
"loc": [165, 323],
"size": [70, 9],
"text": "",
"icon": "",
"mood": 2
}
]
},
"convo":
@ -194,12 +198,12 @@
"ceasepester": "ceased pestering",
"blocked": "blocked",
"unblocked": "unblocked",
"blockedmsg": "did not receive message from",
"blockedmsg": "did not receive message from",
"openmemo": "opened memo on board",
"joinmemo": "responded to memo",
"closememo": "ceased responding to memo",
"kickedmemo": "You have been banned from this memo!",
"idle": "is now an idle chum!"
"idle": "is now an idle chum!"
},
"systemMsgColor": "#646464"
},
@ -215,7 +219,7 @@
},
"scrollbar": { "style" : "padding-top:17px; padding-bottom:17px;width: 18px; background: rgba(255, 255, 0, 0%); border:0px;",
"handle": "background-color:black;min-height:20px;",
"downarrow": "height:17px;border:0px;",
"downarrow": "height:17px;border:0px;",
"darrowstyle": "image:url($path/downarrow.png);",
"uparrow": "height:17px;border:0px;",
"uarrowstyle": "image:url($path/uparrow.png);"
@ -232,20 +236,20 @@
"userlist": { "width": 150,
"style": "border:2px solid black; background: white;font: bold;font-family: 'Courier';selection-background-color:black; font-size: 12px; margin-left:0px; margin-right:10px;"
},
"time": { "text": { "width": 75,
"style": " border: 2px solid black; background: white; font-size: 12px; margin-top: 5px; margin-right: 5px; margin-left: 5px; font-family:'Courier';font:bold;"
"time": { "text": { "width": 75,
"style": " border: 2px solid black; background: white; font-size: 12px; margin-top: 5px; margin-right: 5px; margin-left: 5px; font-family:'Courier';font:bold;"
},
"slider": { "style": "border: 0px;",
"groove": "",
"handle": ""
},
"buttons": { "style": "color: black; font: bold; border: 2px solid black; font: bold; font-size: 12px; background: white; margin-top: 5px; margin-right: 5px; margin-left: 5px; padding: 2px; width: 50px;" },
"arrows": { "left": "$path/leftarrow.png",
"buttons": { "style": "color: black; font: bold; border: 2px solid black; font: bold; font-size: 12px; background: white; margin-top: 5px; margin-right: 5px; margin-left: 5px; padding: 2px; width: 50px;" },
"arrows": { "left": "$path/leftarrow.png",
"right": "$path/rightarrow.png",
"style": " border:0px; margin-top: 5px; margin-right:10px;"
"style": " border:0px; margin-top: 5px; margin-right:10px;"
}
},
"systemMsgColor": "#646464",
"op": { "icon": "$path/protective.png" }
}
}
}