Skip to content

Commit 08263b6

Browse files
author
Alexander Bychuk
committed
fix : behaviors of dependency-tree on linux and macos are the same
fix : find and reset usage
1 parent 74a3b27 commit 08263b6

File tree

8 files changed

+79
-40
lines changed

8 files changed

+79
-40
lines changed

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ set(CMAKE_CXX_STANDARD 11)
1414
set(CMAKE_CXX_STANDARD_REQUIRED ON)
1515

1616
find_package(Qt5 COMPONENTS Widgets REQUIRED)
17+
set(Qt_PREFIX Qt5)
1718

1819
if (APPLE)
1920
set(APP_ICNS "${CMAKE_SOURCE_DIR}/resources/icon.icns")

finfdialog.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
FinfDialog::FinfDialog(QWidget *parent) : QDialog(parent), ui(new Ui::FinfDialog) {
66
ui->setupUi(this);
7+
setWindowTitle("Filter export table");
78
shortcutClose = new QShortcut(QKeySequence(Qt::Key_Escape), this);
89
connect(shortcutClose, SIGNAL(activated()), this, SLOT(close()));
910

main.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ int main(int argc, char *argv[]) {
77
QApplication app(argc, argv);
88

99
QApplication::setApplicationName("Qldd");
10-
QApplication::setApplicationVersion("1.0");
10+
QApplication::setApplicationVersion("1.0.0");
1111

1212
QCommandLineParser parser;
1313
parser.setApplicationDescription("Qldd gui over ldd utility");

mainwindow.cpp

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,17 @@ MainWindow::MainWindow(const QString &fileName, QWidget *parent)
3636

3737
shortcutFind = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_F), this);
3838
connect(shortcutFind, SIGNAL(activated()), this, SLOT(find()));
39+
ui->filterButton->setIcon(ui->filterButton->style()->standardIcon(QStyle::SP_FileDialogListView));
40+
ui->resetButton->setIcon(ui->resetButton->style()->standardIcon(QStyle::SP_DialogCancelButton));
3941

4042
createActions();
4143
createMenus();
4244

4345
if (!fileName.isEmpty()) {
4446
reset(fileName);
47+
} else {
48+
QTreeWidgetItem *header = ui->treeWidget->headerItem();
49+
header->setText(0, "Dependency");
4550
}
4651
ui->tabWidget->setCurrentIndex(0);
4752
}
@@ -52,7 +57,11 @@ MainWindow::~MainWindow() {
5257
delete helpMenu;
5358
}
5459

55-
void MainWindow::fillExportTable(const QString &filter) { qldd->fillExportTable(*ui->listWidgetExportTable, filter); }
60+
void MainWindow::fillExportTable(const QString &filter) {
61+
if (qldd) {
62+
qldd->fillExportTable(*ui->listWidgetExportTable, filter);
63+
}
64+
}
5665

5766
void MainWindow::reset(const QString &fileName) {
5867
qldd.reset(new QLdd(fileName, qApp->applicationDirPath()));
@@ -164,3 +173,7 @@ void MainWindow::on_checkBoxOtherRead_clicked(bool checked) { ui->checkBoxOtherR
164173
void MainWindow::on_checkBoxOtherWrite_clicked(bool checked) { ui->checkBoxOtherWrite->setChecked(!checked); }
165174

166175
void MainWindow::on_checkBoxOtherExec_clicked(bool checked) { ui->checkBoxOtherExec->setChecked(!checked); }
176+
177+
void MainWindow::on_filterButton_clicked() { find(); }
178+
179+
void MainWindow::on_resetButton_clicked() { myClose(); }

mainwindow.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@ class MainWindow : public QMainWindow {
4141

4242
void on_checkBoxOtherExec_clicked(bool checked);
4343

44+
void on_filterButton_clicked();
45+
46+
void on_resetButton_clicked();
47+
4448
private:
4549
void createActions();
4650
void createMenus();

mainwindow.ui

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -556,13 +556,40 @@
556556
<string>Export Table</string>
557557
</attribute>
558558
<layout class="QGridLayout" name="gridLayout_9">
559-
<item row="0" column="0">
559+
<item row="1" column="0" colspan="3">
560560
<widget class="QListWidget" name="listWidgetExportTable">
561561
<property name="sortingEnabled">
562562
<bool>false</bool>
563563
</property>
564564
</widget>
565565
</item>
566+
<item row="0" column="0">
567+
<widget class="QPushButton" name="filterButton">
568+
<property name="text">
569+
<string>Filter</string>
570+
</property>
571+
</widget>
572+
</item>
573+
<item row="0" column="2">
574+
<spacer name="horizontalSpacer_7">
575+
<property name="orientation">
576+
<enum>Qt::Horizontal</enum>
577+
</property>
578+
<property name="sizeHint" stdset="0">
579+
<size>
580+
<width>40</width>
581+
<height>20</height>
582+
</size>
583+
</property>
584+
</spacer>
585+
</item>
586+
<item row="0" column="1">
587+
<widget class="QPushButton" name="resetButton">
588+
<property name="text">
589+
<string>Reset</string>
590+
</property>
591+
</widget>
592+
</item>
566593
</layout>
567594
</widget>
568595
</widget>
@@ -575,7 +602,7 @@
575602
<x>0</x>
576603
<y>0</y>
577604
<width>725</width>
578-
<height>22</height>
605+
<height>21</height>
579606
</rect>
580607
</property>
581608
</widget>

qldd.cpp

Lines changed: 28 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -94,9 +94,7 @@ void QLdd::fillDependency(QTreeWidget &treeWidget) {
9494
QDir::setCurrent(getPathOfBinary());
9595
ss << CMD_LDD << " " << _fileName.toStdString();
9696

97-
bool flag = false;
98-
99-
execAndDoOnEveryLine(ss.str(), [&flag, &treeWidget](const QString &line) {
97+
execAndDoOnEveryLine(ss.str(), [this, &treeWidget](const QString &line) {
10098
QTreeWidgetItem *item = nullptr;
10199
QStringList sl;
102100
if (!line.contains("=>") && line.contains("(0x")) {
@@ -106,8 +104,8 @@ void QLdd::fillDependency(QTreeWidget &treeWidget) {
106104
sl = line.split(DEPEND_SPLITTER);
107105
}
108106
int i = 0;
109-
for (const QString &v : sl) {
110-
if (v.contains("(0x")) {
107+
for (const QString &v : qAsConst(sl)) {
108+
if (v.contains("(0x") || v.contains("(compatibility")) {
111109
QStringList slTmp = v.split("(");
112110
if (slTmp.size() > 1) {
113111
slTmp.removeLast();
@@ -123,35 +121,31 @@ void QLdd::fillDependency(QTreeWidget &treeWidget) {
123121
}
124122
i++;
125123
}
126-
item = new QTreeWidgetItem();
127-
#ifdef __APPLE__
128-
if (!flag) {
129-
flag = true;
130-
item->setTextColor(0, Qt::magenta);
131-
item->setText(0, sl.first());
132-
} else {
133-
item->setText(0, "# " + sl.first());
124+
if (sl.size() == 1) {
125+
QFileInfo qfinf(sl.first());
126+
sl.push_front(qfinf.fileName());
134127
}
135-
#else
136-
item->setText(0, sl.first());
137-
#endif
138-
item->setToolTip(0, sl.first());
139-
140-
treeWidget.addTopLevelItem(item);
141-
sl.removeFirst();
142-
QTreeWidgetItem *tmp = item;
143-
QColor redC("red");
144-
for (const QString &v : sl) {
145-
if (!v.trimmed().isEmpty()) {
146-
if (v.contains("not found")) {
147-
tmp->setTextColor(0, redC);
148-
tmp->setText(0, tmp->text(0) + " " + v);
149-
tmp->setToolTip(0, tmp->text(0));
150-
} else {
151-
auto *nitm = new QTreeWidgetItem(tmp);
152-
nitm->setText(0, v);
153-
nitm->setToolTip(0, v);
154-
tmp = nitm;
128+
if (sl.first() != _fileName) {
129+
item = new QTreeWidgetItem();
130+
item->setText(0, sl.first());
131+
item->setToolTip(0, sl.first());
132+
133+
treeWidget.addTopLevelItem(item);
134+
sl.removeFirst();
135+
QTreeWidgetItem *tmp = item;
136+
QColor redC("red");
137+
for (const QString &v : qAsConst(sl)) {
138+
if (!v.trimmed().isEmpty()) {
139+
if (v.contains("not found")) {
140+
tmp->setTextColor(0, redC);
141+
tmp->setText(0, tmp->text(0) + " " + v);
142+
tmp->setToolTip(0, tmp->text(0));
143+
} else {
144+
auto *nitm = new QTreeWidgetItem(tmp);
145+
nitm->setText(0, v);
146+
nitm->setToolTip(0, v);
147+
tmp = nitm;
148+
}
155149
}
156150
}
157151
}
@@ -202,7 +196,7 @@ QString QLdd::getInfo() {
202196
execAndDoOnEveryLine(ss.str(), [&buf](const QString &line) { buf.append(line); });
203197
QStringList slTmp = buf.split(",");
204198
buf.clear();
205-
for (const QString &v : slTmp) {
199+
for (const QString &v : qAsConst(slTmp)) {
206200
buf.append(v.trimmed()).append("\n");
207201
}
208202
return buf;

qldd.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ struct QMOD {
1414

1515
class QLdd {
1616
public:
17-
1817
QLdd(QString fileName, QString lddDirPath);
1918
virtual ~QLdd();
2019

@@ -23,7 +22,7 @@ class QLdd {
2322

2423
void fillDependency(QTreeWidget &treeWidget);
2524

26-
void fillExportTable(QListWidget &listWidget, const QString& filter);
25+
void fillExportTable(QListWidget &listWidget, const QString &filter);
2726

2827
QString getPathOfBinary();
2928
QString getBinaryName();

0 commit comments

Comments
 (0)