开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (1)
master
master
分支 (1)
master
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (1)
master
dblistmodel.cpp 4.79 KB
一键复制 编辑 原始数据 按行查看 历史
shengzhe8688 提交于 2020年01月18日 12:15 +08:00 . 首次上传
#include "dblistmodel.h"
#include "services/dbmanager.h"
#include "dbtree/dbtree.h"
#include "dbtree/dbtreemodel.h"
#include "uiconfig.h"
#include <QComboBox>
DbListModel::DbListModel(QObject *parent) :
QAbstractListModel(parent)
{
unsortedList = DBLIST->getConnectedDbList();
connect(DBLIST, SIGNAL(dbConnected(Db*)), this, SLOT(dbConnected(Db*)));
connect(DBLIST, SIGNAL(dbDisconnected(Db*)), this, SLOT(dbDisconnected(Db*)));
setSortMode(CFG_UI.General.SqlEditorDbListOrder.get());
}
DbListModel::~DbListModel()
{
}
QVariant DbListModel::data(const QModelIndex &index, int role) const
{
if (index.row() < 0 || index.row() >= dbList.size())
return QVariant();
if (role == Qt::DisplayRole || role == Qt::EditRole)
return dbList[index.row()]->getName();
return QVariant();
}
int DbListModel::rowCount(const QModelIndex &parent) const
{
if (parent.isValid())
return 0;
return dbList.count();
}
QModelIndex DbListModel::sibling(int row, int column, const QModelIndex &idx) const
{
if (!idx.isValid() || column != 0 || row >= dbList.count())
return QModelIndex();
return createIndex(row, 0);
}
Db* DbListModel::getDb(int index)
{
if (index < 0 || index >= dbList.size())
return nullptr;
return dbList[index];
}
int DbListModel::getIndexForDb(Db* db)
{
return dbList.indexOf(db);
}
void DbListModel::setSortMode(DbListModel::SortMode sortMode)
{
this->sortMode = sortMode;
sort();
}
DbListModel::SortMode DbListModel::getSortMode() const
{
return sortMode;
}
void DbListModel::setSortMode(const QString& sortMode)
{
if (sortMode == "LikeDbTree")
this->sortMode = SortMode::LikeDbTree;
else if (sortMode == "Alphabetical")
this->sortMode = SortMode::Alphabetical;
else if (sortMode == "AlphabeticalCaseInsensitive")
this->sortMode = SortMode::AlphabeticalCaseInsensitive;
else
this->sortMode = SortMode::ConnectionOrder;
sort();
}
QString DbListModel::getSortModeString() const
{
switch (sortMode)
{
case DbListModel::SortMode::LikeDbTree:
return "LikeDbTree";
case DbListModel::SortMode::Alphabetical:
return "Alphabetical";
case DbListModel::SortMode::AlphabeticalCaseInsensitive:
return "AlphabeticalCaseInsensitive";
case DbListModel::SortMode::ConnectionOrder:
break;
}
return "ConnectionOrder";
}
void DbListModel::setCombo(QComboBox* combo)
{
comboBox = combo;
}
void DbListModel::sort()
{
dbList = unsortedList;
switch (sortMode)
{
case DbListModel::SortMode::LikeDbTree:
{
DbTreeComparer comparer;
qSort(dbList.begin(), dbList.end(), comparer);
break;
}
case DbListModel::SortMode::Alphabetical:
{
AlphaComparer comparer;
qSort(dbList.begin(), dbList.end(), comparer);
break;
}
case DbListModel::SortMode::AlphabeticalCaseInsensitive:
{
AlphaComparer comparer(Qt::CaseInsensitive);
qSort(dbList.begin(), dbList.end(), comparer);
break;
}
case DbListModel::SortMode::ConnectionOrder:
break;
}
}
void DbListModel::dbConnected(Db* db)
{
QString current;
if (comboBox)
current = comboBox->currentText();
beginResetModel();
unsortedList += db;
sort();
endResetModel();
if (!current.isNull())
comboBox->setCurrentText(current);
else
comboBox->setCurrentText(dbList.first()->getName());
}
void DbListModel::dbDisconnected(Db* db)
{
QString current;
int newIdx = -1;
if (comboBox)
{
if (db->getName() == comboBox->currentText())
newIdx = 0;
else
current = comboBox->currentText();
}
beginResetModel();
dbList.removeAll(db);
unsortedList.removeAll(db);
endResetModel();
if (!current.isNull())
comboBox->setCurrentText(current);
else if (newIdx > -1)
comboBox->setCurrentIndex(newIdx);
}
DbListModel::DbTreeComparer::DbTreeComparer()
{
// TODO when sorting or D&D databases in the tree, this should be updated
QList<DbTreeItem*> allItems = DBTREE->getModel()->getAllItemsAsFlatList();
dbTreeOrder.clear();
for (DbTreeItem* item : allItems)
{
if (item->getType() != DbTreeItem::Type::DB)
continue;
dbTreeOrder << item->text();
}
}
bool DbListModel::DbTreeComparer::operator()(Db* db1, Db* db2)
{
return dbTreeOrder.indexOf(db1->getName()) < dbTreeOrder.indexOf(db2->getName());
}
DbListModel::AlphaComparer::AlphaComparer(Qt::CaseSensitivity cs) :
cs(cs)
{
}
bool DbListModel::AlphaComparer::operator()(Db* db1, Db* db2)
{
return db1->getName().compare(db2->getName(), cs) < 0;
}
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

sqliteStudio这是一个开源工具https://github.com/pawelsalawa/sqlitestudio
暂无标签
AFL-3.0
使用 AFL-3.0 开源许可协议
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/fctx8688/sqliteStudio.git
git@gitee.com:fctx8688/sqliteStudio.git
fctx8688
sqliteStudio
sqliteStudio
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /