namespace frontend {
-void GuiLyXFiles::getFiles(QMap<QString, QString> & in, QString const type)
+QMap<QString, QString> GuiLyXFiles::getFiles()
{
+ QMap<QString, QString> result;
// We look for lyx files in the subdirectory dir of
// 1) user_lyxdir
// 2) build_lyxdir (if not empty)
QStringList relpaths;
// The three locations to look at.
- string const user = addPath(package().user_support().absFileName(), fromqstr(type));
- string const build = addPath(package().build_support().absFileName(), fromqstr(type));
- string const system = addPath(package().system_support().absFileName(), fromqstr(type));
+ string const user = addPath(package().user_support().absFileName(), fromqstr(type_));
+ string const build = addPath(package().build_support().absFileName(), fromqstr(type_));
+ string const system = addPath(package().system_support().absFileName(), fromqstr(type_));
available_languages_.insert(toqstr("en"), qt_("English"));
- // Search in the base path
- dirs << toqstr(user)
- << toqstr(build)
- << toqstr(system);
+ QString const type = fileTypeCO->itemData(fileTypeCO->currentIndex()).toString();
+
+ // Search in the base paths
+ if (type == "all" || type == "user")
+ dirs << toqstr(user);
+ if (type == "all" || type == "system")
+ dirs << toqstr(build)
+ << toqstr(system);
for (int i = 0; i < dirs.size(); ++i) {
QString const dir = dirs.at(i);
if (localization != "en")
// strip off lang/
relpath = relpath.mid(relpath.indexOf('/') + 1);
- in.insert(relpath, cat);
+ result.insert(relpath, cat);
QMap<QString, QString> lm;
if (localizations_.contains(relpath))
}
setLanguage();
languageLA->setText(qt_("Preferred &Language:"));
+ return result;
}
//filesLW->setViewMode(QListView::ListMode);
filesLW->setIconSize(QSize(22, 22));
+ QIcon user_icon(getPixmap("images/", "lyxfiles-user", "svgz,png"));
+ QIcon system_icon(getPixmap("images/", "lyxfiles-system", "svgz,png"));
+ fileTypeCO->addItem(qt_("User and System Files"), toqstr("all"));
+ fileTypeCO->addItem(user_icon, qt_("User Files Only"), toqstr("user"));
+ fileTypeCO->addItem(system_icon, qt_("System Files Only"), toqstr("system"));
+
setFocusProxy(filter_);
}
void GuiLyXFiles::updateContents()
{
- QString type = fileTypeCO->itemData(fileTypeCO->currentIndex()).toString();
- QMap<QString, QString> files;
languageCO->clear();
- getFiles(files, type);
+ QMap<QString, QString> files = getFiles();
languageCO->model()->sort(0);
filesLW->clear();
void GuiLyXFiles::paramsToDialog()
{
- fileTypeCO->clear();
- if (type_ == "examples" || type_ == "templates") {
- fileTypeCO->addItem(qt_("Templates"), toqstr("templates"));
- fileTypeCO->addItem(qt_("Examples"), toqstr("examples"));
- } else if (type_ == "ui")
- fileTypeCO->addItem(qt_("User Interface Files"), toqstr("ui"));
- else if (type_ == "bind")
- fileTypeCO->addItem(qt_("Key Binding Files"), toqstr("bind"));
-
- if (!type_.isEmpty()) {
- int i = fileTypeCO->findData(type_);
- if (i != -1)
- fileTypeCO->setCurrentIndex(i);
- }
if (type_ == "examples")
setTitle(qt_("Open Example File"));
else if (type_ == "templates")
<rect>
<x>0</x>
<y>0</y>
- <width>381</width>
- <height>474</height>
+ <width>284</width>
+ <height>479</height>
</rect>
</property>
<property name="windowTitle">
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
- <layout class="QGridLayout" name="gridLayout">
- <item row="0" column="0">
- <widget class="QLabel" name="filesTypeLA">
- <property name="text">
- <string>&Type:</string>
- </property>
- <property name="buddy">
- <cstring>fileTypeCO</cstring>
- </property>
- </widget>
- </item>
- <item row="0" column="2">
- <widget class="QComboBox" name="fileTypeCO">
- <property name="sizePolicy">
- <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- </widget>
- </item>
- <item row="1" column="0" colspan="2">
+ <widget class="QGroupBox" name="filterGB">
+ <property name="title">
+ <string>Filter</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="0" column="0">
+ <widget class="QLabel" name="filesTypeLA">
+ <property name="text">
+ <string>&Type:</string>
+ </property>
+ <property name="buddy">
+ <cstring>fileTypeCO</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QComboBox" name="fileTypeCO">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip">
+ <string>Determines whether only personal user files, system files or all files are displayed</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="findKeysLA">
+ <property name="text">
+ <string>&Name:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_3">
+ <item>
+ <layout class="QHBoxLayout" name="filterBarL"/>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="csFindCB">
+ <property name="toolTip">
+ <string>Filter case-sensitively</string>
+ </property>
+ <property name="text">
+ <string>Case Sensiti&ve</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
<widget class="QLabel" name="languageLA">
<property name="toolTip">
<string/>
</property>
</widget>
</item>
- <item row="1" column="2">
+ <item>
<widget class="QComboBox" name="languageCO">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="toolTip">
<string>The available language(s) of the selected file will be displayed here</string>
</property>
</widget>
</item>
- <item row="2" column="0">
- <widget class="QLabel" name="findKeysLA">
- <property name="text">
- <string>&Filter:</string>
- </property>
- <property name="alignment">
- <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
- </property>
- </widget>
- </item>
- <item row="2" column="1" colspan="2">
- <layout class="QVBoxLayout" name="verticalLayout_2">
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_3">
- <item>
- <layout class="QHBoxLayout" name="filterBarL"/>
- </item>
- <item>
- <widget class="QCheckBox" name="csFindCB">
- <property name="toolTip">
- <string>Filter case-sensitively</string>
- </property>
- <property name="text">
- <string>Case Sensiti&ve</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
- </item>
</layout>
</item>
- <item row="1" column="0">
+ <item row="2" column="0">
<widget class="QTreeWidget" name="filesLW">
<property name="rootIsDecorated">
<bool>true</bool>
</column>
</widget>
</item>
- <item row="2" column="0">
+ <item row="3" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<spacer name="horizontalSpacer">
</item>
</layout>
</item>
- <item row="3" column="0">
+ <item row="4" column="0">
<layout class="QHBoxLayout">
<property name="spacing">
<number>6</number>