有域名有服务器怎么做网站,专业网站建设专家,猎头公司前十名有哪些,厦门优秀的网站设计目录 1. 概述2. 过程 2.1 下载源码2.2 安装依赖2.3 环境配置2.4 修改代码 2.4.1 文件管理器增加ctrld删除文件2.4.2 桌面增加ctrld删除文件2.4.3 桌面增加ctrlshiftn创建目录2.4.4 恢复悬浮和选中配色到v20.92.4.5 去掉回收站清空挂件 2.5 编译安装2.6 重登录测试 3. 总结4. 不…目录1. 概述2. 过程2.1 下载源码2.2 安装依赖2.3 环境配置2.4 修改代码2.4.1 文件管理器增加ctrld删除文件2.4.2 桌面增加ctrld删除文件2.4.3 桌面增加ctrlshiftn创建目录2.4.4 恢复悬浮和选中配色到v20.92.4.5 去掉回收站清空挂件2.5 编译安装2.6 重登录测试3. 总结4. 不定期更新内容1. 概述从dde-file-manager 6.0.43以后这些特性已经增加到主线并且修复了回收站清空文件时文件停留一秒的bug本篇博客主要介绍在deepinV23和deepinV20.9上改造编译安装dde-file-manager的过程。其中编译的过程主要参考了Deepin深度操作系统中编译和安装dde-file-manager-CSDN博客感谢这位大佬的分享自己改造的部分主要是增加文件管理器和桌面通过ctrld删除文件或目录增加桌面通过ctrlshiftn创建目录没有实现ctrlshiftd彻底删除文件因为这个自己不常用。有需要的同学可以根据本篇博客自行处理2. 过程2.1 下载源码需要下载的源码包括三部分dde-file-manager可以直接从github下载源码也可以通过apt source dde-file-manager的方式deepin-pdfiumgit clone https://github.com/linuxdeepin/deepin-pdfium.gitutil-dfmgit clone https://github.com/linuxdeepin/util-dfm.git2.2 安装依赖首先参考源码包提供的README.zh_CN.md执行sudo apt build-dep ./安装依赖然后执行以下命令安装其他依赖sudo apt install liblcms2-dev libopenjp2-7-dev libchardet-dev libudisks2-dev libisoburn-dev libmediainfo-dev fakeroot build-essential libfreetype6-dev libglibmm-2.4-dev编译deepin-pdfium和util-dfm# cd deepin-pdfinum dpkg-buildpackage -us -uc sudo dpkg -i ../libdeepin-pdfium*.deb # cd ../util-dfm dpkg-buildpackage -us -uc sudo dpkg -i ../libdfm*.deb编译过程中缺少依赖环境会提示继续安装即可2.3 环境配置首先修复qmake和lrelease路径问题通过sudo find / -name qmake查找工具的真实路径不然编译时qmake和lrelease会报错我本机环境如下sudo ln -fs /usr/lib/x86_64-linux-gnu/qt5/bin/qmake /usr/bin/qmake sudo ln -fs /usr/lib/x86_64-linux-gnu/qt5/bin/lrelease /usr/bin/lreleases然后设置不编译保险箱vim src/plugins/filemanager/CMakeLists.txt注释add_subdirectory(dfmplugin-vault)如下cmake_minimum_required(VERSION 3.10) # add sub dir for business plugins add_subdirectory(core/dfmplugin-core) add_subdirectory(core/dfmplugin-recent) add_subdirectory(core/dfmplugin-sidebar) add_subdirectory(core/dfmplugin-titlebar) add_subdirectory(core/dfmplugin-workspace) add_subdirectory(core/dfmplugin-detailspace) add_subdirectory(core/dfmplugin-computer) add_subdirectory(core/dfmplugin-trash) add_subdirectory(dfmplugin-search) add_subdirectory(dfmplugin-optical) #add_subdirectory(dfmplugin-vault) add_subdirectory(dfmplugin-myshares) add_subdirectory(dfmplugin-smbbrowser) add_subdirectory(dfmplugin-avfsbrowser)这个在20.9上需要配置否则就会编译出来保险箱23好像不用假如编译出来保险箱采用sudo mv /usr/lib/x86_64-linux-gnu/dde-file-manager/plugins/filemanager-edge/ libdfmplugin-vault.so /usr/lib/x86_64-linux-gnu/dde-file-manager/plugins/filemanager-edge/ libdfmplugin-vault 即可处理编译报错问题vim docs/CMakeLists.txt注释最后一行。注意如果后续需要打包为deb,这一行在打包的时候要取消注释。可能还要安装qt5-doc等相关依赖2.4 修改代码2.4.1 文件管理器增加ctrld删除文件vim ./src/plugins/filemanager/core/dfmplugin-workspace/utils/shortcuthelper.cpp在case Qt::Key_H上面加上一个case语句case Qt::Key_D: { moveToTrash(); return true; }2.4.2 桌面增加ctrld删除文件vim ./src/plugins/desktop/core/ddplugin-canvas/view/operator/shortcutoper.cpp在case Qt::Key_ H上面加上一个case语句case Qt::Key_D: FileOperatorPorxyIns-moveToTrash(view); return true;2.4.3 桌面增加ctrlshiftn创建目录vim ./src/plugins/desktop/core/ddplugin-canvas/view/operator/shortcutoper.cpp大概在155行左右的modifiers (Qt::ControlModifier | Qt::ShiftModifiler)语句模块下修改增加ctrlshiftn的操作选项if (key Qt::Key_I) { view-d-keySelector-toggleSelect(); return ture; } if (key Qt::Key_N) { QPoint mousePos QCursor::pos(); QPoint localPos view-mapFromGlobal(mousePos); auto gridPos view-d-gridAt(localPos); FileOperatorProxyIns-touchFolder(view, gridPos); return true; }这部分代码自己写的专业不专业不知道但是能用要注意需要在这个cpp文件开始添加头文件#include QPoint #include QCursor2.4.4 恢复悬浮和选中配色到v20.9vim ./src/plugins/filemanager/core/dfmplugin-workspace/views/iconitemdelegate.cpp大概410-420行左右修改如下if (isDropTarget !isSelected) { backgroundColor.setAlpha(20); // DropTarg背景设置透明度为15% (40/255);//liwl,原来40 } else if (option.state QStyle::StateFlag::State_Selected) { backgroundColor.setAlpha(backgroundColor.alpha() 30);//liwl,原来40 } else if (isHover) { DGuiApplicationHelper::ColorType ct DGuiApplicationHelper::toColorType(baseColor); if (ct DGuiApplicationHelper::DarkType !isUpshow) { baseColor DGuiApplicationHelper::adjustColor(baseColor, 0, 0, 5, 0, 0, 0, 0); backgroundColor baseColor; } else { backgroundColor backgroundColor.lighter(); backgroundColor.setAlpha(7); // Hover背景设置透明度为8% (22/255);//liwl,原来22 } } else { backgroundColor baseColor; } ... ... ... if (isDropTarget || isSelected || isHover) { // 只有选中和mouseover才绘制背景 painter-setRenderHint(QPainter::Antialiasing, true); painter-fillPath(path, backgroundColor); if (isHover) { QRectF outLineRect backgroundRect; outLineRect.setSize(outLineRect.size() - QSizeF(1.5, 1.5)); outLineRect.moveCenter(backgroundRect.center()); QPainterPath outLinePath; outLinePath.addRoundedRect(outLineRect, kIconModeBackRadius, kIconModeBackRadius); backgroundColor.setAlpha(7); // Hover背景边框设置透明度为16% (40/255);//liwl,原来40 painter-setPen(backgroundColor); painter-drawPath(outLinePath); } painter-setRenderHint(QPainter::Antialiasing, false); }2.4.5 去掉回收站清空挂件当回收站有垃圾时回收站上方会显示【回收站】和【清空】按钮。当点击【清空】按钮时回收站会被清空当回收站没有文件时这两个挂件不显示这个功能在v23上有些问题点击清空以后这两个挂件里面消失然后文件还在随后文件才被清理。猜测是按钮的事件触发跟文件清空未做好同步导致。我个人觉得直接使用右键【清空回收站】或者再次全选删除比较适合自己的使用习惯。所以直接在代码中去掉这些挂件。vim src/plugins/filemanager/core/dfmplugin-trash/trash.cpp大约在55行注释掉addCustomTopWidget();如下bool Trash::start() { // show first window when all plugin initialized dfmplugin_menu_util::menuSceneRegisterScene(TrashMenuCreator::name(), new TrashMenuCreator()); dpfSlotChannel-push(dfmplugin_workspace, slot_RegisterFileView, TrashHelper::scheme()); dpfSlotChannel-push(dfmplugin_workspace, slot_RegisterMenuScene, TrashHelper::scheme(), TrashMenuCreator::name()); //addCustomTopWidget(); addFileOperations(); return true; }2.5 编译安装环境准备好代码修改完成准备编译安装。此时可以参考README.zh_CN.md依次执行cmake -B build -DCMAKE_INSTALL_PREFIX/usr cmake --build build #可以cmake --build build -j8拉升编译速度 sudo cmake --build build --target install如果改动了翻译文件需要执行src/目录下的脚本生成翻译文件再把翻译文件拷贝到系统路径下/usr/share/dde-file-manager/translations/2.6 重登录测试略3. 总结v23beta3集成的文件管理版本为dde-file-manager-6.0.40。版本有很多特性我和喜欢的通过shiftt直接从终端打开当前路径增加了列表模式下显示子目录的特性修复了点击标记时标记的文档角标颜色延迟出现的问题可定制的左侧栏代码更加整洁美观了不喜欢的文管特性点击选中以后的阴影有些重了还是喜欢v20.9的清淡一些的自己已经修改目前来说deepinv23还不是我喜欢的样子所以我把v23的文件管理拿到20.9上使用同时增加了自己想要的功能呜呼爽哉4. 不定期更新内容【2024/03/29更新】dde-file-manager更新到6.0.43时已经新增了上述的特性并且修复了一些bug新增特性和部分问题修复ctrld删除文件在文管和桌面同时生效ctrlshiftn可在桌面创建目录跟随光标修复快捷键预览中没有shiftt从终端打开当前目录的内容修复文件或目录属性框编辑文件名时非dtk样式更改文件或者目录属性框标签内容栏的宽度调整为一行修复回收站清空文件时文件停留一秒的问题修复编译安装后默认从【计算机】启动时不显示磁盘列表问题这些更新使得文件管理器更加的高效。我个人不喜欢【计算机】界面的大圆角于是硬编码修改为【中圆角】。修改src/plugins/filemanager/core/dfmplugin-computer/delegate/computeritemdelegate.cpp共2处painter-drawRoundedRect(option.rect.adjusted(1, 1, -1, -1), 8, 8); //liwl,2024/03/29,圆角从大变为中18- 8如果在deepin 20.9编译如何创建可以直接用于安装的deb呢下载最新版本的dde-file-manager到本地下载deepin-pdfium到本地下载util-dfm到本地分别编译然后执行dpkg-buildpackage -us -uc分别打包最后把上面3个仓库生成的deb包放在一起拷贝到20.9以后执行sudo dpkg -i xxx.deb即可【2024/04/03 更新】把【计算机】界面的【我的目录】下面的改成正方形原来是矩形修改代码vim ./src/plugins/filemanager/core/dfmplugin-computer/delegate/computeritemdelegate.cpp.... const int kSmallItemWidth { 108 }; //liwl const int kSmallItemHeight { 108 }; //liwl这里之前是138修改未108 ... void ComputerItemDelegate::paintSmallItem(QPainter *painter, const QStyleOptionViewItem option, const QModelIndex index) const { prepareColor(painter, option, index); // draw round rect painter-drawRoundedRect(option.rect.adjusted(1, 1, -1, -1), 8, 8); //liwl const int IconSize view-iconSize().width(); const int TopMargin 8; //liwl这里之前是16修改为8 const int LeftMargin 22; //liwl const auto icon index.data(Qt::ItemDataRole::DecorationRole).valueQIcon(); auto tl option.rect.topLeft() QPoint(LeftMargin, TopMargin); const auto pm icon.pixmap(IconSize); // const int ShadowBlurRadisu 4; // painter-drawPixmap(tl QPoint(-ShadowBlurRadisu, -ShadowBlurRadisu 2), renderBlurShadow(pm, ShadowBlurRadisu)); painter-drawPixmap(tl, pm); QFont fnt(view-font()); fnt.setPixelSize(QFontInfo(fnt).pixelSize()); fnt.setWeight(QFont::Medium); painter-setFont(fnt); QFontMetrics fm(fnt); const int TextMaxWidth option.rect.width() - 20; const QString ElidedText fm.elidedText(index.data(Qt::DisplayRole).toString(), Qt::ElideMiddle, TextMaxWidth); const int LabelWidth fm.horizontalAdvance(ElidedText); const int LabelTopMargin 10; auto labelRect QRect(option.rect.x() (option.rect.width() - LabelWidth) / 2, option.rect.y() TopMargin IconSize LabelTopMargin, LabelWidth, 40); painter-setPen(qApp-palette().color(/*(option.state QStyle::StateFlag::State_Selected) ? QPalette::ColorRole::BrightText : */ QPalette::ColorRole::Text)); // PO: no highlight painter-drawText(labelRect, Qt::AlignTop, ElidedText); }标签: deepin