探索 pcmanfm-qt
探索原始碼紀錄
下載 「Source Package: pcmanfm-qt」
執行下面指令,下載「Source Package: pcmanfm-qt」。
[quote] $ apt-get source pcmanfm-qt
[/quote]
會下載下面三個檔案
- pcmanfm-qt_0.12.0-5.debian.tar.xz
- pcmanfm-qt_0.12.0-5.dsc
- pcmanfm-qt_0.12.0.orig.tar.xz
並且解開到「pcmanfm-qt-0.12.0」這個資料夾。
–show-pref
執行
$ grep 'advanced' pcmanfm-qt-0.12.0/* -R
顯示
pcmanfm-qt-0.12.0/pcmanfm/mainwindow.cpp: app->preferences("advanced");
pcmanfm-qt-0.12.0/pcmanfm/preferencesdialog.h: // activePage is the name of page to select (general, display, advanced...)
pcmanfm-qt-0.12.0/pcmanfm/desktop-preferences.ui: <widget class="QWidget" name="advancedPage">
pcmanfm-qt-0.12.0/pcmanfm/desktop-preferences.ui: <layout class="QVBoxLayout" name="advancedPageLayout">
pcmanfm-qt-0.12.0/pcmanfm/desktoppreferencesdialog.cpp: ui.advancedPageLayout->insertWidget(1, desktopFolderWidget);
pcmanfm-qt-0.12.0/pcmanfm/application.cpp: preferences("advanced");
pcmanfm-qt-0.12.0/pcmanfm/preferences.ui: <widget class="QWidget" name="advancedPage">
執行
$ grep 'QWidget' pcmanfm-qt-0.12.0/pcmanfm/preferences.ui -n
顯示
76: <widget class="QWidget" name="behaviorPage">
215: <widget class="QWidget" name="displayPage">
451: <widget class="QWidget" name="uiPage">
638: <widget class="QWidget" name="thumbnailPage">
698: <widget class="QWidget" name="volumePage">
768: <widget class="QWidget" name="advancedPage">
從上面的模式,推論有如下的方式可以執行。
$ pcmanfm-qt --show-pref=behavior
$ pcmanfm-qt --show-pref=display
$ pcmanfm-qt --show-pref=ui
$ pcmanfm-qt --show-pref=thumbnail
$ pcmanfm-qt --show-pref=volume
$ pcmanfm-qt --show-pref=advanced
執行
$ grep 'selectPage' pcmanfm-qt-0.12.0/pcmanfm/preferencesdialog.cpp -n
顯示
45: selectPage(activePage);
376:void PreferencesDialog::selectPage(QString name) {
執行
$ grep 'selectPage' pcmanfm-qt-0.12.0/pcmanfm/preferencesdialog.cpp -n -A 9
顯示
45: selectPage(activePage);
46- adjustSize();
47-}
48-
49-PreferencesDialog::~PreferencesDialog() {
50-
51-}
52-
53-static void findIconThemesInDir(QHash<QString, QString>& iconThemes, QString dirName) {
54- QDir dir(dirName);
--
376:void PreferencesDialog::selectPage(QString name) {
377- if(!name.isEmpty()) {
378- QWidget* page = findChild<QWidget*>(name + "Page");
379- if(page) {
380- int index = ui.stackedWidget->indexOf(page);
381- ui.listWidget->setCurrentRow(index);
382- }
383- }
384-}
385-