void Theme::decorateBrowser(QAbstractScrollArea *c) const { decorateScrollArea(c); const QColor bg = color("bg"); QColor unfocusedSelectedBg = color("sel_bg"); unfocusedSelectedBg.setRgb( (bg.red() + unfocusedSelectedBg.red()) / 2, (bg.green() + unfocusedSelectedBg.green()) / 2, (bg.blue() + unfocusedSelectedBg.blue()) / 2 ); Theme unfocusedTheme; for (auto it = m_theme.constBegin(); it != m_theme.constEnd(); ++it) unfocusedTheme.m_theme[it.key()] = Option(it.value().value()); unfocusedTheme.m_theme["sel_bg"].setValue( serializeColor(unfocusedSelectedBg) ); // colors and font c->setStyleSheet( "#ClipboardBrowser,#item,#item_child{" + getFontStyleSheet( value("font").toString() ) + "color:" + themeColorString("fg") + ";" "background:" + themeColorString("bg") + ";" "}" "#ClipboardBrowser::item:alternate{" "color:" + themeColorString("alt_fg") + ";" "background:" + themeColorString("alt_bg") + ";" "}" "#ClipboardBrowser::item:selected,#item[CopyQ_selected=\"true\"],#item[CopyQ_selected=\"true\"] #item_child{" "color:" + themeColorString("sel_fg") + ";" "background:" + themeColorString("sel_bg") + ";" "}" "#item #item_child{background:transparent}" "#item[CopyQ_selected=\"true\"] #item_child{background:transparent}" // Desaturate selected item background if item list is not focused. "#ClipboardBrowser::item:selected:!active{" "background:" + serializeColor( evalColor("sel_bg", unfocusedTheme) ) + ";" + unfocusedTheme.themeStyleSheet("sel_item_css") + "}" // Omit showing current item outline. "#ClipboardBrowser::focus{outline:0}" "#ClipboardBrowser::item:focus{" + themeStyleSheet("cur_item_css") + "}" + getToolTipStyleSheet() + // Allow user to change CSS. "#ClipboardBrowser{" + themeStyleSheet("item_css") + "}" "#ClipboardBrowser::item:alternate{" + themeStyleSheet("alt_item_css") + "}" "#ClipboardBrowser::item:selected{" + themeStyleSheet("sel_item_css") + "}" "#item_child[CopyQ_item_type=\"notes\"] {" + getFontStyleSheet( value("notes_font").toString() ) + "}" ); }