projects
/
quassel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Move "Appearance" to "Interface" in settingspages
[quassel.git]
/
src
/
uisupport
/
uistyle.cpp
diff --git
a/src/uisupport/uistyle.cpp
b/src/uisupport/uistyle.cpp
index
3bd9b62
..
75524db
100644
(file)
--- a/
src/uisupport/uistyle.cpp
+++ b/
src/uisupport/uistyle.cpp
@@
-68,9
+68,9
@@
UiStyle::UiStyle(QObject *parent)
setTimestampFormatString("[hh:mm:ss]");
// BufferView / NickView settings
setTimestampFormatString("[hh:mm:ss]");
// BufferView / NickView settings
-
BufferSettings bufferSetting
s;
- _showBufferViewIcons = _showNickViewIcons =
bufferSettings.showUserStateIcons
();
-
bufferSettings.notify("ShowUserStateIcons", this, SLOT(showUserState
IconsChanged()));
+
UiStyleSettings
s;
+ _showBufferViewIcons = _showNickViewIcons =
s.value("ShowItemViewIcons", true).toBool
();
+
s.notify("ShowItemViewIcons", this, SLOT(showItemView
IconsChanged()));
loadStyleSheet();
}
loadStyleSheet();
}
@@
-87,6
+87,7
@@
void UiStyle::loadStyleSheet() {
qDeleteAll(_metricsCache);
_metricsCache.clear();
_formatCache.clear();
qDeleteAll(_metricsCache);
_metricsCache.clear();
_formatCache.clear();
+ _formats.clear();
UiStyleSettings s;
UiStyleSettings s;
@@
-101,17
+102,14
@@
void UiStyle::loadStyleSheet() {
QssParser parser;
parser.processStyleSheet(styleSheet);
QApplication::setPalette(parser.palette());
QssParser parser;
parser.processStyleSheet(styleSheet);
QApplication::setPalette(parser.palette());
- _uiStylePalette = parser.uiStylePalette();
- QTextCharFormat baseFmt = parser.formats().value(Base);
- foreach(quint64 fmtType, parser.formats().keys()) {
- QTextCharFormat fmt = baseFmt;
- fmt.merge(parser.formats().value(fmtType));
- _formatCache[fmtType] = fmt;
- }
+ _uiStylePalette = parser.uiStylePalette();
+ _formats = parser.formats();
_listItemFormats = parser.listItemFormats();
_listItemFormats = parser.listItemFormats();
- qApp->setStyleSheet(styleSheet); // pass the remaining sections to the application
+ styleSheet = styleSheet.trimmed();
+ if(!styleSheet.isEmpty())
+ qApp->setStyleSheet(styleSheet); // pass the remaining sections to the application
}
emit changed();
}
emit changed();
@@
-147,9
+145,9
@@
void UiStyle::setTimestampFormatString(const QString &format) {
/******** ItemView Styling *******/
/******** ItemView Styling *******/
-void UiStyle::show
UserState
IconsChanged() {
-
BufferSettings bufferSetting
s;
- _showBufferViewIcons = _showNickViewIcons =
bufferSettings.showUserStateIcons
();
+void UiStyle::show
ItemView
IconsChanged() {
+
UiStyleSettings
s;
+ _showBufferViewIcons = _showNickViewIcons =
s.value("ShowItemViewIcons").toBool
();
}
QVariant UiStyle::bufferViewItemData(const QModelIndex &index, int role) const {
}
QVariant UiStyle::bufferViewItemData(const QModelIndex &index, int role) const {
@@
-279,12
+277,12
@@
QVariant UiStyle::itemData(int role, const QTextCharFormat &format) const {
/******** Caching *******/
/******** Caching *******/
-QTextCharFormat UiStyle::
cachedF
ormat(quint64 key) const {
- return _format
Cache
.value(key, QTextCharFormat());
+QTextCharFormat UiStyle::
f
ormat(quint64 key) const {
+ return _format
s
.value(key, QTextCharFormat());
}
QTextCharFormat UiStyle::cachedFormat(quint32 formatType, quint32 messageLabel) const {
}
QTextCharFormat UiStyle::cachedFormat(quint32 formatType, quint32 messageLabel) const {
- return
cachedFormat(formatType | ((quint64)messageLabel << 32
));
+ return
_formatCache.value(formatType | ((quint64)messageLabel << 32), QTextCharFormat(
));
}
void UiStyle::setCachedFormat(const QTextCharFormat &format, quint32 formatType, quint32 messageLabel) {
}
void UiStyle::setCachedFormat(const QTextCharFormat &format, quint32 formatType, quint32 messageLabel) {
@@
-312,7
+310,7
@@
QTextCharFormat UiStyle::format(quint32 ftype, quint32 label_) {
quint64 label = (quint64)label_ << 32;
// check if we have exactly this format readily cached already
quint64 label = (quint64)label_ << 32;
// check if we have exactly this format readily cached already
- QTextCharFormat fmt = cachedFormat(
label|ftype
);
+ QTextCharFormat fmt = cachedFormat(
ftype, label_
);
if(fmt.properties().count())
return fmt;
if(fmt.properties().count())
return fmt;
@@
-332,10
+330,10
@@
void UiStyle::mergeFormat(QTextCharFormat &fmt, quint32 ftype, quint64 label) {
// TODO: allow combinations for mirc formats and colors (each), e.g. setting a special format for "bold and italic"
// or "foreground 01 and background 03"
// TODO: allow combinations for mirc formats and colors (each), e.g. setting a special format for "bold and italic"
// or "foreground 01 and background 03"
- if((ftype & 0xfff0)) { // element format
+ if((ftype & 0xfff0
0
)) { // element format
for(quint32 mask = 0x00100; mask <= 0x40000; mask <<= 1) {
if(ftype & mask) {
for(quint32 mask = 0x00100; mask <= 0x40000; mask <<= 1) {
if(ftype & mask) {
- mergeSubElementFormat(fmt,
mask | 0xff
, label);
+ mergeSubElementFormat(fmt,
ftype & (mask | 0xff)
, label);
}
}
}
}
}
}
@@
-351,16
+349,16
@@
void UiStyle::mergeFormat(QTextCharFormat &fmt, quint32 ftype, quint64 label) {
// URL
if(ftype & Url)
// URL
if(ftype & Url)
- mergeSubElementFormat(fmt, ftype &
Url
, label);
+ mergeSubElementFormat(fmt, ftype &
(Url | 0x000000ff)
, label);
}
// Merge a subelement format into an existing message format
void UiStyle::mergeSubElementFormat(QTextCharFormat& fmt, quint32 ftype, quint64 label) {
quint64 key = ftype | label;
}
// Merge a subelement format into an existing message format
void UiStyle::mergeSubElementFormat(QTextCharFormat& fmt, quint32 ftype, quint64 label) {
quint64 key = ftype | label;
- fmt.merge(
cachedF
ormat(key & Q_UINT64_C(0x0000ffffffffff00))); // label + subelement
- fmt.merge(
cachedF
ormat(key & Q_UINT64_C(0x0000ffffffffffff))); // label + subelement + msgtype
- fmt.merge(
cachedF
ormat(key & Q_UINT64_C(0xffffffffffffff00))); // label + subelement + nickhash
- fmt.merge(
cachedF
ormat(key & Q_UINT64_C(0xffffffffffffffff))); // label + subelement + nickhash + msgtype
+ fmt.merge(
f
ormat(key & Q_UINT64_C(0x0000ffffffffff00))); // label + subelement
+ fmt.merge(
f
ormat(key & Q_UINT64_C(0x0000ffffffffffff))); // label + subelement + msgtype
+ fmt.merge(
f
ormat(key & Q_UINT64_C(0xffffffffffffff00))); // label + subelement + nickhash
+ fmt.merge(
f
ormat(key & Q_UINT64_C(0xffffffffffffffff))); // label + subelement + nickhash + msgtype
}
UiStyle::FormatType UiStyle::formatType(Message::Type msgType) {
}
UiStyle::FormatType UiStyle::formatType(Message::Type msgType) {
@@
-393,6
+391,8
@@
UiStyle::FormatType UiStyle::formatType(Message::Type msgType) {
return ErrorMsg;
case Message::DayChange:
return DayChangeMsg;
return ErrorMsg;
case Message::DayChange:
return DayChangeMsg;
+ case Message::Topic:
+ return TopicMsg;
}
//Q_ASSERT(false); // we need to handle all message types
qWarning() << Q_FUNC_INFO << "Unknown message type:" << msgType;
}
//Q_ASSERT(false); // we need to handle all message types
qWarning() << Q_FUNC_INFO << "Unknown message type:" << msgType;
@@
-452,10
+452,10
@@
UiStyle::StyledString UiStyle::styleString(const QString &s_, quint32 baseFormat
color &= 0x0f;
if(s[pos+3] == 'f') {
curfmt &= 0xf0ffffff;
color &= 0x0f;
if(s[pos+3] == 'f') {
curfmt &= 0xf0ffffff;
- curfmt |= (color << 24) | 0x00400000;
+ curfmt |= (
quint32)(
color << 24) | 0x00400000;
} else {
curfmt &= 0x0fffffff;
} else {
curfmt &= 0x0fffffff;
- curfmt |= (color << 28) | 0x00800000;
+ curfmt |= (
quint32)(
color << 28) | 0x00800000;
}
length = 6;
}
}
length = 6;
}
@@
-607,6
+607,9
@@
void UiStyle::StyledMessage::style() const {
//: Day Change Message
t = tr("{Day changed to %1}").arg(timestamp().toString());
break;
//: Day Change Message
t = tr("{Day changed to %1}").arg(timestamp().toString());
break;
+ case Message::Topic:
+ //: Topic Message
+ t = tr("%1").arg(txt); break;
default:
t = tr("[%1]").arg(txt);
}
default:
t = tr("[%1]").arg(txt);
}
@@
-671,6
+674,8
@@
QString UiStyle::StyledMessage::decoratedSender() const {
return tr("*"); break;
case Message::DayChange:
return tr("-"); break;
return tr("*"); break;
case Message::DayChange:
return tr("-"); break;
+ case Message::Topic:
+ return tr("*"); break;
default:
return tr("%1").arg(plainSender());
}
default:
return tr("%1").arg(plainSender());
}
@@
-684,9
+689,10
@@
quint8 UiStyle::StyledMessage::senderHash() const {
QString nick = nickFromMask(sender()).toLower();
if(!nick.isEmpty()) {
int chopCount = 0;
QString nick = nickFromMask(sender()).toLower();
if(!nick.isEmpty()) {
int chopCount = 0;
- while(nick.at(nick.count() - 1 - chopCount) == '_')
+ while(
chopCount < nick.size() &&
nick.at(nick.count() - 1 - chopCount) == '_')
chopCount++;
chopCount++;
- nick.chop(chopCount);
+ if(chopCount < nick.size())
+ nick.chop(chopCount);
}
quint16 hash = qChecksum(nick.toAscii().data(), nick.toAscii().size());
return (_senderHash = (hash & 0xf) + 1);
}
quint16 hash = qChecksum(nick.toAscii().data(), nick.toAscii().size());
return (_senderHash = (hash & 0xf) + 1);