mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 16:07:47 +00:00
FileManager: Open PNG files with QuickShow when activated.
This commit is contained in:
parent
d563dc0565
commit
5ca62f356b
3 changed files with 23 additions and 0 deletions
|
@ -74,6 +74,8 @@ public:
|
||||||
const char* characters() const { return m_impl ? m_impl->characters() : nullptr; }
|
const char* characters() const { return m_impl ? m_impl->characters() : nullptr; }
|
||||||
char operator[](ssize_t i) const { ASSERT(m_impl); return (*m_impl)[i]; }
|
char operator[](ssize_t i) const { ASSERT(m_impl); return (*m_impl)[i]; }
|
||||||
|
|
||||||
|
bool ends_with(const String&) const;
|
||||||
|
|
||||||
bool operator==(const String&) const;
|
bool operator==(const String&) const;
|
||||||
bool operator!=(const String& other) const { return !(*this == other); }
|
bool operator!=(const String& other) const { return !(*this == other); }
|
||||||
bool operator<(const String&) const;
|
bool operator<(const String&) const;
|
||||||
|
|
|
@ -126,4 +126,15 @@ String String::format(const char* fmt, ...)
|
||||||
return builder.to_string();
|
return builder.to_string();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool String::ends_with(const String& str) const
|
||||||
|
{
|
||||||
|
if (str.is_empty())
|
||||||
|
return true;
|
||||||
|
if (is_empty())
|
||||||
|
return false;
|
||||||
|
if (str.length() > length())
|
||||||
|
return false;
|
||||||
|
return !memcmp(characters() + (length() - str.length()), str.characters(), str.length());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -236,6 +236,16 @@ void DirectoryTableModel::activate(const GModelIndex& index)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (path.string().ends_with(".png")) {
|
||||||
|
if (fork() == 0) {
|
||||||
|
int rc = execl("/bin/qs", "/bin/qs", path.string().characters(), nullptr);
|
||||||
|
if (rc < 0)
|
||||||
|
perror("exec");
|
||||||
|
ASSERT_NOT_REACHED();
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (fork() == 0) {
|
if (fork() == 0) {
|
||||||
int rc = execl("/bin/TextEditor", "/bin/TextEditor", path.string().characters(), nullptr);
|
int rc = execl("/bin/TextEditor", "/bin/TextEditor", path.string().characters(), nullptr);
|
||||||
if (rc < 0)
|
if (rc < 0)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue