void LogDelegate::paint (QPainter * painter, QStyleOptionViewItem const & option, QModelIndex const & index) const { painter->save(); QStyleOptionViewItemV4 option4 = option; initStyleOption(&option4, index); std::vector<QString> const & column_aligns = m_log_widget.config().m_columns_align; if (index.column() < column_aligns.size()) { E_Align const align = stringToAlign(column_aligns[index.column()].at(0).toLatin1()); option4.displayAlignment = static_cast<Qt::Alignment>(1 << align); } std::vector<QString> const & column_elides = m_log_widget.config().m_columns_elide; if (index.column() < column_elides.size()) { E_Elide const elide = stringToElide(column_elides[index.column()].at(0).toLatin1()); option4.textElideMode = static_cast<Qt::TextElideMode>(elide); } int const tag = m_log_widget.column2Tag(index.column()); if (tag < tlv::tag_max_value) { switch (tag) { case tlv::tag_file: paintTokenized(painter, option4, index, QString("[:/\\\\]"), "/", m_log_widget.config().m_cut_path_level); break; case tlv::tag_func: paintTokenized(painter, option4, index, QString("[::]"), "::", m_log_widget.config().m_cut_namespaces); break; case tlv::tag_ctx: if (m_app_data.getDictCtx().m_names.size()) paintContext(painter, option4, index); else QStyledItemDelegate::paint(painter, option4, index); // no dictionnary break; case tlv::tag_ctime: case tlv::tag_stime: paintTime(painter, option4, index); break; default: QStyledItemDelegate::paint(painter, option4, index); break; } } else { // user tags QStyledItemDelegate::paint(painter, option4, index); } painter->restore(); }
void LogCtxMenu::onClickedAtSettingColumnAlign (QModelIndex const idx) { syncSettingsViews(m_ui->listViewColumnAlign, idx); QString const txt = m_ui->listViewColumnAlign->model()->data(idx).toString(); E_Align act = e_AlignLeft; if (txt.isEmpty()) { } else { E_Align const curr = stringToAlign(txt.toStdString().c_str()[0]); size_t i = (curr + 1) % e_max_align_enum_value; act = static_cast<E_Align>(i); } m_ui->listViewColumnAlign->model()->setData(idx, QString(alignToString(act))); }
extern bool ini_conf_load(const char *inifilename, p_conf conf) { dictionary *dict; char buf[80]; int i; extern void get_language(void); if (conf == NULL || inifilename == NULL) { return false; } dict = iniparser_load(inifilename); if (dict == NULL) return false; conf_default(conf); STRCPY_S(conf->path, iniparser_getstring(dict, "Global:path", conf->path)); conf->forecolor = iniparser_getunsigned(dict, "UI:forecolor", conf->forecolor); conf->giftranscolor = iniparser_getunsigned(dict, "Image:giftranscolor", conf->giftranscolor); conf->bgcolor = iniparser_getunsigned(dict, "UI:bgcolor", conf->bgcolor); conf->have_bg = iniparser_getboolean(dict, "UI:have_bg", conf->have_bg); conf->titlecolor = iniparser_getunsigned(dict, "UI:titlecolor", conf->titlecolor); conf->menutextcolor = iniparser_getunsigned(dict, "UI:menutextcolor", conf->menutextcolor); conf->menubcolor = iniparser_getunsigned(dict, "UI:menubcolor", conf->menubcolor); conf->selicolor = iniparser_getunsigned(dict, "UI:selicolor", conf->selicolor); conf->selbcolor = iniparser_getunsigned(dict, "UI:selbcolor", conf->selbcolor); conf->msgbcolor = iniparser_getunsigned(dict, "UI:msgbcolor", conf->msgbcolor); conf->usedyncolor = iniparser_getboolean(dict, "UI:usedyncolor", conf->usedyncolor); conf->rowspace = iniparser_getint(dict, "Text:rowspace", conf->rowspace); conf->infobar = stringToInfobar(iniparser_getstring (dict, "Text:infobar", infobarToString(buf, sizeof(buf), conf->infobar))); conf->infobar_style = iniparser_getint(dict, "Text:infobar_style", conf->infobar_style); conf->infobar_fontsize = iniparser_getunsigned(dict, "Text:infobar_fontsize", conf->infobar_fontsize); conf->rlastrow = iniparser_getboolean(dict, "Text:rlastrow", conf->rlastrow); conf->autobm = iniparser_getboolean(dict, "Text:autobm", conf->autobm); conf->vertread = stringToVertread(iniparser_getstring (dict, "Text:vertread", vertreadToString(buf, sizeof(buf), conf->vertread))); conf->encode = stringToEncode(iniparser_getstring (dict, "Text:encode", encodeToString(buf, sizeof(buf), conf->encode))); conf->fit = stringToFit(iniparser_getstring (dict, "Image:fit", fitToString(buf, sizeof(buf), conf->fit))); conf->imginfobar = iniparser_getboolean(dict, "Image:imginfobar", conf->imginfobar); conf->scrollbar = iniparser_getboolean(dict, "Text:scrollbar", conf->scrollbar); conf->scale = iniparser_getint(dict, "Image:scale", conf->scale); conf->rotate = stringToRotate(iniparser_getstring (dict, "Image:rotate", rotateToString(buf, sizeof(buf), conf->rotate))); for (i = 0; i < 20; ++i) { char key[20]; SPRINTF_S(key, "Text:txtkey1_%02d", i); conf->txtkey[i] = iniparser_getint(dict, key, conf->txtkey[i]); SPRINTF_S(key, "Image:imgkey1_%02d", i); conf->imgkey[i] = iniparser_getint(dict, key, conf->imgkey[i]); } check_empty_imgkey(conf); STRCPY_S(conf->shortpath, iniparser_getstring(dict, "Global:shortpath", conf->shortpath)); conf->confver = iniparser_getint(dict, "Global:confver", conf->confver); conf->bicubic = iniparser_getboolean(dict, "Image:bicubic", conf->bicubic); conf->wordspace = iniparser_getint(dict, "Text:wordspace", conf->wordspace); conf->borderspace = iniparser_getunsigned(dict, "Text:borderspace", conf->borderspace); STRCPY_S(conf->lastfile, iniparser_getstring(dict, "Global:lastfile", conf->lastfile)); conf->mp3encode = stringToEncode(iniparser_getstring (dict, "Music:mp3encode", encodeToString(buf, sizeof(buf), conf->mp3encode))); conf->lyricencode = stringToEncode(iniparser_getstring (dict, "Music:lyricencode", encodeToString(buf, sizeof(buf), conf->lyricencode))); conf->mp3cycle = stringToCycle(iniparser_getstring (dict, "Music:mp3cycle", cycleToString(buf, sizeof(buf), conf->mp3cycle))); conf->isreading = iniparser_getboolean(dict, "Global:isreading", conf->isreading); STRCPY_S(conf->bgarch, iniparser_getstring(dict, "UI:bgarch", conf->bgarch)); STRCPY_S(conf->bgfile, iniparser_getstring(dict, "UI:bgfile", conf->bgfile)); conf->bgwhere = iniparser_getint(dict, "UI:bgwhere", conf->bgwhere); conf->slideinterval = iniparser_getint(dict, "Image:slideinterval", conf->slideinterval); conf->hprmctrl = iniparser_getboolean(dict, "Music:hprmctrl", conf->hprmctrl); conf->grayscale = iniparser_getint(dict, "UI:grayscale", conf->grayscale); conf->showhidden = iniparser_getboolean(dict, "Global:showhidden", conf->showhidden); conf->showunknown = iniparser_getboolean(dict, "Global:showunknown", conf->showunknown); conf->showfinfo = iniparser_getboolean(dict, "Global:showfinfo", conf->showfinfo); conf->allowdelete = iniparser_getboolean(dict, "Global:allowdelete", conf->allowdelete); conf->arrange = stringToArrange(iniparser_getstring (dict, "Global:arrange", arrangeToString(buf, sizeof(buf), conf->arrange))); conf->enableusb = iniparser_getboolean(dict, "Global:enableusb", conf->enableusb); conf->viewpos = stringToViewpos(iniparser_getstring (dict, "Image:viewpos", viewposToString(buf, sizeof(buf), conf->viewpos))); conf->imgmvspd = iniparser_getint(dict, "Image:imgmvspd", conf->imgmvspd); conf->imgpaging = stringToImgpaging(iniparser_getstring (dict, "Image:imgpaging", imgpagingToString(buf, sizeof(buf), conf->imgpaging))); conf->imgpaging_spd = iniparser_getint(dict, "Image:imgpaging_spd", conf->imgpaging_spd); conf->imgpaging_interval = iniparser_getint(dict, "Image:imgpaging_interval", conf->imgpaging_interval); conf->imgpaging_duration = iniparser_getint(dict, "Image:imgpaging_duration", conf->imgpaging_duration); for (i = 0; i < 20; ++i) { char key[20]; SPRINTF_S(key, "Global:flkey1_%02d", i); conf->flkey[i] = iniparser_getint(dict, key, conf->flkey[i]); } conf->fontsize = iniparser_getint(dict, "UI:fontsize", conf->fontsize); conf->reordertxt = iniparser_getboolean(dict, "Text:reordertxt", conf->reordertxt); conf->pagetonext = iniparser_getboolean(dict, "Text:pagetonext", conf->pagetonext); conf->autopage = iniparser_getint(dict, "Text:autopage", conf->autopage); conf->prev_autopage = iniparser_getint(dict, "Text:prev_autopage", conf->prev_autopage); conf->autopagetype = iniparser_getint(dict, "Text:autopagetype", conf->autopagetype); conf->autolinedelay = iniparser_getint(dict, "Text:autolinedelay", conf->autolinedelay); conf->thumb = stringToThumb(iniparser_getstring (dict, "Image:thumb", thumbToString(buf, sizeof(buf), conf->thumb))); conf->bookfontsize = iniparser_getint(dict, "Text:bookfontsize", conf->bookfontsize); conf->enable_analog = iniparser_getboolean(dict, "Text:enable_analog", conf->enable_analog); conf->img_enable_analog = iniparser_getboolean(dict, "Image:img_enable_analog", conf->img_enable_analog); for (i = 0; i < 20; ++i) { char key[20]; SPRINTF_S(key, "Text:txtkey2_%02d", i); conf->txtkey2[i] = iniparser_getint(dict, key, conf->txtkey2[i]); SPRINTF_S(key, "Image:imgkey2_%02d", i); conf->imgkey2[i] = iniparser_getint(dict, key, conf->imgkey2[i]); SPRINTF_S(key, "Global:flkey2_%02d", i); conf->flkey2[i] = iniparser_getint(dict, key, conf->flkey2[i]); } conf->imgpagereserve = iniparser_getint(dict, "Image:imgpagereserve", conf->imgpagereserve); conf->lyricex = iniparser_getint(dict, "Music:lyricex", conf->lyricex); conf->autoplay = iniparser_getboolean(dict, "Music:autoplay", conf->autoplay); conf->usettf = iniparser_getboolean(dict, "Text:usettf", conf->usettf); STRCPY_S(conf->cttfarch, iniparser_getstring(dict, "Text:cttfarch", conf->cttfarch)); STRCPY_S(conf->cttfpath, iniparser_getstring(dict, "Text:cttfpath", conf->cttfpath)); STRCPY_S(conf->ettfarch, iniparser_getstring(dict, "Text:ettfarch", conf->ettfarch)); STRCPY_S(conf->ettfpath, iniparser_getstring(dict, "Text:ettfpath", conf->ettfpath)); for (i = 0; i < 3; ++i) { char key[20]; SPRINTF_S(key, "Global:freqs_%d", i); conf->freqs[i] = iniparser_getint(dict, key, conf->freqs[i]); } conf->imgbrightness = iniparser_getint(dict, "Image:imgbrightness", conf->imgbrightness); conf->dis_scrsave = iniparser_getboolean(dict, "Global:dis_scrsave", conf->dis_scrsave); conf->autosleep = iniparser_getint(dict, "Global:autosleep", conf->autosleep); conf->load_exif = iniparser_getboolean(dict, "Image:load_exif", conf->load_exif); conf->launchtype = iniparser_getint(dict, "Global:launchtype", conf->launchtype); conf->infobar_use_ttf_mode = iniparser_getboolean(dict, "Text:infobar_use_ttf_mode", conf->infobar_use_ttf_mode); conf->img_no_repeat = iniparser_getboolean(dict, "Image:no_repeat", conf->img_no_repeat); conf->hide_flash = iniparser_getboolean(dict, "Global:hide_flash", conf->hide_flash); conf->tabstop = iniparser_getunsigned(dict, "Text:tabstop", conf->tabstop); conf->apetagorder = iniparser_getboolean(dict, "Music:apetagorder", conf->apetagorder); STRCPY_S(conf->language, iniparser_getstring(dict, "UI:language", conf->language)); get_language(); conf->filelistwidth = iniparser_getint(dict, "UI:filelistwidth", conf->filelistwidth); if (conf->filelistwidth < 0 || conf->filelistwidth > 240) conf->filelistwidth = 160; conf->ttf_load_to_memory = iniparser_getboolean(dict, "Text:ttf_load_to_memory", conf->ttf_load_to_memory); conf->save_password = iniparser_getboolean(dict, "Global:save_password", conf->save_password); conf->scrollbar_width = iniparser_getint(dict, "Text:scrollbar_width", conf->scrollbar_width); conf->hide_last_row = iniparser_getboolean(dict, "Text:hide_last_row", conf->hide_last_row); conf->infobar_show_timer = iniparser_getboolean(dict, "Text:infobar_show_timer", conf->infobar_show_timer); conf->englishtruncate = iniparser_getboolean(dict, "Text:englishtruncate", conf->englishtruncate); conf->image_scroll_chgn_speed = iniparser_getboolean(dict, "Image:image_scroll_chgn_speed", conf->image_scroll_chgn_speed); conf->ttf_haste_up = iniparser_getboolean(dict, "Text:ttf_haste_up", conf->ttf_haste_up); conf->linenum_style = iniparser_getboolean(dict, "Text:linenum_style", conf->linenum_style); conf->infobar_align = stringToAlign(iniparser_getstring(dict, "Text:infobar_align", "")); STRCPY_S(conf->musicdrv_opts, iniparser_getstring(dict, "Music:musicdrv_opts", conf->musicdrv_opts)); conf->magnetic_scrolling = iniparser_getboolean(dict, "Image:magnetic_scrolling", conf->magnetic_scrolling); conf->use_image_queue = iniparser_getboolean(dict, "Image:use_image_queue", conf->use_image_queue); conf->max_cache_img = iniparser_getunsigned(dict, "Image:max_cache_img", conf->max_cache_img); conf->show_encoder_msg = iniparser_getboolean(dict, "Music:show_encoder_msg", conf->show_encoder_msg); if (conf->max_cache_img == 0) { conf->use_image_queue = false; } dictionary_del(dict); return true; }
void LogDelegate::paint (QPainter * painter, QStyleOptionViewItem const & option, QModelIndex const & index) const { painter->save(); QStyleOptionViewItemV4 option4 = option; initStyleOption(&option4, index); // TODO: nonexistent item !!!!!!!!!!!!!!!!! QVector<QString> const & column_aligns = m_log_widget.getConfig().m_columns_align; E_Align const align = stringToAlign(column_aligns[index.column()].at(0).toLatin1()); option4.displayAlignment = static_cast<Qt::Alignment>(1 << align); QVector<QString> const & column_elides = m_log_widget.getConfig().m_columns_elide; E_Elide const elide = stringToElide(column_elides[index.column()].at(0).toLatin1()); option4.textElideMode = static_cast<Qt::TextElideMode>(elide); /* { // color tagged line? int row = index.row(); if (m_log_widget.isModelProxy()) if (FilterProxyModel const * proxy = m_log_widget.logProxy()) { QModelIndex const curr = proxy->mapToSource(index); row = curr.row(); } if (m_log_widget.findColorTagRow(row)) { painter->fillRect(option.rect, QColor(202, 225, 255)); } }*/ LogWidget & lw = const_cast<LogWidget &>(m_log_widget); // hm if (m_log_widget.getConfig().m_cut_path && index.column() == lw.findColumn4Tag(tlv::tag_file)) { int level = m_log_widget.getConfig().m_cut_path_level; paintTokenized(painter, option4, index, QString("[:/\\\\]"), "/", level); } else if (m_log_widget.getConfig().m_cut_namespaces && index.column() == lw.findColumn4Tag(tlv::tag_func)) { int level = m_log_widget.getConfig().m_cut_namespaces; paintTokenized(painter, option4, index, QString("[::]"), "::", level); } else if (m_app_data.getDictCtx().m_names.size() && index.column() == lw.findColumn4Tag(tlv::tag_ctx)) { paintContext(painter, option4, index); } else if (index.column() == lw.findColumn4Tag(tlv::tag_ctime)) { paintTime(painter, option4, index); } else if (index.column() == lw.findColumn4Tag(tlv::tag_stime)) { paintTime(painter, option4, index); } else { QStyledItemDelegate::paint(painter, option4, index); } painter->restore(); }